import SwiftUI import SwiftData import WidgetKit struct RootView: View { @Environment(AuthSession.self) private var auth @Environment(\.modelContext) private var ctx var body: some View { Group { if auth.isLoggedIn { MainTabView() } else { LoginView() } } // Bei User-Wechsel (Logout oder 401) alle nutzerbezogenen lokalen Daten // leeren — Offline-Cache UND Widget-Snapshot —, damit nie Touren, // Tagebuch, Fotos oder der Hund eines vorigen Users durchschimmern. .onReceive(NotificationCenter.default.publisher(for: .userDidLogout)) { _ in clearOnUserChange() } .onReceive(NotificationCenter.default.publisher(for: .apiUnauthorized)) { _ in clearOnUserChange() } } private func clearOnUserChange() { OfflineCache.clearAll(in: ctx) HomeWidgetStore.clear() WidgetCenter.shared.reloadAllTimelines() } }