Update app routing

This commit is contained in:
Hazem Krimi
2021-05-01 17:52:33 +01:00
parent 0123cf648d
commit 50eac01666
+45 -26
View File
@@ -1,44 +1,63 @@
import { useEffect } from 'react'; import { useEffect } from 'react';
import { Switch } from 'react-router-dom'; import { Switch } from 'react-router-dom';
import { ProtectedRoute, AuthRoute } from './components'; import { useReactiveVar } from '@apollo/client';
import { tokenVar } from './graphql/state'; import { ProtectedRoute, AuthRoute, Navbar, Sidebar } from './components';
import { roleVar, tokenVar } from './graphql/state';
import { import {
AdditionalInfo, AdditionalInfo,
ForgotPassword, ForgotPassword,
Login, Login,
RecoverAccount, RecoverAccount,
Signup, Signup,
Main, Project,
Settings,
} from './pages'; } from './pages';
const App = () => { const App = () => {
useEffect(() => { const token = useReactiveVar(tokenVar);
const token = localStorage.getItem('token'); const role = useReactiveVar(roleVar);
if (token) tokenVar(token); useEffect(() => {
const localStorageToken = localStorage.getItem('token');
if (localStorageToken) tokenVar(localStorageToken);
}, []); }, []);
return ( return (
<Switch> <>
<ProtectedRoute path='/' exact> {token && (
<Main /> <>
</ProtectedRoute> <Navbar withSidebar={role !== 'admin'} />
<AuthRoute path='/login' exact> {role !== 'admin' && <Sidebar />}
<Login /> </>
</AuthRoute> )}
<AuthRoute path='/signup' exact> <Switch>
<Signup /> <ProtectedRoute path='/' exact>
</AuthRoute> <Project />
<AuthRoute path='/additional-info' exact> </ProtectedRoute>
<AdditionalInfo /> <ProtectedRoute path='/project' exact>
</AuthRoute> <Project />
<AuthRoute path='/forgot-password' exact> </ProtectedRoute>
<ForgotPassword /> <ProtectedRoute path='/settings' exact>
</AuthRoute> <Settings />
<AuthRoute path='/recover-account' exact> </ProtectedRoute>
<RecoverAccount /> <AuthRoute path='/login' exact>
</AuthRoute> <Login />
</Switch> </AuthRoute>
<AuthRoute path='/signup' exact>
<Signup />
</AuthRoute>
<AuthRoute path='/additional-info' exact>
<AdditionalInfo />
</AuthRoute>
<AuthRoute path='/forgot-password' exact>
<ForgotPassword />
</AuthRoute>
<AuthRoute path='/recover-account' exact>
<RecoverAccount />
</AuthRoute>
</Switch>
</>
); );
}; };