Newer
Older
import React, { FC, useEffect, useState } from 'react';
import { createMuiTheme, ThemeProvider } from '@material-ui/core/styles';
import { BrowserRouter as Router, Switch, Route } from 'react-router-dom';
import { AuthUser } from 'components/AuthUser/AuthUser';
import { LandingPage } from 'components/NonAuthUser/LandingPage/LandingPage';
import { PrivateRoute } from 'api/PrivateRoute/PrivateRoute';
import { AuthRoutes, NonAuthRoutes } from 'api/routes';
import { NotFound } from 'components/NonAuthUser/NotFound/NotFound';
import { ProfilePage } from 'components/AuthUser/ProfilePage/ProfilePage';
import { Roles } from 'api/userRoles';
import { Unauthorized } from 'components/NonAuthUser/Unauthorized/Unauthorized';
import { ReservationPage } from 'components/AuthUser/ReservationPage/ReservationPage';
import { HomePage } from 'components/AuthUser/HomePage/HomePage';
import { SignInForm } from 'components/AuthUser/SignInForm/SignInForm';
import { AuthContext } from 'components/AuthUser/AuthContext';
const theme = createMuiTheme({
palette: {
primary: {
main: '#5e5ce4',
},
secondary: {
main: '#e2e45c',
},
},
typography: {
fontSize: 16,
},
overrides: {
MuiTabs: {
indicator: {
backgroundColor: 'white',
},
},
MuiTab: {
wrapper: {
flexDirection: 'row',
},
},
const [role, setRole] = useState('');
const value = { role, setRole };
<ThemeProvider theme={theme}>
<Router>
<div data-testid="App">
<Switch>
<Route exact path={NonAuthRoutes.home} component={LandingPage} />
<Route path={NonAuthRoutes.auth} component={AuthUser} />
<PrivateRoute
path={AuthRoutes.dashboard}
Component={HomePage}
requiredRoles={[Roles.admin, Roles.operator, Roles.senior]}
/>
<PrivateRoute
path={AuthRoutes.profile}
Component={ProfilePage}
requiredRoles={[Roles.admin, Roles.operator, Roles.senior]}
/>
</AuthContext.Provider>
<Route path={AuthRoutes.reservation} component={ReservationPage} />
<Route path={NonAuthRoutes.unauthorized} component={Unauthorized} />
<Route component={NotFound} />
</Switch>
</div>
</Router>
</ThemeProvider>