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 { completeRegistration, verifyEmail } from '../../services/services'; import { updateUserDetails } from '../../store/UserDetails' import { IoMdArrowDropdown } from "react-icons/io"; const validationSchema = Yup.object().shape({ country: Yup.string().required("Username is required"), username: Yup.string().min(3, "Minimum 3 characters") .max(50, "Maximum 50 characters") .required("Username is required"), password: Yup.string().required("Password is required"), confirmpassword: Yup.string().required("Confirm Password is required").oneOf([Yup.ref('password')], 'Passwords must match') }) const initialValues = { username: '', password: '', country: '', confirmpassword: '', }; export default function CSignup() { const {jwt} = useParams() const dispatch = useDispatch() const navigate = useNavigate() const [user, setUser] = useState(null) // API to verify email link const verifyLink = useMutation({ mutationFn: (fields) => { return verifyEmail(fields) }, onSuccess: (res) => { setUser(res.data) }, // onError: (err) => { // console.log('err', err) // } }) const cSignup = useMutation({ mutationFn: (fields) => { return completeRegistration(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 completeSignup = (values) => { let reqData = { country : values.country, username: values.username, password: values.password, verify_link: jwt } cSignup.mutate(reqData) } useEffect(()=>{ if(!jwt){ return navigate(siteLinks.login, {replace: true}) } verifyLink.mutate({verify_link: jwt}) }, []) return (
Welcome, Enter your password.
*/}loading...
{verifyLink?.error?.message}
Read our Privacy Statement