'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 { matchesNavPath, openflareNavItems, openflareWebsiteNavGroup, isNavGroupActive, } from '@/lib/navigation/openflare-nav'; export function OpenFlareSidebarMenu({ onNavigate, }: { onNavigate?: () => void; }) { const pathname = usePathname(); const websiteGroupActive = isNavGroupActive(pathname, openflareWebsiteNavGroup); const [websiteGroupOpen, setWebsiteGroupOpen] = useState(websiteGroupActive); useEffect(() => { if (websiteGroupActive) { setWebsiteGroupOpen(true); } }, [websiteGroupActive]); const renderFlatItemsBeforeGroup = openflareNavItems.slice(0, 4); const renderFlatItemsAfterGroup = openflareNavItems.slice(4); return ( {renderFlatItemsBeforeGroup.map((item) => ( {item.title} ))} {openflareWebsiteNavGroup.title} {openflareWebsiteNavGroup.items.map((item) => ( {item.title} ))} {renderFlatItemsAfterGroup.map((item) => ( {item.title} ))} ); }