import React from 'react'; import {toast, ToastContainer} from 'react-toastify'; import Head from 'next/head'; import CardBox from '../components/CardBox'; import SectionFullScreen from '../components/SectionFullScreen'; import {useRouter} from 'next/router'; import {getPageTitle} from '../config'; import {Field, Form, Formik} from 'formik'; import FormField from '../components/FormField'; import BaseButtons from '../components/BaseButtons'; import BaseButton from '../components/BaseButton'; import { passwordReset } from '../stores/authSlice'; import {useAppDispatch} from '../stores/hooks'; export default function PasswordSetOrReset() { const [loading, setLoading] = React.useState(false); const [isInvitation, setIsInvitation] = React.useState(false); const router = useRouter(); const {token, invitation} = router.query; const notify = (type, msg) => toast(msg, {type}); const dispatch = useAppDispatch(); React.useEffect(() => { if (invitation) { setIsInvitation(true); } }, [invitation]); const handleSubmit = async (value) => { setLoading(true); if (typeof token === 'string') { await dispatch( passwordReset({ token, password: value.password, type: isInvitation && 'invitation', }), ); await router.push('/login'); } setLoading(false); }; return ( <> {isInvitation && {getPageTitle('Set Password')}} {!isInvitation && {getPageTitle('Reset Password')}}
{isInvitation &&

Set Password

} {!isInvitation &&

Reset Password

}

Enter your new password

handleSubmit(values)} > {({errors, touched}) => (
)}
); }