import React, { useMemo, useRef } from 'react'; import { __ } from '@wordpress/i18n'; import { useForm } from 'react-hook-form'; // store import { storeSet, useStoreValue } from '../../store'; // components import set404FromErrorResponse from '../../helpers/set404FromErrorResponse'; import FormField from '../../components/FormField'; import { Button } from 'primereact/button'; import { Toast } from 'primereact/toast'; // api import UserService from '../../service/user-service'; // tools import getDateFromISOstring from '../../helpers/getDateFromISOstring'; const ProfileBeneficiario = () => { const isAsyncRequest = useStoreValue('isAsyncRequest'); const userData = useStoreValue('userData'); const toast = useRef(null); const { control, handleSubmit, formState: { errors } } = useForm({ defaultValues: useMemo(() => { return userData; }, [userData]), mode: 'onChange' }); const onSubmit = (formData) => { storeSet('setAsyncRequest'); UserService.updateUserSelf(userData.id, formData, updateCallback, updateError); }; const updateCallback = (data) => { if (data.status === 'SUCCESS') { storeSet('userData', data.data); if (toast.current) { toast.current.show({ severity: 'success', summary: '', detail: __('L\'utente è stato aggiornato!', 'gepafin') }); } } storeSet('unsetAsyncRequest'); } const updateError = (data) => { set404FromErrorResponse(data); storeSet('unsetAsyncRequest'); } return (