import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import Link from 'next/link'; import React, { useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import * as Yup from 'yup'; import Button from '../Common/Button'; import ImageFader from '../Common/ImageFader'; import PageTitle from '../Common/PageTitle'; import LanguagePicker from '../Layout/LanguagePicker'; const messages = defineMessages({ passwordreset: 'Password Reset', resetpassword: 'Reset your password', emailresetlink: 'Email a Recovery Link', email: 'Email Address', validationemailrequired: 'You must provide a valid email address', gobacklogin: 'Return to Sign-In Page', requestresetlinksuccessmessage: 'A password reset link will be sent to the provided email address if it is associated with a valid user.', }); const ResetPassword: React.FC = () => { const intl = useIntl(); const [hasSubmitted, setSubmitted] = useState(false); const ResetSchema = Yup.object().shape({ email: Yup.string() .email(intl.formatMessage(messages.validationemailrequired)) .required(intl.formatMessage(messages.validationemailrequired)), }); return (
Logo

{intl.formatMessage(messages.resetpassword)}

{hasSubmitted ? ( <>

{intl.formatMessage(messages.requestresetlinksuccessmessage)}

) : ( { const response = await axios.post( `/api/v1/auth/reset-password`, { email: values.email, } ); if (response.status === 200) { setSubmitted(true); } }} > {({ errors, touched, isSubmitting, isValid }) => { return (
{errors.email && touched.email && (
{errors.email}
)}
); }}
)}
); }; export default ResetPassword;