import { Link, usePage } from '@inertiajs/react'; import { Building2, BookOpen, CreditCard, LayoutGrid, Network, Settings2, UserCog, Users, } from 'lucide-react'; import AppLogo from '@/components/app-logo'; import { NavMain } from '@/components/nav-main'; import { NavUser } from '@/components/nav-user'; import { Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarMenu, SidebarMenuButton, SidebarMenuItem, } from '@/components/ui/sidebar'; import { dashboard } from '@/routes'; import type { NavItem } from '@/types'; export function AppSidebar() { const { auth } = usePage().props; if (!auth.user) { return null; } const permissions = auth.permissions ?? []; const mainNavItems: NavItem[] = [ { title: 'Dashboard', href: dashboard(), icon: LayoutGrid }, ...(!auth.user.is_platform_admin && permissions.includes('device.view') ? [{ title: 'Perangkat', href: '/devices', icon: Network }] : []), ...(!auth.user.is_platform_admin && permissions.includes('device.user.view') ? [ { title: 'Users Perangkat', href: '/device-users', icon: UserCog, }, ] : []), { title: 'Dokumentasi', href: '/documentation/deployment', icon: BookOpen, }, ...(!auth.user.is_platform_admin && permissions.includes('license.view') ? [ { title: 'Lisensi & Tagihan', href: '/billing', icon: CreditCard, }, ] : []), ...(!auth.user.is_platform_admin && permissions.includes('device.credential.create') ? [ { title: 'Pengaturan Perangkat', href: '/device-settings', icon: Settings2, }, ] : []), ...(auth.user.is_platform_admin ? [ { title: 'Tenants', href: '/administration/tenants', icon: Building2, }, { title: 'Order Lisensi', href: '/administration/billing-orders', icon: CreditCard, }, ] : []), ...(!auth.user.is_platform_admin && auth.user.tenant_id && permissions.includes('user.view') ? [ { title: 'Users', href: `/administration/tenants/${auth.user.tenant_id}/users`, icon: Users, }, ] : []), ]; return ( ); }