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 && (