feat: add account dropdown menu with logout link

This commit is contained in:
Ali BARIN
2022-03-24 00:36:00 +01:00
committed by Ömer Faruk Aydın
parent 22e1fe5c44
commit 782dba1f5e
4 changed files with 88 additions and 6 deletions

View File

@@ -8,8 +8,9 @@ import IconButton from '@mui/material/IconButton';
import Typography from '@mui/material/Typography';
import MenuIcon from '@mui/icons-material/Menu';
import MenuOpenIcon from '@mui/icons-material/MenuOpen';
import SettingsIcon from '@mui/icons-material/Settings';
import AccountCircleIcon from '@mui/icons-material/AccountCircle';
import AccountDropdownMenu from 'components/AccountDropdownMenu';
import Container from 'components/Container';
import HideOnScroll from 'components/HideOnScroll';
import { FormattedMessage } from 'react-intl';
@@ -21,6 +22,8 @@ type AppBarProps = {
maxWidth?: ContainerProps["maxWidth"];
};
const accountMenuId = 'account-menu';
export default function AppBar(props: AppBarProps): React.ReactElement {
const {
drawerOpen,
@@ -32,6 +35,18 @@ export default function AppBar(props: AppBarProps): React.ReactElement {
const theme = useTheme();
const matchSmallScreens = useMediaQuery(theme.breakpoints.down('md'), { noSsr: true });
const [accountMenuAnchorElement, setAccountMenuAnchorElement] = React.useState<null | HTMLElement>(null);
const isMenuOpen = Boolean(accountMenuAnchorElement);
const handleAccountMenuOpen = (event: React.MouseEvent<HTMLElement>) => {
setAccountMenuAnchorElement(event.currentTarget);
};
const handleAccountMenuClose = () => {
setAccountMenuAnchorElement(null);
};
return (
<HideOnScroll>
<MuiAppBar>
@@ -61,12 +76,21 @@ export default function AppBar(props: AppBarProps): React.ReactElement {
size="large"
edge="start"
color="inherit"
aria-label="open settings"
onClick={handleAccountMenuOpen}
aria-controls={accountMenuId}
aria-label="open profile menu"
>
<SettingsIcon />
<AccountCircleIcon />
</IconButton>
</Toolbar>
</Container>
<AccountDropdownMenu
anchorEl={accountMenuAnchorElement}
id={accountMenuId}
open={isMenuOpen}
onClose={handleAccountMenuClose}
/>
</MuiAppBar>
</HideOnScroll>
);