From 91a31f04b1ce98b0d15bb46566cb7e7f5ff6bd12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhard=20X=2E=20F=C3=BCrst?= Date: Wed, 1 Jul 2026 13:48:46 +0200 Subject: [PATCH] Fix: ID-Verlust beim mehrfachen Bearbeiten eines Termins Nach erfolgreichem Update wurde der lokale State faelschlich mit normalizeAppointment (erwartet _id) aus dem Formular-Objekt (hat id) aktualisiert -> id wurde undefined. Die zweite Aenderung desselben Eintrags schickte dadurch PUT /api/appointments/undefined. Jetzt bleibt die bestehende id erhalten. Co-Authored-By: Claude Opus 4.8 (1M context) --- frontend/src/App.jsx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index b8999ff..693d367 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -116,10 +116,23 @@ function App() { if (!response.ok) throw new Error('Fehler beim Aktualisieren des Termins.'); - // Nach erfolgreichem Update den State lokal aktualisieren + // Nach erfolgreichem Update den State lokal aktualisieren. + // Wichtig: updatedApp stammt aus dem Formular und hat bereits ein + // Feld "id" (kein "_id"), daher hier NICHT normalizeAppointment nutzen – + // sonst würde die ID verloren gehen. Wir behalten die bestehende id + // und übernehmen die aktualisierten Felder. setAppointments(prev => - prev.map(app => - app.id === mongoId ? normalizeAppointment(updatedApp) : app + prev.map(app => + app.id === mongoId + ? { + id: mongoId, + arztName: updatedApp.arztName, + arztArt: updatedApp.arztArt, + termin: updatedApp.termin, // bereits ein Date-Objekt + erledigt: updatedApp.erledigt, + bemerkungen: updatedApp.bemerkungen, + } + : app ) ); setEditingAppointment(null);