implemented logout

This commit was merged in pull request #44.
This commit is contained in:
victorAnumudu
2024-04-27 23:52:11 +01:00
parent bb718953ad
commit 333ada0a1c
9 changed files with 118 additions and 8 deletions
+45 -4
View File
@@ -1,11 +1,52 @@
import {useState, useEffect} from 'react'
import DashboardLayout from "./DashboardLayout";
import { Outlet } from "react-router-dom";
import { Outlet, useNavigate } from "react-router-dom";
import { useSelector, useDispatch } from "react-redux";
import { RouteHandler } from '../../router/routes';
import { updateUserDetails } from '../../store/UserDetails';
import Logo from '../../assets/images/logo.png'
export default function DashboardAuth() {
const navigate = useNavigate()
const dispatch = useDispatch()
const { userDetails } = useSelector((state:any) => state?.userDetails); // CHECKS IF USER Details are avaliable
const [loading, setLoading] = useState(true)
useEffect(()=>{
let token = localStorage.getItem('token')
if(!token){
navigate(RouteHandler.letsGetStarted, {replace:true})
return
}
const getUserByToken = () => {
let data = {firstname:'firstname', lastname:'lastname', uid:'28273737646466464'}
setTimeout(()=>{
setLoading(false)
dispatch(updateUserDetails({...data}));
},4000)
}
if(!Object.keys(userDetails).length){
getUserByToken()
}
},[])
return (
<DashboardLayout>
<Outlet />
</DashboardLayout>
<>
{loading && !Object.keys(userDetails).length ?
<div className='w-full h-screen flex flex-col justify-center items-center gap-4'>
<img className='animate-pulse' src={Logo} alt='Logo' />
<p className='animate-pulse'>loading...</p>
</div>
:
<DashboardLayout>
<Outlet />
</DashboardLayout>
}
</>
)
}
@@ -35,6 +35,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
// });
const logoutUser = () => {
localStorage.clear()
navigate(RouteHandler.letsGetStarted, {replace:true})
}