logout function added

This commit is contained in:
victorAnumudu
2024-12-10 10:37:43 +01:00
parent 70d0691f71
commit c47efaaadc
8 changed files with 96 additions and 33 deletions
+19 -24
View File
@@ -1,5 +1,7 @@
import React, { useEffect, useState } from 'react'
import { useDispatch, useSelector } from "react-redux";
import { Outlet, useNavigate } from 'react-router-dom'
import { updateUserDetails } from "../../store/UserDetails";
import MainLoaderBS from '../loaders/MainLoaderBS'
import Layout from '../layout/Layout'
import siteLinks from '../../links/siteLinks'
@@ -12,8 +14,15 @@ export default function UserExist() {
const navigate = useNavigate()
const [loading, setLoading] = useState(true)
const dispatch = useDispatch()
const [lastActivityTime, setLastActivityTime] = useState(Date.now()); // HOLDS THE INITIAL TIME USER LOGS IN
const { userDetails: { token }} = useSelector((state) => state?.userDetails); // CHECKS IF USER Details are avaliable, to determine if user is active
let loggedIn = token ? true : false; // variable to determine if user is logged in
// console.log('loggedIn', loggedIn)
// Function to log the user out
const logoutUser = () => {
@@ -49,34 +58,20 @@ export default function UserExist() {
}
},[lastActivityTime])
// Setting up event listeners for user activity
// useEffect(() => {
// // Listen for activity events
// const events = ['mousemove', 'keydown', 'click', 'scroll', 'touchstart'];
// // Adding event listeners
// events.forEach(event => {
// window.addEventListener(event, resetTimer);
// });
// // Start the timer initially
// // resetTimer();
// // Cleanup event listeners when the component unmounts
// return () => {
// events.forEach(event => {
// window.removeEventListener(event, resetTimer);
// });
// // if (timer) {
// // clearTimeout(timer);
// // setTimer(null);
// // }
// };
// }, []);
useEffect(()=>{
let token = localStorage.getItem('token')
const timer = setTimeout(()=>{
if(token && loggedIn){
setLoading(false)
}else if(token && !loggedIn){
const data = {token}
dispatch(updateUserDetails({ ...data }));
setLoading(false)
// dispatch(updateUserDetails({ ...res.data }));
}else{
navigate('auth/login')
}
},1000)
return () => clearTimeout(timer)