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:
+16
-3
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user