aboutsummaryrefslogtreecommitdiff
path: root/modern/src/components/BottomNav.js
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2021-09-03 21:26:35 -0700
committerAnton Tananaev <anton.tananaev@gmail.com>2021-09-03 21:26:35 -0700
commit26ba6836d09627e769c6be44fa7c77b65feb4274 (patch)
treeafc4816c666a62f71870915473e638a7e1fe9072 /modern/src/components/BottomNav.js
parent7b338688fb6f2bcca5236348495e4b7398f8de00 (diff)
downloadtrackermap-web-26ba6836d09627e769c6be44fa7c77b65feb4274.tar.gz
trackermap-web-26ba6836d09627e769c6be44fa7c77b65feb4274.tar.bz2
trackermap-web-26ba6836d09627e769c6be44fa7c77b65feb4274.zip
Reimplement bottom navigation
Diffstat (limited to 'modern/src/components/BottomNav.js')
-rw-r--r--modern/src/components/BottomNav.js107
1 files changed, 0 insertions, 107 deletions
diff --git a/modern/src/components/BottomNav.js b/modern/src/components/BottomNav.js
deleted file mode 100644
index 3d1a6752..00000000
--- a/modern/src/components/BottomNav.js
+++ /dev/null
@@ -1,107 +0,0 @@
-import React from 'react';
-import { useDispatch } from 'react-redux';
-import { Link, useHistory } from 'react-router-dom';
-import {
- makeStyles, Paper, Toolbar, IconButton, useMediaQuery, useTheme,
-} from '@material-ui/core';
-
-import ReplayIcon from '@material-ui/icons/Replay';
-import DescriptionIcon from '@material-ui/icons/Description';
-import ShuffleIcon from '@material-ui/icons/Shuffle';
-import MapIcon from '@material-ui/icons/Map';
-import LogoutIcon from '@material-ui/icons/ExitToApp';
-
-import { sessionActions } from '../store';
-import { useTranslation } from '../LocalizationProvider';
-
-const useStyles = makeStyles((theme) => ({
- container: {
- bottom: theme.spacing(0),
- left: '0px',
- width: '100%',
- position: 'fixed',
- zIndex: 1301,
- [theme.breakpoints.up('lg')]: {
- left: theme.spacing(1.5),
- bottom: theme.spacing(1.5),
- width: theme.dimensions.drawerWidthDesktop,
- },
- },
- toolbar: {
- padding: theme.spacing(0, 2),
- display: 'flex',
- justifyContent: 'space-around',
- maxWidth: theme.dimensions.bottomNavMaxWidth,
- margin: 'auto',
- },
- navItem: {
- display: 'flex',
- flexDirection: 'column',
- fontSize: '0.75rem',
- fontWeight: 'normal',
- },
-}));
-
-const BottomNav = ({ showOnDesktop }) => {
- const classes = useStyles();
- const theme = useTheme();
- const history = useHistory();
- const t = useTranslation();
-
- const isDesktop = useMediaQuery(theme.breakpoints.up('lg'));
- const dispatch = useDispatch();
-
- const NavLink = ({ children, location }) => (
- <IconButton component={Link} classes={{ label: classes.navItem }} to={location}>
- {children}
- </IconButton>
- );
-
- const handleLogout = async () => {
- const response = await fetch('/api/session', { method: 'DELETE' });
- if (response.ok) {
- dispatch(sessionActions.updateUser(null));
- history.push('/login');
- }
- };
-
- if (isDesktop && !showOnDesktop) return null;
-
- return (
- <div className={classes.container}>
- <Paper square elevation={3}>
- <Toolbar className={classes.toolbar} disableGutters>
-
- {isDesktop ? (
- <NavLink location="/replay">
- <ReplayIcon />
- {t('reportReplay')}
- </NavLink>
- ) : (
- <NavLink location="/">
- <MapIcon />
- {t('mapTitle')}
- </NavLink>
- )}
-
- <NavLink location="/reports/route">
- <DescriptionIcon />
- {t('reportTitle')}
- </NavLink>
-
- <NavLink location="/settings/notifications">
- <ShuffleIcon />
- {t('settingsTitle')}
- </NavLink>
-
- <IconButton classes={{ label: classes.navItem }} onClick={handleLogout}>
- <LogoutIcon />
- {t('loginLogout')}
- </IconButton>
- </Toolbar>
- </Paper>
- </div>
- );
-};
-
-export default BottomNav;