import { Accordion } from '@/components/ui/accordion'; import { SidebarGroup, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem } from '@/components/ui/sidebar'; import { getRouteSegments } from '@/lib/route'; import { cn } from '@/lib/utils'; import { SharedData } from '@/types/global'; import { usePage } from '@inertiajs/react'; import { GitCompareArrows } from 'lucide-react'; import { useEffect, useState } from 'react'; import NavMainItem from './nav-main-item'; import getRoutes from './routes'; export function NavMain() { const page = usePage(); const { auth, system, translate } = page.props; const [openAccordions, setOpenAccordions] = useState(''); const routes = getRoutes(translate); // Set initial accordion state based on URL useEffect(() => { const slug = getRouteSegments(page.url); if (slug.length > 1) { setOpenAccordions(slug[1]); } }, [page.url]); return ( {routes.map(({ title, pages }, key) => ( {title} {pages.map((page) => { const role = page.access.includes(auth.user.role || 'admin'); const subType = page.access.includes(system.sub_type || 'collaborative'); if (role && subType) { return ( ); } })} {translate.button.maintenance} ))} ); }