import { NavFooter } from '@/components/nav-footer'; import { NavUser } from '@/components/nav-user'; import { Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarMenu, SidebarMenuButton, SidebarMenuItem } from '@/components/ui/sidebar'; import { type NavItem } from '@/types'; import { Link, usePage } from '@inertiajs/react'; import { ArrowLeftRightIcon, BookOpen, Folder, GalleryVerticalEndIcon, HospitalIcon, LayoutGrid, LucideAmbulance, ScrollText, Stethoscope, Users } from 'lucide-react'; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'; import AppLogo from './app-logo'; import { useMemo, useState, useEffect } from 'react'; const mainNavItems: NavItem[] = [ { title: 'Dashboard', href: '/dashboard', icon: LayoutGrid, }, { title: 'Registrasi', href: '/registrations', icon: GalleryVerticalEndIcon, }, { title: 'Transaction', href: '/transactions', icon: ArrowLeftRightIcon, }, ]; const masterNavItems = [ { title: 'Data Pegawai', href: '/employees', icon: Users, }, { title: 'Data Pasien', href: '/patients', icon: LucideAmbulance, }, { title: 'Data Asuransi', href: '/insurances', icon: ScrollText, }, { title: 'Data Ruangan', href: '/room-services', icon: HospitalIcon, }, { title: 'Data Prosedur', href: '/procedures', icon: Stethoscope, }, ]; const footerNavItems: NavItem[] = [ { title: 'Repository', href: 'https://github.com/laravel/react-starter-kit', icon: Folder, }, { title: 'Documentation', href: 'https://laravel.com/docs/starter-kits', icon: BookOpen, }, ]; export function AppSidebar() { const { url } = usePage(); const [openMaster, setOpenMaster] = useState(false); const isMasterActive = useMemo(() => { return masterNavItems.some((item) => url.startsWith(item.href)); }, [url]); useEffect(() => { if (isMasterActive) { setOpenMaster(true); } }, [isMasterActive]); return ( {/* Tampilkan mainNavItems */} {mainNavItems.map((item) => ( {item.title} ))} {/* Data Master Group */} Data Master {masterNavItems.map((item) => ( {item.title} ))} ); }