"use client"; import Link from "next/link"; import { useState } from "react"; import { ChevronDown, Dot, LucideIcon } from "lucide-react"; import { cn } from "@/lib/utils"; import { Button } from "@/components/ui/button"; import { DropdownMenuArrow } from "@radix-ui/react-dropdown-menu"; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible"; import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from "@/components/ui/tooltip"; import { DropdownMenu, DropdownMenuItem, DropdownMenuLabel, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuSeparator } from "@/components/ui/dropdown-menu"; import { usePathname } from "next/navigation"; type Submenu = { href: string; label: string; active?: boolean; }; interface CollapseMenuButtonProps { icon: LucideIcon; label: string; active: boolean; submenus: Submenu[]; isOpen: boolean | undefined; } export function CollapseMenuButton({ icon: Icon, label, submenus, isOpen }: CollapseMenuButtonProps) { const pathname = usePathname(); const isSubmenuActive = submenus.some((submenu) => submenu.active === undefined ? submenu.href === pathname : submenu.active ); const [isCollapsed, setIsCollapsed] = useState(isSubmenuActive); return isOpen ? ( {submenus.map(({ href, label, active }, index) => ( ))} ) : ( {label} {label} {submenus.map(({ href, label, active }, index) => (

{label}

))}
); }