Spaces:
Runtime error
Runtime error
| import { useState, MouseEvent } from "react"; | |
| import IconButton from "@mui/material/IconButton"; | |
| import Menu from "@mui/material/Menu"; | |
| import MenuItem from "@mui/material/MenuItem"; | |
| import InfoIcon from "@mui/icons-material/Info"; | |
| import { useRouter } from "next/router"; | |
| export function InfoMenu() { | |
| const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null); | |
| const open = Boolean(anchorEl); | |
| const handleClick = (event: MouseEvent<HTMLElement>) => { | |
| setAnchorEl(event.currentTarget); | |
| }; | |
| const router = useRouter(); | |
| const handleClose = () => { | |
| setAnchorEl(null); | |
| }; | |
| return ( | |
| <div> | |
| <IconButton | |
| aria-label="Info" | |
| id="infoMenu-button" | |
| aria-controls={open ? "infoMenu-menu" : undefined} | |
| aria-expanded={open ? "true" : undefined} | |
| aria-haspopup="true" | |
| onClick={handleClick} | |
| > | |
| <InfoIcon /> | |
| </IconButton> | |
| <Menu | |
| id="infoMenu-menu" | |
| MenuListProps={{ | |
| "aria-labelledby": "infoMenu-button", | |
| }} | |
| anchorEl={anchorEl} | |
| open={open} | |
| onClose={handleClose} | |
| PaperProps={{ | |
| style: { | |
| width: "20ch", | |
| }, | |
| }} | |
| > | |
| <MenuItem | |
| onClick={async () => { | |
| await router.push("/legal/data-policy"); | |
| handleClose(); | |
| }} | |
| > | |
| Data Policy | |
| </MenuItem> | |
| <MenuItem | |
| onClick={async () => { | |
| await router.push("/legal/imprint"); | |
| handleClose(); | |
| }} | |
| > | |
| Imprint | |
| </MenuItem> | |
| <MenuItem | |
| onClick={async () => { | |
| await router.push("/legal/cookie-policy"); | |
| handleClose(); | |
| }} | |
| > | |
| Cookie Policy | |
| </MenuItem> | |
| </Menu> | |
| </div> | |
| ); | |
| } | |