Files
dashboard/frontend/src/components/accountMenu/accountMenu.js

70 lines
1.9 KiB
JavaScript

import React from 'react';
import MenuItem from '@material-ui/core/MenuItem';
import Menu from '@material-ui/core/Menu';
import AccountCircle from '@material-ui/icons/AccountCircle';
import IconButton from '@material-ui/core/IconButton';
export default function AccountMenu(props) {
const [anchorEl, setAnchorEl] = React.useState(null);
const openMenu = Boolean(anchorEl);
const handleMenu = (event) => {
setAnchorEl(event.currentTarget);
};
const handleClose = () => {
setAnchorEl(null);
};
const logout = async () => {
await fetch(`/simcompanies/API/user/logout`, {
method: 'DELETE',
mode: 'cors',
cache: 'no-cache',
headers: {
'Content-Type': 'application/json'
},
redirect: 'follow',
referrerPolicy: 'no-referrer'
}).then(
() => { window.location.reload() }
)
}
const handleLogout = () => {
logout()
};
return (
<div>
<IconButton
onClick={handleMenu}
color="inherit"
>
<AccountCircle fontSize="large" />
</IconButton>
<Menu
id="menu-appbar"
anchorEl={anchorEl}
anchorOrigin={{
vertical: 'bottom',
horizontal: 'right',
}}
keepMounted
getContentAnchorEl={null}
transformOrigin={{
vertical: 'top',
horizontal: 'right',
}}
open={openMenu}
onClose={handleClose}
>
<MenuItem onClick={handleClose}>Profile</MenuItem>
<MenuItem onClick={handleLogout}>Logout</MenuItem>
</Menu>
</div>
);
}