"use client"; import { Logo } from "@/components/logo"; import { cn } from "@/lib/utils"; import Link from "next/link"; import { usePathname } from "next/navigation"; import { useEffect, useState } from "react"; import { NAV_DATA, NavSubItem } from "./data"; import { ArrowLeftIcon, ChevronUp } from "./icons"; import { MenuItem } from "./menu-item"; import { useSidebarContext } from "./sidebar-context"; export function Sidebar() { const pathname = usePathname(); const { setIsOpen, isOpen, isMobile, toggleSidebar } = useSidebarContext(); const [expandedItems, setExpandedItems] = useState([]); const toggleExpanded = (title: string) => { setExpandedItems((prev) => prev.includes(title) ? prev.filter((t) => t !== title) : [...prev, title], ); }; useEffect(() => { const newExpandedItems: string[] = []; NAV_DATA.forEach((section) => { section.items.forEach((item) => { if (item.items.length > 0) { const hasActiveSubItem = item.items.some( (subItem: NavSubItem) => subItem.url === pathname || (pathname.startsWith(subItem.url) && subItem.url !== "/"), ); if (hasActiveSubItem) { newExpandedItems.push(item.title); } } }); }); setExpandedItems(newExpandedItems); }, [pathname]); return ( <> {isMobile && isOpen && (
setIsOpen(false)} aria-hidden="true" /> )} ); }