// // ContentView.swift // Shared // // Created by Sergey Tarasov on 24.07.2022. // import SwiftUI struct ContentView: View { @ObservedObject var loginStore: LoginStore = LoginStore() @State var authStatus: Bool = false @State var selectedTab: Tab = .rooms var body: some View { Group { if authStatus { NavigationView { TabView(selection: $selectedTab) { ChatListView() .navigationViewStyle(StackNavigationViewStyle()) .tabItem { Label(Tab.contacts.string, systemImage: "person.crop.circle") } .tag(Tab.contacts) RoomsListView() .navigationViewStyle(StackNavigationViewStyle()) .tabItem { Label(Tab.rooms.string, systemImage: "bubble.left.and.bubble.right") } .tag(Tab.rooms) Text("") .navigationBarTitleDisplayMode(.inline) .navigationViewStyle(StackNavigationViewStyle()) .tabItem { Label(Tab.settings.string, systemImage: "gear") } .tag(Tab.settings) } .navigationBarTitle(returnNaviBarTitle(self.selectedTab)) } } else { LoginView(store: loginStore, authStatus: $authStatus) } } } func returnNaviBarTitle(_ tabSelection: Tab) -> String { switch tabSelection { case .contacts: return "Контакты" case .rooms: return "Чаты" case .settings: return "Настройки" } } enum Tab { case contacts case rooms case settings var string: String { switch self { case .contacts: return "Контакты" case .rooms: return "Чаты" case .settings: return "Настройки" } } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }