diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx new file mode 100644 index 0000000..73163c0 --- /dev/null +++ b/src/app/admin/page.tsx @@ -0,0 +1,253 @@ +'use client' + +import PageLayout from '../components/PageLayout' +import { + UsersIcon, + ShieldCheckIcon, + ExclamationTriangleIcon, + CpuChipIcon, + ServerStackIcon, + ArrowRightIcon +} from '@heroicons/react/24/outline' +import { useMemo } from 'react' + +export default function AdminDashboardPage() { + // Mocked aggregates (replace with real fetch) + const userStats = useMemo(() => ({ + total: 101, + admins: 1, + pending: 3, + active: 54, + personal: 94, + company: 7 + }), []) + + const permissionStats = useMemo(() => ({ + permissions: 1 // TODO: fetch permission definitions + }), []) + + const serverStats = useMemo(() => ({ + status: 'Online', + uptime: '4 days, 8 hours', + cpu: '0%', + memory: '0.1 / 7.8', + recentErrors: [] as { id: string; ts: string; msg: string }[] + }), []) + + return ( + +
+ {/* Background */} +
+
+ + + + {/* Outer container card */} +
+ {/* Heading */} +
+

+ Admin Dashboard +

+

+ Manage all administrative features, user management, permissions, and global settings. +

+
+ + {/* Warning banner */} +
+ +
+

+ Warning: Settings and actions below this point can have consequences for the entire system! +

+

+ Manage all administrative features, user management, permissions, and global settings. +

+
+
+ + {/* Top grid: User Management + Permission Management */} +
+ {/* User Management Card */} +
+
+
+ +
+
+

User Management

+

+ Manage users, view stats, and handle verification. +

+
+
+
+
+
Total Users
+
{userStats.total}
+
+
+
Admin Users
+
{userStats.admins}
+
+
+
Verification Pending
+
{userStats.pending}
+
+
+
Active Users
+
{userStats.active}
+
+
+
Personal Users
+
{userStats.personal}
+
+
+
Company Users
+
{userStats.company}
+
+
+ +
+ + {/* Permission Management Card */} +
+
+
+ +
+
+

+ Permission Management +

+

+ Set roles and permissions for users. +

+
+
+
+
+
Permissions
+
{permissionStats.permissions}
+
+
+
Role Templates
+
+
+
+
Revoked
+
0
+
+
+ +
+
+ + {/* Server Status & Logs */} +
+
+
+ +
+
+

+ Server Status & Logs +

+

+ System health, resource usage & recent error insights. +

+
+
+ +
+ {/* Metrics */} +
+
+ +

+ Server Status:{' '} + + {serverStats.status === 'Online' ? 'Server Online' : 'Offline'} + +

+
+
+

Uptime: {serverStats.uptime}

+

CPU Usage: {serverStats.cpu}

+

Memory Usage: {serverStats.memory} GB

+
+
+ + Autoscaled environment (mock) +
+
+ + {/* Divider */} +
+ + {/* Logs */} +
+

+ Recent Error Logs +

+ {serverStats.recentErrors.length === 0 && ( +

+ No recent logs. +

+ )} + {/* Placeholder for future logs list */} + {/* TODO: Replace with mapped log entries */} +
+ +
+
+
+
+ +
+
+ + ) +}