fix: BEOs und Objekte bleiben beim Wechsel der Art erhalten — Version 1.16.1
Zwei getrennte Ursachen dafür, dass ausgefüllte Felder beim nachträglichen Wählen der Art der Führung verschwanden: - Objekte wurden bei jedem Wechsel der Art unbedingt geleert. Jetzt nur noch, wenn die Objektkategorie tatsächlich umschlägt (SonF ↔ Rest). - currentUserBeo wurde in MainClient bei jedem Rendern neu erzeugt und steht in den Abhängigkeiten des Vorbelegungs-Effekts in LogbuchForm. Dadurch setzte jedes Neurendern der Elternkomponente das ganze Formular zurück — BEOs auf den eigenen Namen, dazu Objekte, Zeiten und Bemerkungen. Ein konkreter Auslöser ist die Backup-Schaltfläche auf demselben Bildschirm. Das Objekt ist jetzt useMemo-stabil. Nebeneffekt: beim Bearbeiten lief das bisherige setObjekte([]) gegen das asynchrone Nachladen der gespeicherten Objekte — dieser Wettlauf entfällt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+7
-2
@@ -1,6 +1,6 @@
|
||||
'use client';
|
||||
|
||||
import { useState } from 'react';
|
||||
import { useMemo, useState } from 'react';
|
||||
import { KUPPELN } from '@/types/logbuch';
|
||||
import type { Kuppel, LogbuchEintrag, SofueStatus } from '@/types/logbuch';
|
||||
import LogbuchForm from '@/components/LogbuchForm';
|
||||
@@ -50,7 +50,12 @@ export default function MainClient({ kuerzel, beoId, beoName, role }: Props) {
|
||||
process.env.NEXT_PUBLIC_BUILD_DATE ||
|
||||
new Date().toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' });
|
||||
|
||||
const currentUserBeo = { ID: beoId, Kuerzel: kuerzel, Name: beoName };
|
||||
// Muss stabil bleiben: LogbuchForm setzt bei jeder Änderung dieses Objekts das
|
||||
// Formular zurück. Frisch erzeugt würde jedes Rendern hier die Eingaben löschen.
|
||||
const currentUserBeo = useMemo(
|
||||
() => ({ ID: beoId, Kuerzel: kuerzel, Name: beoName }),
|
||||
[beoId, kuerzel, beoName]
|
||||
);
|
||||
|
||||
function handleSaved(sofue?: SofueStatus | null) {
|
||||
setRefreshKey((k) => k + 1);
|
||||
|
||||
Reference in New Issue
Block a user