Appearance
Ungespeicherte Änderungen
app/composables/protocol/useUnsavedChanges.ts stellt eine kleine storeübergreifende Dirty-State-Zusammenfassung bereit, die in Navigation und Status-UI verwendet wird.
Aktueller Umfang
Das Composable prüft aktuell diese Quellen:
- die aktuelle Acceptance-ID gegen
acceptanceStore.unsyncedacceptances acceptanceStore.hasUnsyncedChangesals bestehendes Acceptance-/Sync-Signal- pending Bild-Uploads, Bildmetadaten und Bildlöschungen der aktuellen Acceptance über
usePendingImageChanges(...) - alle Stores aus
app/stores/registry.ts, die eine reaktive$isDirty-Property bereitstellen
Der Bildzustand wird aus der Dexie-Tabelle images abgeleitet und über Dexie.liveQuery() reaktiv gehalten. Dadurch zählen reine Bildänderungen auch dann als ungespeichert, wenn keine Upload-Komponente mehr gemountet ist.
Neue registrierte Section-Stores müssen dadurch nicht mehr manuell in useUnsavedChanges.ts eingetragen werden. Voraussetzung ist, dass der Store in STORE_REGISTRY hängt und seine Dirty-State-Quelle über $isDirty verfügbar ist.
Rückgabewerte
hasUnsavedChanges
Boolean-Computed, das auf true springt, sobald einer der überwachten Stores dirty ist.
dirtyStores
String-Array-Computed für Anzeige oder Diagnose.
Mögliche Werte:
acceptanceimages- Registry-Keys aus
STORE_REGISTRY, z. B.meter,key,roomDetail,tenant_confirmation
Die Werte sind bewusst technische Store-/Registry-Keys. UI-Komponenten, die nutzerlesbare Labels brauchen, sollten diese Keys selbst übersetzen oder mappen.
Verwendende Stellen
Im Anwendungscode verifizierte Nutzung:
app/pages/customer-view.vueapp/components/Protocol/ProtocolCloneModal.vueapp/components/Navigation/TopBars/TopBarMain.vueapp/components/Sync/SyncStatus.vue