Checkpoint: Ajout du bouton "Tester le rappel" dans AdminSequences.tsx :

- Ajout de la mutation testerRappelMutation connectée à la procédure tRPC rappels.testerRappel
- Ajout de l'icône Send dans les imports
- Ajout du bouton dans la colonne Actions du tableau des séquences (entre Edit et Delete)
- Le bouton envoie un email de test à l'administrateur avec les données de la séquence sélectionnée
- Validation : le bouton est désactivé si la séquence n'a pas de dates configurées
- Feedback utilisateur : toast de succès ou d'erreur après l'envoi
- Mise à jour du fichier todo.md pour marquer la tâche comme terminée
This commit is contained in:
Manus
2026-01-15 11:48:33 -05:00
parent 6068b0772a
commit b9804ada14
8 changed files with 215 additions and 5 deletions

View File

@@ -9,7 +9,7 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table";
import { Badge } from "@/components/ui/badge";
import { trpc } from "@/lib/trpc";
import { Calendar, Edit, Eye, Plus, Trash2, X, Bell, Maximize2, Minimize2 } from "lucide-react";
import { Calendar, Edit, Eye, Plus, Trash2, X, Bell, Maximize2, Minimize2, Send } from "lucide-react";
import FormateurCombobox from "@/components/FormateurCombobox";
import CapacityProgressBar from "@/components/CapacityProgressBar";
import { toast } from "sonner";
@@ -87,6 +87,15 @@ export default function AdminSequences() {
},
});
const testerRappelMutation = trpc.rappels.testerRappel.useMutation({
onSuccess: () => {
toast.success("Email de test envoyé avec succès");
},
onError: (error) => {
toast.error(`Erreur lors de l'envoi du test : ${error.message}`);
},
});
const resetForm = () => {
setFormData({
formationId: "",
@@ -821,6 +830,21 @@ export default function AdminSequences() {
>
<Edit className="h-4 w-4" />
</Button>
<Button
variant="ghost"
size="sm"
onClick={() => {
if (sequence.dates && sequence.dates.length > 0) {
testerRappelMutation.mutate({ sequenceId: sequence.id });
} else {
toast.error("Cette séquence n'a pas de dates configurées");
}
}}
disabled={testerRappelMutation.isPending}
title="Tester l'envoi d'un rappel"
>
<Send className="h-4 w-4 text-green-600" />
</Button>
<Button
variant="ghost"
size="sm"