diff --git a/src/pages/customer/Update.tsx b/src/pages/customer/Update.tsx index 371de50..d0cdd6d 100644 --- a/src/pages/customer/Update.tsx +++ b/src/pages/customer/Update.tsx @@ -62,40 +62,33 @@ const UpdateCustomer: FC = () => { profilePic: '' }, validationSchema: Yup.object({ - phone: Yup.string().required(t('errors.required')), - firstName: Yup.string().required(t('errors.required')), - lastName: Yup.string().required(t('errors.required')), - email: Yup.string().email(t('errors.email')).required(t('errors.required')), - birthDate: Yup.string().required(t('errors.required')), - nationalCode: Yup.string().required(t('errors.required')), - economicCode: Yup.string().required(t('errors.required')), - registrationName: Yup.string().required(t('errors.required')), - registrationCode: Yup.string().required(t('errors.required')), - nationalIdentity: Yup.string().required(t('errors.required')), - postalCode: Yup.string().required(t('errors.required')), - address: Yup.string().required(t('errors.required')), - cityId: Yup.string().required(t('errors.required')), + email: Yup.string().test( + 'email', + t('errors.email'), + (value) => !value || Yup.string().email().isValidSync(value) + ), }), onSubmit: async (values) => { - values.cityId = +values.cityId - if (values.password === '') values.password = undefined + const payload: Partial = Object.fromEntries( + Object.entries(values).filter(([, value]) => value !== '' && value !== undefined && value !== null) + ) as Partial + + if (payload.cityId !== undefined) payload.cityId = +payload.cityId + if (file) { const formData = new FormData() formData.append('file', file) await singleUpload.mutateAsync(formData, { onSuccess: (data) => { - values.profilePic = data?.data?.url + payload.profilePic = data?.data?.url }, onError: (error: ErrorType) => { toast(error.response?.data?.error?.message[0], 'error') } }) - - handleUpdateCustomer(values) - } else { - values.profilePic = undefined - handleUpdateCustomer(values) } + + handleUpdateCustomer(payload as CreateCustomerType) } })