diff options
author | Eugene Sokolov <eug-vs@keemail.me> | 2020-08-10 13:51:11 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-10 13:51:11 +0300 |
commit | 823c82383424616bc7c2562e2a763321edb6050c (patch) | |
tree | 1d5220d68ab8ebb392c87038f2fc24cc72b28775 /src/containers/Profile/MoreMenu.tsx | |
parent | 70d20b76f042a519e8e164279dfa31b5ce027d44 (diff) | |
parent | 78218c0f3427ad79de003ac59cffb99b08f0ae7d (diff) | |
download | which-ui-823c82383424616bc7c2562e2a763321edb6050c.tar.gz |
Merge pull request #74 from which-ecosystem/fetching
SWR feat. crazy refactor
Diffstat (limited to 'src/containers/Profile/MoreMenu.tsx')
-rw-r--r-- | src/containers/Profile/MoreMenu.tsx | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/containers/Profile/MoreMenu.tsx b/src/containers/Profile/MoreMenu.tsx new file mode 100644 index 0000000..1f41879 --- /dev/null +++ b/src/containers/Profile/MoreMenu.tsx @@ -0,0 +1,72 @@ +import React from 'react'; +import { useHistory } from 'react-router-dom'; +import IconButton from '@material-ui/core/IconButton'; +import Menu from '@material-ui/core/Menu'; +import MenuItem from '@material-ui/core/MenuItem'; +import MoreHorizIcon from '@material-ui/icons/MoreHoriz'; +import { makeStyles } from '@material-ui/core'; +import { useAuth } from '../../hooks/useAuth'; + +const ITEM_HEIGHT = 48; + +const useStyles = makeStyles({ + moreMenu: { + position: 'absolute', + right: 10, + zIndex: 100 + } +}); + +const MoreMenu: React.FC = () => { + const classes = useStyles(); + const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null); + const { logout } = useAuth(); + const history = useHistory(); + + const open = Boolean(anchorEl); + + const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => { + setAnchorEl(event.currentTarget); + }; + + const handleLogout = () => { + logout(); + history.push('/login'); + }; + + const handleClose = () => { + setAnchorEl(null); + }; + + return ( + <div className={classes.moreMenu}> + <div> + <IconButton + aria-label="more" + aria-controls="long-menu" + aria-haspopup="true" + onClick={handleClick} + > + <MoreHorizIcon /> + </IconButton> + <Menu + id="long-menu" + anchorEl={anchorEl} + keepMounted + open={open} + onClose={handleClose} + PaperProps={{ + style: { + maxHeight: ITEM_HEIGHT * 4.5, + width: '20ch' + } + }} + > + <MenuItem onClick={handleLogout}>Log out</MenuItem> + </Menu> + </div> + </div> + ); +}; + +export default MoreMenu; |