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 { 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];