verify otp api added

This commit was merged in pull request #1.
This commit is contained in:
victorAnumudu
2024-06-17 08:12:45 +01:00
parent df21f2021d
commit 00d140c03f
2 changed files with 36 additions and 12 deletions
+1 -1
View File
@@ -48,7 +48,7 @@ export default function Login() {
setRequestStatus((prev:RequestStatus) => ({...prev, loading:true})) setRequestStatus((prev:RequestStatus) => ({...prev, loading:true}))
employerLogin(reqData).then(res => { employerLogin(reqData).then(res => {
console.log('RES', res) // console.log('RES', res)
if(!res?.data?.call_return){ if(!res?.data?.call_return){
setRequestStatus({loading:false, status:false, message:'Email/Password is wrong', data:{}}) setRequestStatus({loading:false, status:false, message:'Email/Password is wrong', data:{}})
return setTimeout(()=>{ return setTimeout(()=>{
+35 -11
View File
@@ -1,10 +1,11 @@
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { Button } from ".."; import { Button, CustomSpinner } from "..";
import { useLocation, useNavigate } from "react-router-dom"; import { useLocation, useNavigate } from "react-router-dom";
import { RouteHandler } from "../../router/routes"; import { RouteHandler } from "../../router/routes";
import { updateUserDetails } from "../../store/UserDetails"; import { updateUserDetails } from "../../store/UserDetails";
import { useDispatch } from "react-redux"; import { useDispatch } from "react-redux";
import { verifyOTP } from "../../core/apiRequest"; import { verifyOTP } from "../../core/apiRequest";
import { RequestStatus } from "../../core/models";
type FormType = { type FormType = {
[index: string] : string [index: string] : string
@@ -20,6 +21,8 @@ export default function Login() {
const { state } = useLocation(); const { state } = useLocation();
const dispatch = useDispatch() const dispatch = useDispatch()
const [requestStatus, setRequestStatus] = useState<RequestStatus>({loading:false, status:null, message:'', data:{}})
let [values, setValues] = useState<FormType>({ let [values, setValues] = useState<FormType>({
otp1: "", otp1: "",
otp2: "", otp2: "",
@@ -36,17 +39,31 @@ export default function Login() {
}; };
const handleSubmit = () => { const handleSubmit = () => {
let reqData = {
verify_uid: state?.verify_uid,
otp: values.otp1+values.otp2+values.otp3+values.otp4
}
// verifyOTP().then(res => { setRequestStatus((prev:RequestStatus) => ({...prev, loading:true}))
verifyOTP(reqData).then(res => {
// }).catch(err =>{ if(!res?.data?.call_return){
setRequestStatus({loading:false, status:false, message:'OTP is wrong', data:{}})
// }) return setTimeout(()=>{
localStorage.setItem('token', state?.verify_uid) setRequestStatus({loading:false, status:null, message:'', data:{}})
},4000)
let data = {firstname:'firstname', lastname:'lastname', uid:'28273737646466464'} }
dispatch(updateUserDetails(data)); setRequestStatus({loading:false, status:true, message:'OTP Verified', data:res?.data})
navigate(`/${state?.application_uid}`, {replace:true}) localStorage.setItem('token', state?.verify_uid)
let data = {firstname:'firstname', lastname:'lastname', uid:'28273737646466464'}
dispatch(updateUserDetails(data));
navigate(`/${state?.application_uid}`, {replace:true})
}).catch(err =>{
setRequestStatus({loading:false, status:false, message:'something went wrong', data:{}})
console.log(err)
return setTimeout(()=>{
setRequestStatus({loading:false, status:null, message:'', data:{}})
},4000)
})
} }
useEffect(() => { useEffect(() => {
@@ -127,11 +144,18 @@ export default function Login() {
</div> </div>
<div className="mt-10 w-full"> <div className="mt-10 w-full">
{requestStatus.loading ?
<div className='w-full flex justify-center items-center'>
<CustomSpinner />
</div>
:
<Button <Button
text="Enter" text="Enter"
className="rounded-md w-full text-xl capitalize font-bold" className="rounded-md w-full text-xl capitalize font-bold"
onClick={handleSubmit} onClick={handleSubmit}
disabled={!values.otp1 || !values.otp2 || !values.otp1 || !values.otp1}
/> />
}
{/* <Link to='#' className='text-black text-sm'>Forget your password?</Link> */} {/* <Link to='#' className='text-black text-sm'>Forget your password?</Link> */}
</div> </div>
</div> </div>