import ClickAwayListener from "@material-ui/core/ClickAwayListener"; import Paper from "@material-ui/core/Paper"; import Popper from "@material-ui/core/Popper"; import { fade } from "@material-ui/core/styles/colorManipulator"; import makeStyles from "@material-ui/core/styles/makeStyles"; import React from "react"; import { IMenuItem } from "../AppLayout/menuStructure"; export interface MenuItemProps { menuItem: IMenuItem; onClick: (url: string, event: React.MouseEvent) => void; } const useStyles = makeStyles( theme => ({ paper: { borderRadius: 16, padding: theme.spacing(3) }, popper: { marginLeft: theme.spacing(3), zIndex: 2 } }), { name: "MenuItem" } ); const MenuItem: React.FC = ({ menuItem, onClick }) => { const classes = useStyles({}); const [open, setOpen] = React.useState(false); const anchor = React.useRef(null); const handleClick = (event: React.MouseEvent, menuItem: IMenuItem) => { if (menuItem.children) { setOpen(true); } else { onClick(menuItem.url, event); setOpen(false); } }; return (
handleClick(event, menuItem)}> {menuItem.label} {menuItem.children && ( setOpen(false)} mouseEvent="onClick" > {menuItem.children.map(subMenuItem => (
handleClick(event, subMenuItem)} data-test="select-option" > {subMenuItem.label}
))}
)}
); }; MenuItem.displayName = "MenuItem"; export default MenuItem;