import React, { useEffect, useState } from 'react' import { useDispatch } from 'react-redux' import { useLocation, useNavigate, Link } from 'react-router-dom' import { useMutation } from '@tanstack/react-query' import {Formik, Form} from 'formik' import * as Yup from "yup"; import InputText from '../InputText' import { updateUserDetails } from "../../store/UserDetails"; import { loginUser } from '../../services/siteServices' import RouteLinks from '../../RouteLinks' import Icons from '../Icons' const initialValues = { username: "", password: "", }; // To get the validation schema const validationSchema = Yup.object().shape({ username: Yup.string().required("username is required").min(6, 'must be upto 6 characters').max(25, 'must not exceed 25 characters'), password: Yup.string().required("password is required").min(6, 'must be upto 6 characters').max(25, 'must not exceed 25 characters'), }); export default function LoginCom() { const dispatch = useDispatch() const navigate = useNavigate() const [loading, setLoading] = useState(false) const login = useMutation({ mutationFn: (fields) => { if(!fields.username || !fields.password){ throw new Error('Please provide all fields marked *') } return loginUser(fields) }, onError: (error) => { console.log(error) }, onSuccess: (res) => { const {jwt_token, user} = res?.data if(jwt_token){ localStorage.setItem('token', jwt_token) // localStorage.setItem('room', room) const data = {jwt_token} dispatch(updateUserDetails({ ...data, ...user })); } navigate(RouteLinks.homePage, {state:{proceed:'true'}}) // later add redux to dispatch state } }) // const handleLogin = () => { // setLoading(true) // const data = {name: 'dummy'} // localStorage.setItem('token', 'token') // dispatch(updateUserDetails({ ...data })); // setTimeout(()=>{ // navigate(RouteLinks.homePage, {replace:true}) // },500) // } //FUNCTION TO HANDLE LOGIN const handleSubmit = (values, helper) => { login.mutate(values) // handleLogin() }; return ( <>