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) <noreply@anthropic.com>
This commit is contained in:
2026-07-01 13:48:46 +02:00
parent 5224778c07
commit 91a31f04b1
+16 -3
View File
@@ -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);