import React from 'react'; import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; import { hot } from 'react-hot-loader/root'; import AppBar from './common/AppBar'; import LoadingPage from './common/LoadingPage'; import Home from './home/Home'; import Login from './user/Login'; import Settings from './settings/Settings'; import About from './about/About'; import User from './user/User'; import TimelinePage from './timeline/TimelinePage'; import AlertHost from './common/AlertHost'; import { checkUserLoginState, useOptionalUser } from './data/user'; const NoMatch: React.FC = () => { return ( <>
Ah-oh, 404!
); }; const LazyAdmin = React.lazy(() => import(/* webpackChunkName: "admin" */ './admin/Admin') ); const App: React.FC = () => { const user = useOptionalUser(); React.useEffect(() => { checkUserLoginState(); }, []); let body; if (user === undefined) { body = ; } else { body = ( }> {user && user.administrator && ( )} ); } return ( <> {body} ); }; export default hot(App);