import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"; import "./dropdown-menu.scss"; export interface DropdownMenuItem { icon?: React.ReactNode; label: string; disabled?: boolean; show?: boolean; onClick?: () => void; } interface DropdownMenuProps { children: React.ReactNode; title?: string; loop?: boolean; items: DropdownMenuItem[]; sideOffset?: number; side?: "top" | "bottom" | "left" | "right"; align?: "start" | "center" | "end"; alignOffset?: number; collisionPadding?: number; } export function DropdownMenu({ children, title, items, sideOffset = 5, side = "bottom", loop = true, align = "center", alignOffset = 0, collisionPadding = 16, }: Readonly) { return (
{children}
{title && (
{title}
)} {items.map( (item) => item.show !== false && ( {item.icon && (
{item.icon}
)} {item.label}
) )}
); }