"use client"; import { useEffect, useState } from "react"; import { Plus, Search, ClipboardList } from "lucide-react"; import { Header } from "@/components/layout/header"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Card, CardContent } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { auditsApi, type Audit } from "@/lib/api"; import { getToken } from "@/lib/auth"; import Link from "next/link"; const statutLabels: Record = { planifie: "Planifié", en_cours: "En cours", termine: "Terminé", annule: "Annulé", }; const statutVariant: Record = { planifie: "secondary", en_cours: "default", termine: "outline", annule: "destructive", }; export default function AuditsPage() { const [audits, setAudits] = useState([]); const [search, setSearch] = useState(""); const [loading, setLoading] = useState(true); useEffect(() => { const token = getToken(); if (!token) return; auditsApi.list(token).then(setAudits).finally(() => setLoading(false)); }, []); const filtered = audits.filter((a) => a.nom.toLowerCase().includes(search.toLowerCase()) ); return (
setSearch(e.target.value)} />
{loading ? (

Chargement...

) : filtered.length === 0 ? (

Aucun audit trouvé

) : (
{filtered.map((audit) => (

{audit.nom}

{audit.dateDebut ? new Date(audit.dateDebut).toLocaleDateString("fr-FR") : "Date non définie"}

{audit.scoreGlobal !== null && ( Score : {audit.scoreGlobal.toFixed(1)} )} {statutLabels[audit.statut]}
))}
)}
); }