import { Box, Divider, HStack, Menu, MenuButton, MenuItem, MenuList, Portal, Text, useDisclosure, } from '@chakra-ui/react'; import { ChevronRight } from 'lucide-react'; import { observer } from 'mobx-react-lite'; import React, { useRef } from 'react'; const FlyoutSubMenu: React.FC<{ title: string; flyoutMenuOptions: { name: string; value: string }[]; onClose: () => void; handleSelect: (item) => Promise; isSelected?: (item) => boolean; parentIsOpen: boolean; setMenuState?: (state) => void; }> = observer( ({ title, flyoutMenuOptions, onClose, handleSelect, isSelected, parentIsOpen, setMenuState }) => { const { isOpen, onOpen, onClose: onSubMenuClose } = useDisclosure(); const menuRef = new useRef(); return ( { onSubMenuClose(); }} closeOnSelect={false} > {title} {flyoutMenuOptions.map((item, index) => ( { onSubMenuClose(); onClose(); handleSelect(item); }} bg={isSelected(item) ? 'background.secondary' : 'background.tertiary'} _hover={{ bg: 'rgba(0, 0, 0, 0.05)' }} _focus={{ bg: 'rgba(0, 0, 0, 0.1)' }} > {item.name} {index < flyoutMenuOptions.length - 1 && ( )} ))} ); }, ); export default FlyoutSubMenu;