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:
+15
-2
@@ -116,10 +116,23 @@ function App() {
|
|||||||
|
|
||||||
if (!response.ok) throw new Error('Fehler beim Aktualisieren des Termins.');
|
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 =>
|
setAppointments(prev =>
|
||||||
prev.map(app =>
|
prev.map(app =>
|
||||||
app.id === mongoId ? normalizeAppointment(updatedApp) : 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);
|
setEditingAppointment(null);
|
||||||
|
|||||||
Reference in New Issue
Block a user