Refresh page navigate user to “/”
I have this App.tsx in which if user is not logged in and he is on privacy-policy page then if user refresh the page it directly navigate to index page (“/” route).
and could you guys please help me to reduce the logic ?
thank you in advance !
function App() {
const Auth = useSelector((state: RootState) => state.Auth)
const [isLogin, setIsLogin] = useState<boolean>((localStorage.getItem('uid') !== "") && (localStorage.getItem('uid') !== 'null'));
if (localStorage.getItem('uid') && (localStorage.getItem('uid') !== "") && (localStorage.getItem('uid') !== 'null')) {
Auth.isLogin=true;
Auth.uid=localStorage.getItem('uid');
}
useEffect(() => {
if (Auth.isLogin && Auth.uid !== "") {
getUserProfile(Auth.uid)
getAllstories(Auth.uid)
localStorage.setItem('uid', Auth.uid)
if(localStorage.getItem('methodId')!.split('-')[0]==='phone'){
localStorage.setItem('method','phone');
}
else{
localStorage.setItem('method','email');
}
setIsLogin(true)
}
else {
if (localStorage.getItem('uid') && (localStorage.getItem('uid') !== "") && (localStorage.getItem('uid') !== 'null')) {
setIsLogin(true)
}
else {
setIsLogin(false)
}
}
const handleStorageChange = () => {
setIsLogin((localStorage.getItem('uid') !== "") && (localStorage.getItem('uid') !== 'null'));
};
window.addEventListener('storage', handleStorageChange);
return () => {
window.removeEventListener('storage', handleStorageChange);
};
}, [Auth.isLogin, Auth.uid]);
return (
<div className="App" >
<BrowserRouter>
{isLogin ?
<CreateLayout>
<Routes>
<Route path="/" element={<Dashboard />} />
<Route path="/create" element={<Create />} />
</Routes>
</CreateLayout>
:
<Layout>
<Routes>
<Route path="/" element={<Index />} />
<Route path="/privacy-policy" element={<PrivacyPolicy />} />
<Route path="*" element={<NotFound />} />
</Routes>
</Layout>
}
</BrowserRouter>
</div>
);
}
export default App;