"use client"; import { ChevronRight, type LucideIcon } from "lucide-react"; import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@/components/ui/collapsible"; import { SidebarGroup, SidebarGroupLabel, SidebarMenu, SidebarMenuAction, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, } from "@/components/ui/sidebar"; import { Link } from "@inertiajs/react"; import hasAnyPermission from "@/utils/hasAnyPermission"; export function NavMain({ items, }: { items: { title: string; url: string; icon: LucideIcon; isActive?: boolean; permissions?: string[]; items?: { title: string; url: string; }[]; }[]; }) { return ( Navigation {items.map((item) => ( {item.permissions ? ( hasAnyPermission(item.permissions) ? (
{item.title}
) : null ) : (
{item.title}
)}
{item.items?.length ? ( <> Toggle {item.items?.map((subItem) => ( {subItem.title} ))} ) : null}
))}
); }