"use client"; import { AlertCircle, FileText, LayoutGrid, Users } from "lucide-react"; import Link from "next/link"; import { useEffect, useState } from "react"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Skeleton } from "@/components/ui/skeleton"; import { type AdminStats, adminService } from "@/services/admin.service"; export default function AdminDashboardPage() { const [stats, setStats] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { adminService .getStats() .then(setStats) .catch((err) => { console.error(err); setError("Impossible de charger les statistiques."); }) .finally(() => setLoading(false)); }, []); if (error) { return (

{error}

); } const statCards = [ { title: "Utilisateurs", value: stats?.users, icon: Users, href: "/admin/users", color: "text-blue-500", }, { title: "Contenus", value: stats?.contents, icon: FileText, href: "/admin/contents", color: "text-green-500", }, { title: "Catégories", value: stats?.categories, icon: LayoutGrid, href: "/admin/categories", color: "text-purple-500", }, ]; return (

Dashboard Admin

{statCards.map((card) => ( {card.title} {loading ? ( ) : (
{card.value}
)}
))}
); }