import * as React from 'react'; import {createPortal} from 'react-dom'; import {cn} from '@/lib/utils'; interface DropdownMenuContextValue { open: boolean; setOpen: (open: boolean) => void; triggerRef: React.RefObject; } const DropdownMenuContext = React.createContext(undefined); function useDropdownMenu() { const context = React.useContext(DropdownMenuContext); if (!context) { throw new Error('useDropdownMenu must be used within a DropdownMenu'); } return context; } interface DropdownMenuProps { children: React.ReactNode; } const DropdownMenu: React.FC = ({ children }) => { const [open, setOpen] = React.useState(false); const triggerRef = React.useRef(null); return (
{children}
); }; const DropdownMenuTrigger = React.forwardRef< HTMLButtonElement, React.ButtonHTMLAttributes >(({ onClick, ...props }, ref) => { const { open, setOpen, triggerRef } = useDropdownMenu(); // Merge the forwarded ref with the context triggerRef React.useImperativeHandle(ref, () => triggerRef.current as HTMLButtonElement); return (