import React, { useRef, useState, useEffect } from 'react'; import { __, sprintf } from '@wordpress/i18n'; import { useForm } from 'react-hook-form'; import { classNames } from 'primereact/utils'; import { isEmpty } from 'ramda'; import { useNavigate, useSearchParams } from 'react-router-dom'; // tools import AuthenticationService from '../../service/authentication-service'; // store import { useStore } from '../../store'; // components import FormField from '../../components/FormField'; import LogoIcon from '../../icons/LogoIcon'; import { Button } from 'primereact/button'; import { Messages } from 'primereact/messages'; const APP_HUB_ID = process.env.REACT_APP_HUB_ID; const ResetPassword = () => { const navigate = useNavigate(); const token = useStore().main.token(); const [loading, setLoading] = useState(false); const [resetPassToken, setResetPassToken] = useState(''); const [resetPassEmail, setResetPassEmail] = useState(''); const errorMsgs = useRef(null); let [searchParams] = useSearchParams(); const { control, handleSubmit, formState: { errors }, reset, register, setValue } = useForm({ mode: 'onChange' }); const gotToLogin = () => { navigate('/confidi'); } const onSubmit = (formData) => { errorMsgs.current.clear(); setLoading(true); const request = { ...formData, hubUuid: APP_HUB_ID } if (request.token && !isEmpty(request.token)) { AuthenticationService.resetPassword(request, getCallbackReset, errCallback); } else { AuthenticationService.forgotPassword(request, getCallback, errCallback); } }; const getCallbackReset = (data) => { if (data.status === 'SUCCESS') { errorMsgs.current.show([ { sticky: true, severity: 'success', summary: '', detail: data.message, closable: true } ]); } else { errorMsgs.current.show([ { sticky: true, severity: 'error', summary: '', detail: data.message, closable: true } ]); } setLoading(false); } const getCallback = (data) => { if (data.status === 'SUCCESS') { setResetPassToken(data.data) } else { errorMsgs.current.show([ { sticky: true, severity: 'error', summary: '', detail: data.message, closable: true } ]); } setLoading(false); } const errCallback = (err) => { errorMsgs.current.show([ { sticky: true, severity: 'error', summary: '', detail: sprintf(__('%s', 'gepafin'), err.message), closable: true } ]); setLoading(false); } useEffect(() => { if (!isEmpty(token)) { setLoading(true); window.location.replace('/') } }, [token]); useEffect(() => { reset(); setValue('token', resetPassToken); setValue('email', resetPassEmail); }, [resetPassToken, resetPassEmail]); useEffect(() => { const token = searchParams.get('token'); const email = searchParams.get('email'); setResetPassToken(token); setResetPassEmail(email); }, [searchParams]); return (

{__('Password dimenticata', 'gepafin')}

{resetPassToken && !isEmpty(resetPassToken) ? : null} {resetPassToken && !isEmpty(resetPassToken) ? values.confirmPassword === value } }} /> : null} {resetPassToken && !isEmpty(resetPassToken) ? values.newPassword === value } }} /> : null}
) } export default ResetPassword;