"use client" import { ChevronRightIcon } from "lucide-react" import Link from "next/link" import { usePathname } from "next/navigation" import { useEffect, useState } from "react" import { dashboardNavSectionHasActiveItem, isDashboardNavItemActive, } from "@/lib/navigation-active" import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@/components/ui/collapsible" import { SidebarGroup, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, } from "@/components/ui/sidebar" export function NavMain({ icon, title, items, }: { icon?: React.ReactNode title: string items: ReadonlyArray<{ title: string url: string icon?: React.ReactNode }> }) { const pathname = usePathname() const hasActiveItem = dashboardNavSectionHasActiveItem(items, pathname) const [open, setOpen] = useState(true) useEffect(() => { if (hasActiveItem) { setOpen(true) } }, [hasActiveItem]) return ( } > }> {icon} {title} {items.map((item) => ( } isActive={isDashboardNavItemActive(pathname, item.url)} > {item.title} ))} ) }