'use client'; import Link from 'next/link'; import {usePathname} from 'next/navigation'; import {useEffect, useState} from 'react'; import {ChevronRight} from 'lucide-react'; import {Collapsible, CollapsibleContent, CollapsibleTrigger} from '@/components/ui/collapsible'; import { SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, } from '@/components/ui/sidebar'; import type {OpenFlareNavGroup} from '@/lib/navigation/openflare-nav'; import { matchesNavPath, openflareSidebarNav, isNavGroupActive, } from '@/lib/navigation/openflare-nav'; function SidebarNavGroupMenuItem({ group, pathname, onNavigate, }: { group: OpenFlareNavGroup; pathname: string; onNavigate?: () => void; }) { const groupActive = isNavGroupActive(pathname, group); const [open, setOpen] = useState(groupActive); useEffect(() => { if (groupActive) { setOpen(true); } }, [groupActive]); return ( {group.title} {group.items.map((item) => ( {item.title} ))} ); } export function OpenFlareSidebarMenu({ onNavigate, }: { onNavigate?: () => void; }) { const pathname = usePathname(); return ( {openflareSidebarNav.map((entry) => { if (entry.kind === 'group') { return ( ); } return ( {entry.title} ); })} ); }