Checkpoint: V1.18 - Correction définitive et robuste de l'erreur "(void 0) is not a function" lors de la suppression de dates. Utilisation de useCallback pour stabiliser la référence de la fonction removeDate et éviter les problèmes de closure React. Préservation des signatures lors de l'ajout de dates grâce au champ id dans le schéma Zod.

This commit is contained in:
Manus
2026-02-11 09:16:33 -05:00
parent 33abf134e4
commit 844118251b
2 changed files with 21 additions and 11 deletions

View File

@@ -1,4 +1,4 @@
import { useState, useMemo } from "react"; import { useState, useMemo, useCallback } from "react";
import DashboardLayout from "@/components/DashboardLayout"; import DashboardLayout from "@/components/DashboardLayout";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
@@ -282,16 +282,18 @@ export default function AdminSequences() {
}); });
}; };
const removeDate = (index: number) => { const removeDate = useCallback((index: number) => {
if (formData.dates.length <= 1) { setFormData(prev => {
if (prev.dates.length <= 1) {
toast.error("Au moins une date est requise"); toast.error("Au moins une date est requise");
return; return prev;
} }
const newDates = formData.dates.filter((_, i) => i !== index); const newDates = prev.dates.filter((_, i) => i !== index);
// Réordonner les dates // Réordonner les dates
newDates.forEach((d, i) => d.ordre = i + 1); newDates.forEach((d, i) => d.ordre = i + 1);
setFormData({ ...formData, dates: newDates }); return { ...prev, dates: newDates };
}; });
}, []);
const updateDate = (index: number, field: "dateDebut" | "dateFin", value: string) => { const updateDate = (index: number, field: "dateDebut" | "dateFin", value: string) => {
const newDates = [...formData.dates]; const newDates = [...formData.dates];

View File

@@ -1631,3 +1631,11 @@
- [x] Déployer sur le serveur TEST (108.143.67.56) - [x] Déployer sur le serveur TEST (108.143.67.56)
- [x] Tester en ajoutant une nouvelle date et vérifier que les signatures sont préservées - [x] Tester en ajoutant une nouvelle date et vérifier que les signatures sont préservées
- [x] Déployer sur PROD (98.71.216.234) - Version V1.17 - [x] Déployer sur PROD (98.71.216.234) - Version V1.17
## BUG - Erreur "(void 0) is not a function" et doublons de dates
- [x] Analyser l'erreur (problème de closure React)
- [x] Nettoyer les doublons dans la table datesFormation (séquence 20)
- [x] Implémenter correction robuste avec useCallback pour stabiliser la référence
- [x] Déployer sur TEST et PROD
- [ ] Tester la suppression de date sur PROD