Hier ein paar DRY-/Struktur-Ideen, ohne gleich umzubauen:
- Reset-Logik zentral halten: Du hast einen resetApp-Helper; stelle sicher, dass alle „Notausgang“/Logout-/Force-Reauth-Pfade diesen nutzen, statt lokale Varianten (localStorage.clear(), refresh() etc.) zu duplizieren.
- Header-Actions vereinheitlichen: In DataError/ServerError hast du den Notausgang-Button separat platziert. Wenn der Header Slots/Actions unterstützt, könnte der gleiche Button via Slot eingebunden werden, damit Styling/Positionierung nicht pro Seite dupliziert wird.
- Force-Neuanmeldung/Polling: Die Poll-Logik sitzt im userDataStore; falls noch irgendwo manuelle Checks sind, auf einen zentralen Poll/Handler setzen, damit das Verhalten konsistent bleibt.
- Warnungen/Toasts: Toast-Dauern/Trigger an einer Stelle konfigurieren (Konstanten), damit sie nicht mehrfach hardcodiert sind (z.B. Force-Reauth-Toast).
- Admin-API-Aufrufe: Header-Building ist aktuell breit gestreut; konsequent buildAuthHeaders() nutzen und ggf. einen kleinen Wrapper apiFetchAuth(path, options) einführen, um Header-Checks und Fehlermeldungen zu bündeln.
- Unbekannte Keys im Store: Für Legacy-Keys wie forceNeuanmelden hast du einen Alias eingebaut; falls weitere Alias-Fälle auftauchen, sammele sie in einer kleinen Map, um die Warn-Logs sauber zu halten.