// // ContentView.swift // Shared // // Created by Sergey Tarasov on 24.07.2022. // import SwiftUI enum Tab: Int { case contacts = 0 case rooms = 1 case settings = 2 } struct ContentView: View { @ObservedObject var contactsViewModel: ChatListViewModel = ChatListViewModel() @ObservedObject var roomsViewModel: RoomsListViewModel = RoomsListViewModel() @ObservedObject var loginViewModel: LoginViewModel = LoginViewModel() @State var authStatus: Bool = false @State var selectedTab: Tab = .rooms var body: some View { Group { if authStatus { TabView(selection: $selectedTab) { NavigationView { ChatListView(viewModel: contactsViewModel) } .navigationViewStyle(StackNavigationViewStyle()) .tabItem { Label("Контакты", systemImage: "person.crop.circle") } .tag(Tab.contacts) NavigationView { RoomsListView(viewModel: roomsViewModel) } .navigationViewStyle(StackNavigationViewStyle()) .tabItem { Label("Чаты", systemImage: "bubble.left.and.bubble.right") } .tag(Tab.rooms) NavigationView { Text("") .navigationTitle("Настройки") .navigationBarTitleDisplayMode(.inline) } .navigationViewStyle(StackNavigationViewStyle()) .tabItem { Label("Настройки", systemImage: "gear") } .tag(Tab.settings) } } else { LoginView(viewModel: loginViewModel, authStatus: $authStatus) } } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }