import React, {useState} from 'react' import * as Yup from 'yup' import clsx from 'clsx' import {Link} from 'react-router-dom' import {useFormik} from 'formik' import {requestPassword} from '../core/_requests' const initialValues = { email: 'admin@demo.com', } const forgotPasswordSchema = Yup.object().shape({ email: Yup.string() .email('Wrong email format') .min(3, 'Minimum 3 symbols') .max(50, 'Maximum 50 symbols') .required('Email is required'), }) export function ForgotPassword() { const [loading, setLoading] = useState(false) const [hasErrors, setHasErrors] = useState(undefined) const formik = useFormik({ initialValues, validationSchema: forgotPasswordSchema, onSubmit: (values, {setStatus, setSubmitting}) => { setLoading(true) setHasErrors(undefined) setTimeout(() => { requestPassword(values.email) .then(({data: {result}}) => { setHasErrors(false) setLoading(false) }) .catch(() => { setHasErrors(true) setLoading(false) setSubmitting(false) setStatus('The login detail is incorrect') }) }, 1000) }, }) return ( <>
{/* begin::Title */}

Forgot Password ?

{/* end::Title */} {/* begin::Link */}
Enter your email to reset your password.
{/* end::Link */}
{/* begin::Title */} {hasErrors === true && (
Sorry, looks like there are some errors detected, please try again.
)} {hasErrors === false && (
Sent password reset. Please check your email
)} {/* end::Title */} {/* begin::Form group */}
{formik.touched.email && formik.errors.email && (
{formik.errors.email}
)}
{/* end::Form group */} {/* begin::Form group */}
{' '}
{/* end::Form group */}
) }