import { useState, useRef, useEffect } from 'preact/hooks'; const DropdownMenu = ({ btnProps = {}, btnContent, menuItems, position = 'top' }) => { const [isOpen, setIsOpen] = useState(false); const triggerRef = useRef(null); const menuRef = useRef(null); const toggleDropdown = () => { setIsOpen(!isOpen); }; const handleClickOutside = event => { if ( menuRef.current && !menuRef.current.contains(event.target) && !triggerRef.current.contains(event.target) ) { setIsOpen(false); } }; useEffect(() => { document.addEventListener('mousedown', handleClickOutside); return () => { document.removeEventListener('mousedown', handleClickOutside); }; }, []); return (
{isOpen && ( )}
); }; export { DropdownMenu };