aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2020-11-01 21:57:47 -0800
committerAnton Tananaev <anton.tananaev@gmail.com>2020-11-01 21:57:47 -0800
commit162000dc250b1be24fd7e6dd4e9c3883ca6581c5 (patch)
treeb3c683dd896b6ee0b2695217e7251e959a5fa2a9
parent1a06115aa27a0c1545b8eb9bfb38930fcb8b56bf (diff)
downloadtrackermap-web-162000dc250b1be24fd7e6dd4e9c3883ca6581c5.tar.gz
trackermap-web-162000dc250b1be24fd7e6dd4e9c3883ca6581c5.tar.bz2
trackermap-web-162000dc250b1be24fd7e6dd4e9c3883ca6581c5.zip
Improve session handing
-rw-r--r--modern/src/App.js34
-rw-r--r--modern/src/MainPage.js5
2 files changed, 23 insertions, 16 deletions
diff --git a/modern/src/App.js b/modern/src/App.js
index 6fd5c007..243489ee 100644
--- a/modern/src/App.js
+++ b/modern/src/App.js
@@ -15,26 +15,36 @@ import GroupsPage from './settings/GroupsPage';
import GroupPage from './settings/GroupPage';
import PositionPage from './PositionPage';
import ReplayPage from './reports/ReplayPage';
+import { useSelector } from 'react-redux';
+import { LinearProgress } from '@material-ui/core';
const App = () => {
+ const initialized = useSelector(state => !!state.session.server && !!state.session.user);
+
return (
<>
<CssBaseline />
<SocketController />
<Switch>
- <Route exact path='/' component={MainPage} />
<Route exact path='/login' component={LoginPage} />
- <Route exact path='/replay' component={ReplayPage} />
- <Route exact path='/position/:id?' component={PositionPage} />
- <Route exact path='/user/:id?' component={UserPage} />
- <Route exact path='/device/:id?' component={DevicePage} />
- <Route exact path='/reports/route' component={RouteReportPage} />
- <Route exact path='/settings/notifications' component={NotificationsPage} />
- <Route exact path='/settings/notification/:id?' component={NotificationPage} />
- <Route exact path='/settings/groups' component={GroupsPage} />
- <Route exact path='/settings/group/:id?' component={GroupPage} />
- <Route exact path='/admin/server' component={ServerPage} />
- <Route exact path='/admin/users' component={UsersPage} />
+ <Route>
+ {!initialized ? (<LinearProgress />) : (
+ <Switch>
+ <Route exact path='/' component={MainPage} />
+ <Route exact path='/replay' component={ReplayPage} />
+ <Route exact path='/position/:id?' component={PositionPage} />
+ <Route exact path='/user/:id?' component={UserPage} />
+ <Route exact path='/device/:id?' component={DevicePage} />
+ <Route exact path='/reports/route' component={RouteReportPage} />
+ <Route exact path='/settings/notifications' component={NotificationsPage} />
+ <Route exact path='/settings/notification/:id?' component={NotificationPage} />
+ <Route exact path='/settings/groups' component={GroupsPage} />
+ <Route exact path='/settings/group/:id?' component={GroupPage} />
+ <Route exact path='/admin/server' component={ServerPage} />
+ <Route exact path='/admin/users' component={UsersPage} />
+ </Switch>
+ )}
+ </Route>
</Switch>
</>
);
diff --git a/modern/src/MainPage.js b/modern/src/MainPage.js
index d277f28a..58bf83aa 100644
--- a/modern/src/MainPage.js
+++ b/modern/src/MainPage.js
@@ -1,9 +1,7 @@
import React from 'react';
-import { useSelector } from 'react-redux';
import { isWidthUp, makeStyles, withWidth } from '@material-ui/core';
import Drawer from '@material-ui/core/Drawer';
import ContainerDimensions from 'react-container-dimensions';
-import LinearProgress from '@material-ui/core/LinearProgress';
import DevicesList from './DevicesList';
import MainToolbar from './MainToolbar';
import Map from './map/Map';
@@ -42,10 +40,9 @@ const useStyles = makeStyles(theme => ({
}));
const MainPage = ({ width }) => {
- const initialized = useSelector(state => !!state.session.server && !!state.session.user);
const classes = useStyles();
- return !initialized ? (<LinearProgress />) : (
+ return (
<div className={classes.root}>
<MainToolbar />
<div className={classes.content}>