Skip to content
Snippets Groups Projects
Commit 69e1c691 authored by Planoetscher Daniel (Student Com20)'s avatar Planoetscher Daniel (Student Com20)
Browse files

adjusted routing system

parent 3a4126a9
No related branches found
No related tags found
No related merge requests found
import { Suspense, lazy } from 'react';
import { BrowserRouter as Router, Switch, Route } from 'react-router-dom';
import { isLoggedIn } from 'adapters/api';
import ProtectedRoute from 'components/helpers/Rerouters/ProtectedRoute';
import LoginRoute from 'components/helpers/Rerouters/LoginRoute';
const Home = lazy(() => import('pages/Home'));
const Login = lazy(() => import('pages/Login'));
const Register = lazy(() => import('pages/Register'));
const Tasks = lazy(() => import('pages/Tasks'));
const Navigation = lazy(() => import('components/ui/Navigation'));
export default function App() {
return (
<Router>
<Suspense fallback={false}>
{isLoggedIn() && <Navigation />}
<Switch>
{!isLoggedIn() && <Route path="/register" component={Register} />}
{!isLoggedIn() && <Route exact path="/" component={Home} />}
{!isLoggedIn() && <Route path="/" component={Login} />}
<Route path="/" component={Tasks} />
<ProtectedRoute path="/tasks" component={Tasks} />
<LoginRoute path="/login" component={Login} />
<LoginRoute path="/register" component={Register} />
<Route path="/" component={Home} />
</Switch>
</Suspense>
</Router>
......
export const isLoggedIn = (): boolean => false;
export const isLoggedIn = (): boolean => true;
import { ComponentType } from 'react';
import { Redirect, Route } from 'react-router-dom';
import { isLoggedIn } from 'adapters/api';
interface Props {
path: string,
exact?: boolean,
component: ComponentType<any>
}
export default function ProtectedRoute({ path, exact, component }: Props) {
if (!isLoggedIn()) {
return (
<Route path={path} exact={exact} component={component} />
);
}
return (
<Redirect to="/tasks"/>
);
}
\ No newline at end of file
import { ComponentType } from 'react';
import { Redirect, Route } from 'react-router-dom';
import { isLoggedIn } from 'adapters/api';
interface Props {
path: string,
exact?: boolean,
component: ComponentType<any>
}
export default function ProtectedRoute({ path, exact, component }: Props) {
if (isLoggedIn()) {
return (
<Route path={path} exact={exact} component={component} />
);
}
return (
<Redirect to="/login" />
);
}
\ No newline at end of file
import Navigation from 'components/ui/Navigation';
import './tasks.scss';
export default function Tasks() {
return (
<main>
<h1>Tasks</h1>
</main>
<div className="tasks-page">
<Navigation />
<main>
<h1>Tasks</h1>
</main>
</div>
);
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment