import React, { useEffect, useState } from 'react'; import { useHistory } from 'react-router-dom'; import { isWidthUp, makeStyles, withWidth } from '@material-ui/core'; import Drawer from '@material-ui/core/Drawer'; import ContainerDimensions from 'react-container-dimensions'; import DeviceList from './DeviceList'; import MainMap from './MainMap'; import MainToobar from './MainToolbar'; import SocketController from './SocketController'; const useStyles = makeStyles(theme => ({ root: { height: "100vh", display: "flex", flexDirection: "column" }, content: { flexGrow: 1, overflow: "hidden", display: "flex", flexDirection: "row", [theme.breakpoints.down('xs')]: { flexDirection: "column-reverse" } }, drawerPaper: { position: 'relative', [theme.breakpoints.up('sm')]: { width: 350 }, [theme.breakpoints.down('xs')]: { height: 250 } }, mapContainer: { flexGrow: 1 } })); const MainPage = ({ width }) => { const [loading, setLoading] = useState(!document.authenticated); const classes = useStyles(); const history = useHistory(); useEffect(() => { fetch('/api/session').then(response => { if (response.ok) { document.authenticated = true; setLoading(false); } else { history.push('/login'); } }); }, [history]); return loading ? (