import React, { useEffect, useState } from 'react' import { Form, Formik } from "formik"; import * as Yup from "yup"; import { useDispatch } from 'react-redux' import { Link, useNavigate, useParams } from 'react-router-dom' import siteLinks from '../../links/siteLinks' import { useMutation } from '@tanstack/react-query'; import { completePWDReset, verifyResetToken } from '../../services/services'; import { updateUserDetails } from '../../store/UserDetails' import { IoMdArrowDropdown } from "react-icons/io"; import getImage from '../../utils/getImage'; const validationSchema = Yup.object().shape({ password: Yup.string().required("Password is required"), confirmpassword: Yup.string().required("Confirm Password is required").oneOf([Yup.ref('password')], 'Passwords must match') }) const initialValues = { password: '', confirmpassword: '', }; export default function AccPWDReset() { const {token} = useParams() const dispatch = useDispatch() const navigate = useNavigate() const [user, setUser] = useState(null) // API to verify email link const verifyLink = useMutation({ mutationFn: (fields) => { return verifyResetToken(fields) }, onSuccess: (res) => { // console.log('res', res.data) if(res.data.resultCode != '0' || !res?.data?.pending_uid){ throw({message: res?.data?.resultDescription}) } // setUser({user:'testaccount', ...res.data}) setUser(res.data) }, // onError: (err) => { // console.log('err', err) // } }) const resetPWD = useMutation({ mutationFn: (fields) => { return completePWDReset(fields) }, onSuccess: (res) => { if(res?.data?.resultCode != '0'){ throw({message: res?.data?.resultDescription}) } // const {token, room, uid} = res?.data // if(!token || !room){ // throw({message: 'something went wrong, try again!'}) // } // localStorage.setItem('token', token) // localStorage.setItem('room', room) // localStorage.setItem('uid', uid) // dispatch(updateUserDetails({ ...res?.data })); // navigate('/dash') // later add redux to dispatch state }, // onError: (err) => { // console.log('err', err) // } }) const handleCompletePWDReset = (values) => { let reqData = { reset_token: token, reset_uid: user?.pending_uid, new_password: values.password, } resetPWD.mutate(reqData) } useEffect(()=>{ if(!token){ return navigate(siteLinks.login, {replace: true}) } verifyLink.mutate({reset_token: token}) }, []) return (

MERMS Panel

{(verifyLink.isSuccess && !resetPWD.isSuccess) &&

Complete your password reset

}
{resetPWD.isSuccess ? <>

Your password reset is completed

reset-icon Home

Go Back

: <> {verifyLink.isPending ?

loading...

: verifyLink.isSuccess ?
{(props) => { return (
<>
{resetPWD.error && <>

{resetPWD.error.message}

}
); }}
: verifyLink.error ? <>

Unable to continue password reset. Please start again

reset-icon Home

Go Back

: null } }
{/*
*/}
) }