|
@@ -7,12 +7,6 @@
|
|
|
|
|
|
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()
|
|
@@ -23,41 +17,51 @@ struct ContentView: View {
|
|
|
var body: some View {
|
|
|
Group {
|
|
|
if authStatus {
|
|
|
- TabView(selection: $selectedTab) {
|
|
|
- NavigationView {
|
|
|
+ NavigationView {
|
|
|
+ TabView(selection: $selectedTab) {
|
|
|
ChatListView(viewModel: contactsViewModel)
|
|
|
- }
|
|
|
- .navigationViewStyle(StackNavigationViewStyle())
|
|
|
- .tabItem {
|
|
|
- Label("Контакты", systemImage: "person.crop.circle")
|
|
|
- }
|
|
|
- .tag(Tab.contacts)
|
|
|
+ .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)
|
|
|
+ .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)
|
|
|
}
|
|
|
- .navigationViewStyle(StackNavigationViewStyle())
|
|
|
- .tabItem {
|
|
|
- Label("Настройки", systemImage: "gear")
|
|
|
- }
|
|
|
- .tag(Tab.settings)
|
|
|
+ .navigationBarTitle(returnNaviBarTitle(tabSelection: self.selectedTab))
|
|
|
}
|
|
|
} else {
|
|
|
LoginView(viewModel: loginViewModel, 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
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
struct ContentView_Previews: PreviewProvider {
|