refactor: improve PhoneInput digit normalization and update validation to trigger on blur

This commit is contained in:
estifanos
2026-08-20 08:31:08 +00:00
parent a0560f9cbc
commit 0b03bc45c3
5 changed files with 45 additions and 8 deletions

View File

@@ -153,14 +153,16 @@ export function AddressFormContent({
required
readOnly
value={watch('primaryPhoneNumber') || ''}
onChange={(val) => setValue('primaryPhoneNumber', val, { shouldValidate: true })}
onChange={(val) => setValue('primaryPhoneNumber', val, { shouldValidate: !!errors.primaryPhoneNumber })}
onBlur={() => trigger('primaryPhoneNumber')}
error={errors.primaryPhoneNumber?.message}
/>
<PhoneInput
label={t('profileAddress.secondaryPhoneNumber')}
placeholder={t('profileAddress.phonePlaceholder')}
value={watch('secondaryPhoneNumber') || ''}
onChange={(val) => setValue('secondaryPhoneNumber', val, { shouldValidate: true })}
onChange={(val) => setValue('secondaryPhoneNumber', val, { shouldValidate: !!errors.secondaryPhoneNumber })}
onBlur={() => trigger('secondaryPhoneNumber')}
error={errors.secondaryPhoneNumber?.message}
/>
<TextInput
@@ -212,7 +214,8 @@ export function AddressFormContent({
label={t('profileAddress.contactPhone')}
placeholder={t('profileAddress.phonePlaceholder')}
value={watch('emergencyContactPhone') || ''}
onChange={(val) => setValue('emergencyContactPhone', val, { shouldValidate: true })}
onChange={(val) => setValue('emergencyContactPhone', val, { shouldValidate: !!errors.emergencyContactPhone })}
onBlur={() => trigger('emergencyContactPhone')}
error={errors.emergencyContactPhone?.message}
/>
<TextInput

View File

@@ -279,6 +279,7 @@ export function ProfilePage() {
reset: resetPersonal,
watch: watchPersonal,
setValue: setValuePersonal,
trigger: triggerPersonal,
formState: { errors: personalErrors },
} = useForm<PersonalValues>({
resolver: zodResolver(personalSchema),
@@ -673,7 +674,8 @@ export function ProfilePage() {
<PhoneInput
label={t('profile.fields.phone')}
value={watchPersonal('phoneNumber') || ''}
onChange={(val) => setValuePersonal('phoneNumber', val, { shouldValidate: true })}
onChange={(val) => setValuePersonal('phoneNumber', val, { shouldValidate: !!personalErrors.phoneNumber })}
onBlur={() => triggerPersonal('phoneNumber')}
error={personalErrors.phoneNumber?.message}
/>
</SimpleGrid>