fix(DELIGHT-11001): do not require address key in user profile

This commit is contained in:
Michael Zetterberg
2024-12-09 15:13:30 +01:00
parent 886be166ef
commit 594a279186
3 changed files with 19 additions and 16 deletions

View File

@@ -55,10 +55,10 @@ export default function Form({ user }: EditFormProps) {
const methods = useForm<EditProfileSchema>({ const methods = useForm<EditProfileSchema>({
defaultValues: { defaultValues: {
address: { address: {
city: user.address.city ?? "", city: user.address?.city ?? "",
countryCode: user.address.countryCode ?? "", countryCode: user.address?.countryCode ?? "",
streetAddress: user.address.streetAddress ?? "", streetAddress: user.address?.streetAddress ?? "",
zipCode: user.address.zipCode ?? "", zipCode: user.address?.zipCode ?? "",
}, },
dateOfBirth: user.dateOfBirth, dateOfBirth: user.dateOfBirth,
email: user.email, email: user.email,

View File

@@ -22,13 +22,16 @@ export const getUserSchema = z
.object({ .object({
data: z.object({ data: z.object({
attributes: z.object({ attributes: z.object({
address: z.object({ address: z
city: z.string().optional(), .object({
country: z.string().optional(), city: z.string().optional(),
countryCode: z.nativeEnum(countriesMap).optional(), country: z.string().optional(),
streetAddress: z.string().optional(), countryCode: z.nativeEnum(countriesMap).optional(),
zipCode: z.string().optional(), streetAddress: z.string().optional(),
}), zipCode: z.string().optional(),
})
.optional()
.nullable(),
dateOfBirth: z.string().optional().default("1900-01-01"), dateOfBirth: z.string().optional().default("1900-01-01"),
email: z.string().email(), email: z.string().email(),
firstName: z.string(), firstName: z.string(),

View File

@@ -170,15 +170,15 @@ export const getVerifiedUser = cache(
) )
export function parsedUser(data: User, isMFA: boolean) { export function parsedUser(data: User, isMFA: boolean) {
const country = countries.find((c) => c.code === data.address.countryCode) const country = countries.find((c) => c.code === data.address?.countryCode)
const user = { const user = {
address: { address: {
city: data.address.city, city: data.address?.city,
country: country?.name ?? "", country: country?.name ?? "",
countryCode: data.address.countryCode, countryCode: data.address?.countryCode,
streetAddress: data.address.streetAddress, streetAddress: data.address?.streetAddress,
zipCode: data.address.zipCode, zipCode: data.address?.zipCode,
}, },
dateOfBirth: data.dateOfBirth, dateOfBirth: data.dateOfBirth,
email: data.email, email: data.email,