Checkpoint: Amélioration de la gestion d'erreurs pour la modification des séquences : ajout de validation dans parseLocalDateTime, protection contre les valeurs nulles dans handleEdit avec fonction safeFormatDate, remplacement de invalidate() par refetch() pour forcer le rafraîchissement immédiat, et ajout de logs détaillés côté serveur pour faciliter le débogage.
This commit is contained in:
@@ -58,11 +58,12 @@ export default function AdminSequences() {
|
||||
});
|
||||
|
||||
const updateMutation = trpc.sequences.update.useMutation({
|
||||
onSuccess: () => {
|
||||
onSuccess: async () => {
|
||||
toast.success("Séquence modifiée avec succès");
|
||||
setIsEditOpen(false);
|
||||
setEditingSequence(null);
|
||||
utils.sequences.list.invalidate();
|
||||
// Forcer un refetch immédiat au lieu d'une simple invalidation
|
||||
await utils.sequences.list.refetch();
|
||||
},
|
||||
onError: (error) => {
|
||||
toast.error(`Erreur : ${error.message}`);
|
||||
@@ -93,17 +94,31 @@ export default function AdminSequences() {
|
||||
|
||||
const handleEdit = (sequence: any) => {
|
||||
setEditingSequence(sequence);
|
||||
|
||||
// Fonction helper pour formater une date en toute sécurité
|
||||
const safeFormatDate = (dateValue: any): string => {
|
||||
if (!dateValue) return "";
|
||||
try {
|
||||
const date = new Date(dateValue);
|
||||
if (isNaN(date.getTime())) return "";
|
||||
return format(date, "yyyy-MM-dd'T'HH:mm");
|
||||
} catch (error) {
|
||||
console.error('Erreur de formatage de date:', error, dateValue);
|
||||
return "";
|
||||
}
|
||||
};
|
||||
|
||||
setFormData({
|
||||
formationId: sequence.formationId.toString(),
|
||||
nom: sequence.nom,
|
||||
lieu: sequence.lieu,
|
||||
capaciteMax: sequence.capaciteMax.toString(),
|
||||
dateBlocage: format(new Date(sequence.dateBlocage), "yyyy-MM-dd'T'HH:mm"),
|
||||
statut: sequence.statut,
|
||||
dates: sequence.dates.map((d: any) => ({
|
||||
dateDebut: format(new Date(d.dateDebut), "yyyy-MM-dd'T'HH:mm"),
|
||||
dateFin: format(new Date(d.dateFin), "yyyy-MM-dd'T'HH:mm"),
|
||||
ordre: d.ordre,
|
||||
nom: sequence.nom || "",
|
||||
lieu: sequence.lieu || "",
|
||||
capaciteMax: sequence.capaciteMax?.toString() || "12",
|
||||
dateBlocage: safeFormatDate(sequence.dateBlocage),
|
||||
statut: sequence.statut || "ouverte",
|
||||
dates: (sequence.dates || []).map((d: any) => ({
|
||||
dateDebut: safeFormatDate(d.dateDebut),
|
||||
dateFin: safeFormatDate(d.dateFin),
|
||||
ordre: d.ordre || 1,
|
||||
})),
|
||||
});
|
||||
setIsEditOpen(true);
|
||||
|
||||
Reference in New Issue
Block a user