import { yupResolver } from '@hookform/resolvers/yup'; import LoadingButton from '@mui/lab/LoadingButton'; import Paper from '@mui/material/Paper'; import Typography from '@mui/material/Typography'; import useEnqueueSnackbar from 'hooks/useEnqueueSnackbar'; import * as React from 'react'; import { useNavigate, useSearchParams } from 'react-router-dom'; import * as yup from 'yup'; import Form from 'components/Form'; import TextField from 'components/TextField'; import * as URLS from 'config/urls'; import useFormatMessage from 'hooks/useFormatMessage'; import useResetPassword from 'hooks/useResetPassword'; const validationSchema = yup.object().shape({ password: yup.string().required('resetPasswordForm.mandatoryInput'), confirmPassword: yup .string() .required('resetPasswordForm.mandatoryInput') .oneOf([yup.ref('password')], 'resetPasswordForm.passwordsMustMatch'), }); export default function ResetPasswordForm() { const enqueueSnackbar = useEnqueueSnackbar(); const formatMessage = useFormatMessage(); const navigate = useNavigate(); const [searchParams] = useSearchParams(); const { mutateAsync: resetPassword, isPending, isSuccess, } = useResetPassword(); const token = searchParams.get('token'); const handleSubmit = async (values) => { const { password } = values; try { await resetPassword({ password, token, }); enqueueSnackbar(formatMessage('resetPasswordForm.passwordUpdated'), { variant: 'success', SnackbarProps: { 'data-test': 'snackbar-reset-password-success', }, }); navigate(URLS.LOGIN); } catch (error) { enqueueSnackbar( error?.message || formatMessage('resetPasswordForm.error'), { variant: 'error', }, ); } }; return ( theme.palette.text.disabled, pb: 2, mb: 2, }} gutterBottom > {formatMessage('resetPasswordForm.title')}
( <> {formatMessage('resetPasswordForm.submit')} )} /> ); }