"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) => (
))}
);
}