70 lines
1.9 KiB
JavaScript
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>
|
|
|
|
);
|
|
}
|