Convert some components to Typescript
Gitlab: #30
Change-Id: I9fbd857ef93866609682fb46be8b04904ee4e66f
diff --git a/client/src/components/Header.tsx b/client/src/components/Header.tsx
new file mode 100644
index 0000000..00d5ebb
--- /dev/null
+++ b/client/src/components/Header.tsx
@@ -0,0 +1,31 @@
+import { Box, Button, Menu, MenuItem } from '@mui/material';
+import { MouseEvent, useState } from 'react';
+import { useNavigate, useParams } from 'react-router-dom';
+
+import authManager from '../AuthManager';
+
+export default function Header() {
+ const navigate = useNavigate();
+ const [anchorEl, setAnchorEl] = useState<HTMLButtonElement | null>(null);
+ const handleClick = (event: MouseEvent<HTMLButtonElement>) => setAnchorEl(event.currentTarget);
+ const handleClose = () => setAnchorEl(null);
+ const params = useParams();
+
+ const goToAccountSelection = () => navigate(`/account`);
+ const goToContacts = () => navigate(`/Contacts`);
+ const goToAccountSettings = () => navigate(`/account/${params.accountId}/settings`);
+
+ return (
+ <Box>
+ <Button aria-controls="simple-menu" aria-haspopup="true" onClick={handleClick}>
+ Menu
+ </Button>
+ <Menu id="simple-menu" anchorEl={anchorEl} open={Boolean(anchorEl)} onClose={handleClose}>
+ <MenuItem onClick={goToAccountSelection}>Change account</MenuItem>
+ <MenuItem onClick={goToContacts}>Contacts</MenuItem>
+ {params.accountId && <MenuItem onClick={goToAccountSettings}>Account settings</MenuItem>}
+ <MenuItem onClick={() => authManager.disconnect()}>Log out</MenuItem>
+ </Menu>
+ </Box>
+ );
+}