import logo from "./assets/logo.png"; import { useState } from "react"; import { Link as RouterLink, useHistory } from "react-router-dom"; import { useLocalStorage } from "react-use"; import { AppBar, Toolbar, Typography, Box, Button, Divider, Menu, MenuItem, Link, } from "@material-ui/core"; import MenuIcon from "@material-ui/icons/Menu"; import LogIn from "components/LogIn"; function Bar() { const [loggedIn, setLoggedIn] = useLocalStorage("loggedIn", false); const [disabledAuth] = useLocalStorage("disableAuth", false); const [anchorEl, setAnchorEl] = useState(null); const history = useHistory(); const openMenu = (event) => { setAnchorEl(event.currentTarget); }; const closeMenu = () => { setAnchorEl(null); }; const onLogOutClick = () => { setLoggedIn(false); localStorage.clear(); history.push("/"); history.go(0); }; const menuItems = [ // TODO: add settings page // { // name: "Settings", // to: "/settings", // }, ...(!disabledAuth ? [ { name: "Log out", divide: true, onClick: onLogOutClick, }, ] : []), ]; return ( logo {loggedIn && menuItems.length > 0 && ( <> {menuItems.map((menuItem, index) => { if ( Object.prototype.hasOwnProperty.call(menuItem, "condition") && !menuItem.condition ) { return null; } let component = null; if (menuItem.to) { component = ( {menuItem.name} ); } else { component = ( { closeMenu(); menuItem.onClick(); }} > {menuItem.name} ); } if (menuItem.divide) { return ( {component} ); } return component; })} )} {!loggedIn && LogIn()} ); } export default Bar;