diff --git a/client/src/pages/AdminSequences.tsx b/client/src/pages/AdminSequences.tsx index 3e8473b..8d558e8 100644 --- a/client/src/pages/AdminSequences.tsx +++ b/client/src/pages/AdminSequences.tsx @@ -1,4 +1,4 @@ -import { useState, useMemo } from "react"; +import { useState, useMemo, useCallback } from "react"; import DashboardLayout from "@/components/DashboardLayout"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; @@ -282,16 +282,18 @@ export default function AdminSequences() { }); }; - const removeDate = (index: number) => { - if (formData.dates.length <= 1) { - toast.error("Au moins une date est requise"); - return; - } - const newDates = formData.dates.filter((_, i) => i !== index); - // Réordonner les dates - newDates.forEach((d, i) => d.ordre = i + 1); - setFormData({ ...formData, dates: newDates }); - }; + const removeDate = useCallback((index: number) => { + setFormData(prev => { + if (prev.dates.length <= 1) { + toast.error("Au moins une date est requise"); + return prev; + } + const newDates = prev.dates.filter((_, i) => i !== index); + // Réordonner les dates + newDates.forEach((d, i) => d.ordre = i + 1); + return { ...prev, dates: newDates }; + }); + }, []); const updateDate = (index: number, field: "dateDebut" | "dateFin", value: string) => { const newDates = [...formData.dates]; diff --git a/todo.md b/todo.md index 055858d..c99af69 100644 --- a/todo.md +++ b/todo.md @@ -1631,3 +1631,11 @@ - [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] 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