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")
                }
        }
    }
}
