import { Head, Link, usePage } from '@inertiajs/react'; import { Building2, CheckCircle2, KeyRound, Network, Server, ShieldCheck, UserCheck, Users, } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { dashboard } from '@/routes'; type Props = { role: 'MASTER ADMIN' | 'TENANT ADMIN' | 'TENANT USER'; tenant: { id: number; name: string; slug: string; is_active: boolean; } | null; stats: Record; }; const roleLabels = { 'MASTER ADMIN': 'Master Admin Platform', 'TENANT ADMIN': 'Tenant Admin', 'TENANT USER': 'Tenant User', }; export default function Dashboard({ role, tenant, stats }: Props) { const { auth } = usePage().props; const isMaster = role === 'MASTER ADMIN'; const isTenantAdmin = role === 'TENANT ADMIN'; const cards = isMaster ? [ { label: 'Total Tenant', value: stats.tenants, icon: Building2 }, { label: 'Tenant Aktif', value: stats.activeTenants, icon: ShieldCheck, }, { label: 'User Tenant', value: stats.users, icon: Users }, { label: 'Lisensi Aktif', value: stats.activeLicenses, icon: KeyRound, }, { label: 'Instalasi Terdaftar', value: stats.installations, icon: Server, }, ] : [ { label: 'Total User', value: stats.users, icon: Users }, { label: 'User Aktif', value: stats.activeUsers, icon: UserCheck, }, { label: 'Total Perangkat', value: stats.devices, icon: Network }, { label: 'Status Tenant', value: tenant?.is_active ? 'Aktif' : 'Nonaktif', icon: CheckCircle2, }, ]; return ( <>

RADIQ NDM · {roleLabels[role]}

Selamat datang, {auth.user.name}

{isMaster ? 'Pantau tenant, instalasi, dan lisensi platform.' : `${tenant?.name ?? 'Tenant'} · ruang kerja pengelolaan perangkat jaringan.`}

{isMaster && ( )} {isTenantAdmin && tenant && ( )}
{cards.map((card) => ( {card.label}
{String(card.value)}
))}
{isMaster ? 'Kontrol Platform' : isTenantAdmin ? 'Pengelolaan Tenant' : 'Akses Perangkat'} {isMaster && 'Master Admin memiliki kendali tenant dan fondasi lisensi. Aktivasi serta perpanjangan lisensi akan tersedia pada tahap lisensi berikutnya.'} {isTenantAdmin && 'Anda adalah akun utama tenant. Anda dapat mengelola Tenant User dan nantinya menetapkan aturan penggunaan perangkat untuk mereka.'} {role === 'TENANT USER' && (stats.canAddDevice ? 'Anda diizinkan menambahkan dan mengelola perangkat sesuai kebijakan Tenant Admin. Modul perangkat akan tersedia pada tahap berikutnya.' : 'Akses perangkat Anda mengikuti kebijakan yang ditetapkan oleh Tenant Admin.')}
); } Dashboard.layout = { breadcrumbs: [{ title: 'Dashboard', href: dashboard() }] };