import { Chip, Menu, MenuItem } from '@mui/joy' import IconButton from '@mui/joy/IconButton' import React, { useEffect, useRef, useState } from 'react' import { getTextColorFromBackgroundColor } from '../../utils/LabelColors' const IconButtonWithMenu = ({ key, icon, options, onItemSelect, selectedItem, setSelectedItem, isActive, useChips, }) => { const [anchorEl, setAnchorEl] = useState(null) const menuRef = useRef(null) const handleMenuOpen = event => { setAnchorEl(event.currentTarget) } const handleMenuClose = () => { setAnchorEl(null) } useEffect(() => { document.addEventListener('mousedown', handleMenuOutsideClick) return () => { document.removeEventListener('mousedown', handleMenuOutsideClick) } }, [anchorEl]) const handleMenuOutsideClick = event => { if (menuRef.current && !menuRef.current.contains(event.target)) { handleMenuClose() } } return ( <> {icon} {options?.map(item => ( { onItemSelect(item) setSelectedItem?.selectedItem(item.name) handleMenuClose() }} > {useChips ? ( {item.name} ) : ( <> {item?.icon} {item.name} )} ))} {/* {selectedItem && selectedItem !== 'All' && ( { onItemSelect(null) setSelectedItem?.setSelectedItem('All') }} > Cancel All Filters )} */} ) } export default IconButtonWithMenu