diff options
Diffstat (limited to 'iosApp/iosApp/Units/UnitsView.swift')
-rw-r--r-- | iosApp/iosApp/Units/UnitsView.swift | 66 |
1 files changed, 46 insertions, 20 deletions
diff --git a/iosApp/iosApp/Units/UnitsView.swift b/iosApp/iosApp/Units/UnitsView.swift index fd673a6..fc4952f 100644 --- a/iosApp/iosApp/Units/UnitsView.swift +++ b/iosApp/iosApp/Units/UnitsView.swift @@ -15,29 +15,55 @@ struct UnitsView: View { var body: some View { NavigationView { - ZStack { - switch unitsViewModel.unitsDisplayMode { - case .list: - DevicesView(unitsViewModel: unitsViewModel) - case .map: - MapView(unitsViewModel: unitsViewModel) + TabView(selection: $unitsViewModel.unitsDisplayMode, content: { + MapView(unitsViewModel: unitsViewModel) + .tabItem { + Image(systemName: "map") + Text("map") + } + .tag(UnitsViewModel.UnitsDisplayMode.map) + DevicesView(unitsViewModel: unitsViewModel) + .tabItem { + Image(systemName: "list.bullet") + Text("devices") + } + .tag(UnitsViewModel.UnitsDisplayMode.list) + }) + .navigationTitle(getNavigationTitle(unitsViewModel.unitsDisplayMode)) + .navigationBarTitleDisplayMode(.inline) + .navigationSearchBar { + SearchBar(NSLocalizedString("search", comment: ""), + text: $unitsViewModel.searchQuery, + isEditing: $unitsViewModel.isEditing, + onCommit: {}) + .showsCancelButton(unitsViewModel.isEditing) + .onCancel { + unitsViewModel.searchQuery = "" + } + } + .navigationSearchBarHiddenWhenScrolling(false) + .toolbar { + ToolbarItem(placement: .navigationBarTrailing) { + Button(action: {}) { + Image(systemName: "square.stack.3d.up") + } + .visible(unitsViewModel.unitsDisplayMode == .map) + } + ToolbarItem(placement: .navigationBarTrailing) { + Button(action: {}) { + Image(systemName: "person") + } + } } - } - .navigationBarTitleDisplayMode(.inline) - .navigationSearchBar { - searchBar() - } } } - private func searchBar () -> SearchBar { - SearchBar(NSLocalizedString("search", comment: ""), - text: $unitsViewModel.searchQuery, - isEditing: $unitsViewModel.isEditing, - onCommit: {}) - .showsCancelButton(unitsViewModel.isEditing) - .onCancel { - unitsViewModel.searchQuery = "" - } + private func getNavigationTitle(_ unitDisplayMode: UnitsViewModel.UnitsDisplayMode) -> LocalizedStringKey { + switch unitDisplayMode { + case .list: + return "devices" + case .map: + return "map" + } } } |