import { useEffect, useRef, useState } from 'react'; import { Wrapper } from './styles'; import { Text } from '..'; type ContextMenuProps = { className?: string; items: Array<{ label: string; action?: () => void }>; component: string; }; const ContextMenu = ({ items, component, className }: ContextMenuProps) => { const [open, setOpen] = useState(false); const parentComponentRef = useRef(); useEffect(() => { parentComponentRef.current = document.querySelector(`#${component}`) as HTMLDivElement; const openMenu = () => setOpen(true); const closeMenu = () => setOpen(false); parentComponentRef.current?.addEventListener( 'mouseenter', openMenu ); parentComponentRef.current?.addEventListener( 'mouseleave', closeMenu ); return () => { parentComponentRef.current?.removeEventListener('mouseenter', openMenu); parentComponentRef.current?.removeEventListener('mouseleave', closeMenu); }; }, []); return ( {open && ( )} ); }; export default ContextMenu;