From 2439928eff44484dd9e7bad80d314a1a79b1490b Mon Sep 17 00:00:00 2001 From: DeathKaioken Date: Mon, 17 Nov 2025 22:36:08 +0100 Subject: [PATCH] beautify: admin navigation --- src/app/admin/page.tsx | 178 ++++++++++--------------- src/app/admin/user-management/page.tsx | 51 ++++++- 2 files changed, 124 insertions(+), 105 deletions(-) diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx index 257fd04..d3a4663 100644 --- a/src/app/admin/page.tsx +++ b/src/app/admin/page.tsx @@ -3,11 +3,13 @@ import PageLayout from '../components/PageLayout' import { UsersIcon, - ShieldCheckIcon, ExclamationTriangleIcon, CpuChipIcon, ServerStackIcon, - ArrowRightIcon + ArrowRightIcon, + Squares2X2Icon, + BanknotesIcon, + ClipboardDocumentListIcon } from '@heroicons/react/24/outline' import { useMemo, useState, useEffect } from 'react' import { useRouter } from 'next/navigation' @@ -100,118 +102,86 @@ export default function AdminDashboardPage() { - {/* Top grid: User Management + Permission Management */} -
- {/* User Management Card */} + {/* Management Shortcuts Card - full width */} +
- +
-

User Management

+

Management Shortcuts

- Manage users, view stats, and handle verification. + Quick access to common admin modules.

-
-
-
Total Users
-
- {userStats ? displayStats.totalUsers : ( - - )} -
-
-
-
Admin Users
-
- {userStats ? displayStats.adminUsers : ( - - )} -
-
-
-
Verification Pending
-
- {userStats ? displayStats.verificationPending : ( - - )} -
-
-
-
Active Users
-
- {userStats ? displayStats.activeUsers : ( - - )} -
-
-
-
Personal Users
-
- {userStats ? displayStats.personalUsers : ( - - )} -
-
-
-
Company Users
-
- {userStats ? displayStats.companyUsers : ( - - )} -
-
-
- -
- - {/* Permission Management Card */} -
-
-
- -
-
-

- Permission Management -

-

- Set roles and permissions for users. -

-
+
+ + + +
-
-
-
Permissions
-
{permissionStats.permissions}
-
-
-
Role Templates
-
-
-
-
Revoked
-
0
-
-
-
diff --git a/src/app/admin/user-management/page.tsx b/src/app/admin/user-management/page.tsx index 4bb7798..421509b 100644 --- a/src/app/admin/user-management/page.tsx +++ b/src/app/admin/user-management/page.tsx @@ -124,6 +124,16 @@ export default function AdminUserManagementPage() { const totalPages = Math.max(1, Math.ceil(filtered.length / PAGE_SIZE)) const current = filtered.slice((page - 1) * PAGE_SIZE, page * PAGE_SIZE) + // Move stats calculation above all conditional returns to avoid hook order errors + const stats = useMemo(() => ({ + total: allUsers.length, + admins: allUsers.filter(u => u.role === 'admin').length, + personal: allUsers.filter(u => u.user_type === 'personal').length, + company: allUsers.filter(u => u.user_type === 'company').length, + active: allUsers.filter(u => u.is_admin_verified === 1).length, + pending: allUsers.filter(u => u.is_admin_verified !== 1).length, + }), [allUsers]) + // Show loading during SSR/initial client render if (!isClient) { return ( @@ -243,7 +253,7 @@ export default function AdminUserManagementPage() {
- {/* Title (unified with referral management) */} + {/* Title */}

User Management

@@ -251,6 +261,45 @@ export default function AdminUserManagementPage() {

+ {/* Statistic Section + Verify Button */} +
+
+
+
Total Users
+
{stats.total}
+
+
+
Admins
+
{stats.admins}
+
+
+
Personal
+
{stats.personal}
+
+
+
Company
+
{stats.company}
+
+
+
Active
+
{stats.active}
+
+
+
Pending
+
{stats.pending}
+
+
+
+ +
+
+ {/* Error Message */} {error && (