"use client"; import { ChevronRight } from "lucide-react"; import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@/components/ui/collapsible"; import { SidebarGroup, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, } from "@/components/ui/sidebar"; import * as TablerIcons from "@tabler/icons-react"; interface SubSubItem { title: string; url: string; } interface SubItem { title: string; url: string; icon?: TablerIcons.Icon; subSubItems?: SubSubItem[]; } interface NavItem { title: string; url: string; icon?: TablerIcons.Icon; isActive?: boolean; subItems?: SubItem[]; } function SubSubItemComponent({ item }: { item: SubSubItem }) { return ( {item.title} ); } function SubItemComponent({ item }: { item: SubItem }) { const hasSubSubItems = item.subSubItems && item.subSubItems.length > 0; if (!hasSubSubItems) { return ( {item.icon && } {item.title} ); } return ( {item.icon && } {item.title} {item.subSubItems!.map((subSubItem) => ( ))} ); } function RecursiveNavItem({ item, index }: { item: NavItem; index: number }) { const hasSubItems = item.subItems && item.subItems.length > 0; if (!hasSubItems) { return ( {item.icon && } {item.title} ); } return ( {item.icon && } {item.title} {hasSubItems && ( )} {item.subItems!.map((subItem) => ( ))} ); } export function NavMain({ items }: { items: NavItem[] }) { return ( Platform {items.map((item, index) => ( ))} ); }