12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- //
- // 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()
- }
- }
|