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:
@@ -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 => {
|
||||||
toast.error("Au moins une date est requise");
|
if (prev.dates.length <= 1) {
|
||||||
return;
|
toast.error("Au moins une date est requise");
|
||||||
}
|
return prev;
|
||||||
const newDates = formData.dates.filter((_, i) => i !== index);
|
}
|
||||||
// Réordonner les dates
|
const newDates = prev.dates.filter((_, i) => i !== index);
|
||||||
newDates.forEach((d, i) => d.ordre = i + 1);
|
// Réordonner les dates
|
||||||
setFormData({ ...formData, dates: newDates });
|
newDates.forEach((d, i) => d.ordre = i + 1);
|
||||||
};
|
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];
|
||||||
|
|||||||
8
todo.md
8
todo.md
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user