// dashboard.jsx — hibank Design System tokens function DashboardPage({ onLogout, onNavigate, pendingApproval = 0, primary, secondary, sidebarColor, role = 'super', user, activeNav: propActiveNav, setActiveNav: propSetActiveNav, merchants, setMerchants }) { const [localActiveNav, setLocalActiveNav] = React.useState('dashboard'); const activeNav = propActiveNav !== undefined ? propActiveNav : localActiveNav; const setActiveNav = propSetActiveNav !== undefined ? propSetActiveNav : setLocalActiveNav; const [sidebarOpen, setSidebarOpen] = React.useState(true); const TEAL = primary || '#0056D2'; const ORANGE = secondary || '#cf5a27'; const U = user || { name: 'Arief Budiman', roleLabel: 'Super Admin', initials: 'AB', greeting: 'Arief' }; const isMerchant = role === 'merchant'; const stats = isMerchant ? [ { label: 'Total Pendapatan', value: 'Rp 45.280.000', sub: 'vs bulan lalu', change: '+8.4%', up: true, icon: 'bx-money' }, { label: 'Transaksi QRIS', value: '342 Transaksi', sub: 'April 2026', change: '+12.1%', up: true, icon: 'bx-qr-scan' }, { label: 'Rata-rata Transaksi', value: 'Rp 132.397', sub: 'keranjang belanja', change: '-1.5%', up: false, icon: 'bx-calculator' }, { label: 'Dana Dicairkan', value: 'Rp 42.850.000', sub: 'settled ke bank', change: '+5.6%', up: true, icon: 'bx-wallet' }, ] : [ { label: 'Total Nasabah', value: '1.284.392', sub: 'vs bulan lalu', change: '+4.2%', up: true, icon: 'bx-user' }, { label: 'Volume Transaksi', value: 'Rp 8,4T', sub: 'April 2026', change: '+12.7%', up: true, icon: 'bx-transfer' }, { label: 'Kartu Aktif', value: '842.711', sub: 'diterbitkan', change: '+1.9%', up: true, icon: 'bx-credit-card' }, { label: 'Klaim Pending', value: '2.847', sub: 'menunggu review', change: '-8.3%', up: false, icon: 'bx-error-circle' }, ]; const txns = isMerchant ? [ { id: 'TRX-8831', name: 'Kopi Senja (QRIS)', type: 'QRIS Dinamis', amount: '+Rp 45.000', time: '10:32', status: 'success' }, { id: 'TRX-8830', name: 'Budi Santoso', type: 'QRIS Statis', amount: '+Rp 150.000', time: '10:18', status: 'success' }, { id: 'TRX-8829', name: 'Siti Rahayu', type: 'QRIS Dinamis', amount: '+Rp 85.000', time: '09:55', status: 'success' }, { id: 'TRX-8828', name: 'Rangga Pratama', type: 'QRIS Statis', amount: '+Rp 25.000', time: '09:41', status: 'success' }, { id: 'TRX-8827', name: 'Dewi Lestari', type: 'QRIS Dinamis', amount: '+Rp 110.000', time: '09:20', status: 'success' }, { id: 'TRX-8826', name: 'Pencairan Settlement', type: 'Transfer Out', amount: '-Rp 12.500.000', time: '09:05', status: 'success' }, ] : [ { id: 'TRX-0041', name: 'Budi Santoso', type: 'Transfer', amount: '+Rp 12.500.000', time: '10:32', status: 'success' }, { id: 'TRX-0040', name: 'Siti Rahayu', type: 'Penarikan', amount: '-Rp 5.000.000', time: '10:18', status: 'success' }, { id: 'TRX-0039', name: 'PT Maju Jaya', type: 'Pembayaran', amount: '+Rp 287.000.000', time: '09:55', status: 'success' }, { id: 'TRX-0038', name: 'Andi Wijaya', type: 'Cicilan', amount: '-Rp 3.200.000', time: '09:41', status: 'pending' }, { id: 'TRX-0037', name: 'Dewi Lestari', type: 'Transfer', amount: '+Rp 750.000', time: '09:20', status: 'failed' }, { id: 'TRX-0036', name: 'CV Sejahtera', type: 'Pembayaran', amount: '+Rp 45.600.000', time: '09:05', status: 'success' }, ]; const barData = isMerchant ? [12, 18, 15, 24, 22, 32, 28, 35, 30, 42, 38, 45] : [52, 68, 55, 80, 72, 90, 68, 95, 74, 88, 78, 100]; const barLabels = ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agt', 'Sep', 'Okt', 'Nov', 'Des']; const breakdown = isMerchant ? [ { label: 'QRIS Dinamis', pct: 58, color: TEAL }, { label: 'QRIS Statis', pct: 32, color: '#0041A8' }, { label: 'QRIS CPM', pct: 10, color: ORANGE }, ] : [ { label: 'Transfer', pct: 42, color: TEAL }, { label: 'Pembayaran', pct: 28, color: '#0041A8' }, { label: 'Penarikan', pct: 18, color: ORANGE }, { label: 'Lainnya', pct: 12, color: '#efefef' }, ]; const activities = isMerchant ? [ { text: 'Pencairan dana berhasil ditransfer', sub: 'Ke Bank Mandiri a/n Rangga · 10 mnt lalu', dot: '#74b50c' }, { text: 'Transaksi QRIS baru diterima', sub: 'Nominal Rp 45.000 · 15 mnt lalu', dot: TEAL }, { text: 'Update konfigurasi MDR merchant', sub: 'MDR diset 0.50% oleh Checker · 1 jam lalu', dot: ORANGE }, { text: 'Audit kelayakan merchant', sub: 'Status: APPROVED · 2 jam lalu', dot: '#ed3151' }, ] : [ { text: 'Nasabah baru terverifikasi', sub: 'Reza Firmansyah · 2 mnt lalu', dot: '#74b50c' }, { text: 'Limit kartu diperbarui', sub: 'Rina Marlina · 8 mnt lalu', dot: TEAL }, { text: 'Pengajuan pinjaman diterima', sub: 'PT Karya Nusa · 15 mnt lalu', dot: ORANGE }, { text: 'Transaksi mencurigakan', sub: 'ID: TRX-0041 · 24 mnt lalu', dot: '#ed3151' }, ]; const systemStatus = isMerchant ? [ { label: 'QRIS Engine', ok: true }, { label: 'Merchant App API', ok: true }, { label: 'Settlement Engine', ok: true }, ] : [ { label: 'Core Banking', ok: true }, { label: 'API Gateway', ok: true }, { label: 'Fraud Detection', ok: false }, ]; return (
{isMerchant ? 'Berikut ringkasan performa penjualan dan operasional merchant Anda hari ini.' : 'Berikut ringkasan operasional per hari ini.'}
Halaman {navTitle} saat ini sedang dalam tahap pengembangan oleh tim IT hibank. Silakan kembali nanti.