import { Button } from "$components/Button"; import { ContextMenu, type ContextMenuDivider, type ContextMenuItem } from "$components/ContextMenu/ContextMenu"; import type { IconProps, IconSize } from "$icons"; import { useCallback, useRef, useState } from "react"; type MenuItem = ContextMenuItem | ContextMenuDivider; export function ToolbarDropdown( { icon, label, items, iconOnly = false }: { icon: { Component: React.ComponentType; size: IconSize }; label: string; items: MenuItem[]; iconOnly?: boolean; }, ) { const wrapperRef = useRef(null); const [isOpen, setIsOpen] = useState(false); const [position, setPosition] = useState({ x: 0, y: 0 }); const handleClick = useCallback(() => { if (!wrapperRef.current) return; const rect = wrapperRef.current.getBoundingClientRect(); setPosition({ x: rect.left, y: rect.bottom + 4 }); setIsOpen((prev) => !prev); }, []); const handleClose = useCallback(() => setIsOpen(false), []); return (
); }