import { useRef, useState } from "react"; import { Button, ButtonGroup, ClickAwayListener, Grow, MenuItem, MenuList, Paper, Popper, } from "@mui/material"; import ArrowDropDownIcon from "@mui/icons-material/ArrowDropDown"; const DropDownButton = ({ actions = [], payload = [] }) => { const [open, setOpen] = useState(false); const [selectedIndex, setSelectedIndex] = useState(0); const anchorRef = useRef(null); const handleClick = () => { actions[selectedIndex].trigger(...payload); }; const handleMenuItemClick = (event, index) => { setSelectedIndex(index); setOpen(false); } const handleToggle = () => { setOpen(open => !open); }; const handleClose = (event) => { if ( anchorRef.current && anchorRef.current.contains(event.target) ) { return; } setOpen(false); }; return ( <> {({ TransitionProps, placement }) => ( {actions.map((action, index) => ( handleMenuItemClick(event, index)} > {action.name} ))} )} ) } export default DropDownButton;