import React, { useEffect, useState } from 'react' import { useMutation } from '@tanstack/react-query' import { useDispatch, useSelector } from 'react-redux' // import LoginImg from '../../assets/bg/login.svg' import { Link, useNavigate } from 'react-router-dom' import siteLinks from '../../links/siteLinks' import { loginUser } from '../../services/services' import { updateUserDetails } from '../../store/UserDetails' import GoogleDownload from '../../assets/img/download/andriod.jpg' import IOSDownload from '../../assets/img/download/apple.jpg' export default function Login() { const { userDetails: { token, room }} = useSelector((state) => state?.userDetails); // CHECKS IF USER Details are avaliable, to determine if user is active let loggedIn = token && room ? true : false; // variable to determine if user is logged in const dispatch = useDispatch() const navigate = useNavigate() const [fields, setFields] = useState({ username: '', password: '', remember: false }) const handleChange = ({target:{name, value}}) => { if(name == 'remember'){ return setFields(prev => ({...prev, remember:!prev.remember})) } setFields(prev => ({...prev, [name]:value})) } const login = useMutation({ mutationFn: (fields) => { if(!fields.username || !fields.password){ throw new Error('Please provide all fields marked *') } rememberMe(fields.remember) // FUNCTION TO SAVE USERNAME OF THE USER TO LOCAL STORAGE delete fields.remember // REMOVING REMEMBER FROM THE PAYLOAD return loginUser(fields) }, onError: (error) => { console.log(error) }, onSuccess: (res) => { if(res?.data?.error_message){ throw({message: res?.data?.error_message}) } 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 } }) const rememberMe = (checked) => { if(checked){ localStorage.setItem('username', fields.username) }else{ localStorage.removeItem('username') } } useEffect(()=>{ // NAVIGATES USER TO HOME PAGE IF USER IS ACTIVE if(loggedIn){ navigate(siteLinks.dash) } },[]) return (

MERMS Panel

Welcome back, please login to your account.

Forgot Password ?
{login.error && <>

{login.error.message}

}

Don't have an account ?Sign Up

{/*
*/}
) }