diff --git a/src/middleware/AuthRoute.jsx b/src/middleware/AuthRoute.jsx
index 32a9ef2..34e7942 100755
--- a/src/middleware/AuthRoute.jsx
+++ b/src/middleware/AuthRoute.jsx
@@ -1,9 +1,30 @@
-import { Navigate, Outlet } from "react-router-dom";
+import React, {useEffect} from "react";
+import { Navigate, Outlet, useNavigate } from "react-router-dom";
+import { toast } from "react-toastify";
const AuthRoute = ({ redirectPath = "/login", children }) => {
const isLogin = localStorage.getItem("email");
const profile = localStorage.getItem("profile")
+ const navigate = useNavigate();
+
+ //FUNCTION TO EXPIRE SESSION AFETR 5 MINUTES
+ const expireSession = () => {
+ localStorage.removeItem("email");
+ localStorage.removeItem('session_token');
+ localStorage.removeItem('profile');
+ // navigate("/login", { replace: true });
+ };
+
+ useEffect(()=>{
+ setTimeout(()=>{
+ expireSession()
+ toast.success("Opps, session has expired", {
+ icon: `🙂`,
+ });
+ }, 300000) //expires user login session after 5 minutes
+ },[])
+
if (!isLogin || !profile || (typeof JSON.parse(profile) == 'object' && JSON.parse(profile).firstname == undefined)) {
return ;
}
diff --git a/src/store/userInfo.js b/src/store/userInfo.js
index a319bd4..bcf5e9a 100644
--- a/src/store/userInfo.js
+++ b/src/store/userInfo.js
@@ -1,7 +1,7 @@
import { createSlice } from "@reduxjs/toolkit";
const initialState = {
- userInfo: JSON.parse(localStorage.getItem("profile"))
+ userInfo: localStorage.getItem('profile') && JSON.parse(localStorage.getItem("profile"))
};
export const userSlice = createSlice({
diff --git a/src/views/HomePages.jsx b/src/views/HomePages.jsx
index 570a53c..57bef0d 100755
--- a/src/views/HomePages.jsx
+++ b/src/views/HomePages.jsx
@@ -1,26 +1,11 @@
import React, {useEffect} from "react";
import Home from "../components/Home";
-import { useNavigate } from "react-router-dom";
import { useDispatch, useSelector } from "react-redux";
// import { toast } from "react-toastify";
export default function HomePages() {
const { drawer } = useSelector((state) => state.drawer);
- const dispatch = useDispatch();
- const navigate = useNavigate();
- const logOut = () => {
- localStorage.removeItem("email");
- localStorage.removeItem('session_token');
-
- navigate("/login", { replace: true });
- };
-
- useEffect(()=>{
- setTimeout(()=>{
- logOut()
- }, 300000) //expires user login session after 5 minutes
- },[])
return (
<>