From 14bb46cd55424fef06fd20d0feec345c28a2c536 Mon Sep 17 00:00:00 2001 From: jplanckeel Date: Wed, 21 Jan 2026 09:22:18 +0100 Subject: [PATCH] fix: correct event update --- web/src/components/EventDetailsModal.tsx | 24 ++++++++++++++++-------- web/src/lib/apiConverters.ts | 20 ++++++++++++++++++++ 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/web/src/components/EventDetailsModal.tsx b/web/src/components/EventDetailsModal.tsx index 2e653c8..0a836e5 100644 --- a/web/src/components/EventDetailsModal.tsx +++ b/web/src/components/EventDetailsModal.tsx @@ -667,10 +667,14 @@ export default function EventDetailsModal({ event, onClose }: EventDetailsModalP type="datetime-local" className="input text-sm" value={editedEvent.attributes.startDate ? new Date(editedEvent.attributes.startDate).toISOString().slice(0, 16) : ''} - onChange={(e) => setEditedEvent({ - ...editedEvent, - attributes: { ...editedEvent.attributes, startDate: e.target.value } - })} + onChange={(e) => { + // Convertir la valeur datetime-local en ISO 8601 avec timezone + const isoDate = e.target.value ? new Date(e.target.value).toISOString() : '' + setEditedEvent({ + ...editedEvent, + attributes: { ...editedEvent.attributes, startDate: isoDate } + }) + }} /> ) : (

@@ -688,10 +692,14 @@ export default function EventDetailsModal({ event, onClose }: EventDetailsModalP type="datetime-local" className="input text-sm" value={editedEvent.attributes.endDate ? new Date(editedEvent.attributes.endDate).toISOString().slice(0, 16) : ''} - onChange={(e) => setEditedEvent({ - ...editedEvent, - attributes: { ...editedEvent.attributes, endDate: e.target.value } - })} + onChange={(e) => { + // Convertir la valeur datetime-local en ISO 8601 avec timezone + const isoDate = e.target.value ? new Date(e.target.value).toISOString() : '' + setEditedEvent({ + ...editedEvent, + attributes: { ...editedEvent.attributes, endDate: isoDate } + }) + }} /> ) : (

diff --git a/web/src/lib/apiConverters.ts b/web/src/lib/apiConverters.ts index 6711d1f..7b76837 100644 --- a/web/src/lib/apiConverters.ts +++ b/web/src/lib/apiConverters.ts @@ -54,6 +54,24 @@ export const NumberToEnvironment: Record = { * L'API attend des nombres pour les POST/PUT mais renvoie des nombres pour les GET */ export function convertEventForAPI(event: CreateEventRequest): any { + // Convertir les dates en format protobuf Timestamp si elles existent + const convertDate = (dateStr: string | undefined) => { + if (!dateStr) return undefined + + // Si c'est déjà au format ISO complet, le garder + if (dateStr.includes('T') && (dateStr.includes('Z') || dateStr.includes('+'))) { + return dateStr + } + + // Sinon, convertir en ISO complet + try { + return new Date(dateStr).toISOString() + } catch (e) { + console.error('Error converting date:', dateStr, e) + return undefined + } + } + return { ...event, attributes: { @@ -64,6 +82,8 @@ export function convertEventForAPI(event: CreateEventRequest): any { environment: event.attributes.environment ? EnvironmentToNumber[event.attributes.environment] : undefined, + startDate: convertDate(event.attributes.startDate), + endDate: convertDate(event.attributes.endDate), }, } }