/** * External Dependencies */ import {__} from '@wordpress/i18n'; import {useState} from 'react'; import {useFormContext} from 'react-hook-form'; /** * Internal Dependencies */ import AdminSection, {AdminSectionField} from '@givewp/components/AdminDetailsPage/AdminSection'; import {getDonorOptionsWindowData} from '@givewp/donors/utils'; import PhoneInput from '../../../Inputs/Phone'; import Upload from '../../../Inputs/Upload'; import styles from '../../DonorDetailsPage.module.scss'; const {nameTitlePrefixes, intlTelInputSettings} = getDonorOptionsWindowData(); /** * @since 4.9.0 Add error prop to all AdminSectionField components * @since 4.4.0 */ export default function DonorPersonalDetails() { const { register, watch, setValue, setError, trigger, clearErrors, formState: {errors}, } = useFormContext(); const [avatarUrl, setAvatarUrl] = useState(watch('avatarUrl')); const handlePhoneChange = (value: string) => { setValue('phone', value, {shouldDirty: true}); trigger('phone', {shouldFocus: false}); }; const handlePhoneError = (errorMessage: string | null) => { if (errorMessage) { setError('phone', {type: 'custom', message: errorMessage}); } else { clearErrors('phone'); } }; return ( { setValue('avatarId', avatarId, {shouldDirty: true}); setAvatarUrl(avatarUrl); }} reset={() => { setValue('avatarId', null, {shouldDirty: true}); setAvatarUrl(''); }} />
); }