import { useState } from "react";
import { useLocation, useParams } from "wouter";
import DashboardLayout from "@/components/DashboardLayout";
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table";
import { Badge } from "@/components/ui/badge";
import { trpc } from "@/lib/trpc";
import { ArrowLeft, Calendar, MapPin, User } from "lucide-react";
import { format } from "date-fns";
import { fr } from "date-fns/locale";
export default function AdminApprenantDetail() {
const params = useParams();
const apprenantId = params.id ? parseInt(params.id) : 0;
const [, setLocation] = useLocation();
const { data: apprenant, isLoading: loadingApprenant } = trpc.apprenants.getById.useQuery({ id: apprenantId });
const { data: inscriptions, isLoading: loadingInscriptions } = trpc.apprenants.getInscriptions.useQuery({ id: apprenantId });
if (loadingApprenant || loadingInscriptions) {
return (
Chargement...
);
}
if (!apprenant) {
return (
Apprenant introuvable
);
}
const getStatutBadge = (statut: string) => {
switch (statut) {
case 'confirmee':
return Confirmée;
case 'en_attente':
return En attente;
case 'annulee':
return Annulée;
default:
return {statut};
}
};
const getFonctionLabel = (fonction: string) => {
switch (fonction) {
case 'directeur':
return 'Directeur';
case 'chef_service':
return 'Chef de service';
default:
return 'Autre';
}
};
const getPublicCibleLabel = (publicCible: string) => {
switch (publicCible) {
case 'directeur':
return 'Directeurs';
case 'chef_service':
return 'Chefs de service';
case 'tous':
return 'Tous';
default:
return 'Autre';
}
};
return (
{/* Header */}
Détail de l'apprenant
Consultez toutes les inscriptions de cet apprenant
{/* Informations de l'apprenant */}
Informations personnelles
Nom complet
{apprenant.nom} {apprenant.prenom}
Email
{apprenant.email}
Code établissement
{apprenant.codeEtablissement}
Fonction
{getFonctionLabel(apprenant.fonction)}
{/* Liste des inscriptions */}
Inscriptions aux formations
{inscriptions?.length || 0} inscription(s) au total
{!inscriptions || inscriptions.length === 0 ? (