import SwiftUI @main struct KecalekApp: App { @State private var appState = AppState() @State private var authViewModel = AuthViewModel() @Environment(\.scenePhase) private var scenePhase var body: some Scene { WindowGroup { if appState.isLoggedIn { MainTabView(appState: appState) } else { LoginView(viewModel: authViewModel, appState: appState) } } .onChange(of: scenePhase) { _, newPhase in switch newPhase { case .background: appState.handleEnteredBackground() case .active: appState.handleBecameActive() default: break } } } } struct MainTabView: View { var appState: AppState @State private var convListVM = ConversationListVM() var body: some View { TabView { ConversationListView(appState: appState, viewModel: convListVM) .tabItem { Label("Chats", systemImage: "bubble.left.and.bubble.right.fill") } ProfileView(appState: appState, isOwnProfile: true) .tabItem { Label("Profile", systemImage: "person.fill") } } } }