"use client" import { Sidebar, SidebarContent, SidebarHeader, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, } from "@/components/ui/sidebar" import { useSubmenuState } from "@/hooks/use-submenu-state" import { cn } from "@/lib/utils" import { ChevronDown, ChevronRight } from "lucide-react" interface MenuItem { id: string title: string items?: MenuItem[] } interface CardSidenavProps { items: MenuItem[] } export function FolderTreeMenu({ items }: CardSidenavProps) { const { openStates, toggleSubmenu } = useSubmenuState() const renderMenuItem = (item: MenuItem) => { const hasSubItems = item.items && item.items.length > 0 const isOpen = openStates[item.id] return ( hasSubItems && toggleSubmenu(item.id)} className={cn( "w-full justify-between", hasSubItems && "font-semibold" )} > {item.title} {hasSubItems && ( {isOpen ? ( ) : ( )} )} {hasSubItems && ( {isOpen && item.items!.map((subItem) => ( {subItem.title} ))} )} ) } return (

Menu

{items.map(renderMenuItem)}
) }