/** * Admin Dashboard Page * Displays admin statistics and management options * Protected by AuthGuard in layout with requireAdmin=true */ 'use client'; import { Link } from '@/lib/i18n/routing'; import { DashboardStats } from '@/components/admin'; import { UserGrowthChart, OrganizationDistributionChart, RegistrationActivityChart, UserStatusChart, } from '@/components/charts'; import { Users, Building2, Settings } from 'lucide-react'; import { useQuery } from '@tanstack/react-query'; import { getAdminStats } from '@/lib/api/admin'; export default function AdminPage() { console.log('[AdminPage] Component rendering'); const { data: stats, isLoading, error, status, fetchStatus, } = useQuery({ queryKey: ['admin', 'analytics'], // Changed from 'stats' to avoid collision with useAdminStats hook queryFn: async () => { console.log('[AdminPage] QueryFn executing - fetching stats...'); try { const response = await getAdminStats(); console.log('[AdminPage] Stats response received:', response); return response.data; } catch (err) { console.error('[AdminPage] Error fetching stats:', err); throw err; } }, enabled: true, // Explicitly enable the query retry: 1, staleTime: 60000, // Cache for 1 minute }); console.log('[AdminPage] Current state:', { isLoading, hasError: Boolean(error), error: error?.message, hasData: Boolean(stats), dataKeys: stats ? Object.keys(stats) : null, status, fetchStatus, }); return (
{/* Page Header */}

Admin Dashboard

Manage users, organizations, and system settings

{/* Stats Grid */} {/* Quick Actions */}

Quick Actions

View, create, and manage user accounts

Manage organizations and their members

Configure system-wide settings

{/* Analytics Charts */}

Analytics Overview

); }