diff --git a/src/components/auth/LoginCom.jsx b/src/components/auth/LoginCom.jsx index 3ee1082..47af216 100644 --- a/src/components/auth/LoginCom.jsx +++ b/src/components/auth/LoginCom.jsx @@ -1,164 +1,138 @@ -import React, { useState } from 'react' -import { useDispatch } from 'react-redux' -import { useNavigate, Link } from 'react-router-dom' -import { useMutation } from '@tanstack/react-query' +import React, {useState} from 'react' +import {useDispatch} from 'react-redux' +import {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 {updateUserDetails} from "../../store/UserDetails"; +import {loginUser} from '../../services/siteServices' import RouteLinks from '../../RouteLinks' // import Icons from '../Icons' const initialValues = { - username: "", - password: "", + username: "", + password: "", }; // To get the validation schema const validationSchema = Yup.object().shape({ - username: Yup.string().required("username is required"), - password: Yup.string().required("password is required").min(6, 'must be upto 6 characters').max(12, 'must not exceed 12 characters'), + username: Yup.string().required("username is required"), + password: Yup.string().required("password is required").min(6, 'must be upto 6 characters').max(12, 'must not exceed 12 characters'), }); export default function LoginCom() { - const dispatch = useDispatch() - const navigate = useNavigate() - - const [loading, setLoading] = useState(false) + const dispatch = useDispatch() + const navigate = useNavigate() - const login = useMutation({ - mutationFn: (fields) => { - if(!fields.username || !fields.password){ - throw new Error('Please provide all fields marked *') + 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})); + } + setLoading(false) + navigate(RouteLinks.homePage, {state: {proceed: 'true'}}) // later add redux to dispatch state } - 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 })); - } - setLoading(false) - 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() + }; - //FUNCTION TO HANDLE LOGIN - const handleSubmit = (values, helper) => { - login.mutate(values) - // handleLogin() - }; + return ( + <> +
+
+
+ + {(props) => ( +
+
+
+

Sign In

+

Welcome back, please login + to your account

+
+
+
+

+ {(props.errors.username && props.touched.username) ? props.errors.username : ''} +

+ +
+
+

+ {(props.errors.password && props.touched.password) ? props.errors.password : ''} +

+ + {/*

Forget password ?

*/} +
+
+ +
- return ( - <> -
-
-
- - {(props)=>( - -
-
-

Sign In

-

Welcome back, please login to your account

+ {login.error && + <> +
+

{login.error.message}

+
+ + } +
+ +
+ MERMS Integrated Support System +
+
+ + )} +
- - {/* social login */} - {/*
*/} - {/*
*/} - {/* */} - {/* Sign in with Google*/} - {/*
*/} - {/*
*/} - {/* */} - {/* Sign in with Apple*/} - {/*
*/} - {/*
*/} - - {/*
*/} - {/*

Or with email

*/} - {/*
*/} - -
-
-

- {(props.errors.username && props.touched.username) ? props.errors.username : ''} -

- -
-
-

- {(props.errors.password && props.touched.password) ? props.errors.password : ''} -

- - {/*

Forget password ?

*/} -
-
- -
- - {login.error && - <> -
-

{login.error.message}

-
- - } -
- - {/*

Not yet a member? Sign Up

*/} - -
- MERMS Integrated Support System -
- - -
- - )} - -
-
-
- - ) +
+
+ + ) }