Meshtastic-Apple/Meshtastic/Views/ContentView.swift

72 lines
1.3 KiB
Swift
Raw Normal View History

2021-08-20 07:56:05 -07:00
/*
2023-03-03 20:08:04 -08:00
Copyright (c) Garth Vander Houwen 2021
*/
2021-08-20 07:56:05 -07:00
import SwiftUI
struct ContentView: View {
@StateObject var appState = AppState.shared
2023-03-03 20:08:04 -08:00
var body: some View {
TabView(selection: $appState.tabSelection) {
2023-08-29 22:12:51 -07:00
Messages()
2022-01-01 08:03:46 -08:00
.tabItem {
2022-12-12 21:51:43 -08:00
Label("messages", systemImage: "message")
2022-01-01 08:03:46 -08:00
}
.tag(Tab.contacts)
2023-09-03 09:04:07 -07:00
.badge(appState.unreadDirectMessages + appState.unreadChannelMessages)
Connect()
.tabItem {
2022-12-12 21:51:43 -08:00
Label("bluetooth", systemImage: "antenna.radiowaves.left.and.right")
}
.tag(Tab.ble)
NodeList()
.tabItem {
2022-12-12 21:51:43 -08:00
Label("nodes", systemImage: "flipphone")
}
.tag(Tab.nodes)
2023-11-07 21:20:11 -08:00
if #available(iOS 17.0, macOS 14.0, *) {
2023-11-11 09:58:54 -08:00
if UserDefaults.mapUseLegacy {
NodeMap()
.tabItem {
Label("map", systemImage: "map")
}
.tag(Tab.map)
} else {
MeshMap()
.tabItem {
Label("map", systemImage: "map")
}
.tag(Tab.map)
}
2023-11-07 21:20:11 -08:00
} else {
NodeMap()
.tabItem {
Label("map", systemImage: "map")
}
.tag(Tab.map)
}
Settings()
.tabItem {
2022-12-12 21:51:43 -08:00
Label("settings", systemImage: "gear")
2023-08-26 20:45:15 -07:00
.font(.title)
}
.tag(Tab.settings)
2023-03-03 20:08:04 -08:00
}
}
2021-08-20 07:56:05 -07:00
}
struct ContentView_Previews: PreviewProvider {
2023-03-03 20:08:04 -08:00
static var previews: some View {
ContentView()
}
2021-08-20 07:56:05 -07:00
}
enum Tab {
case contacts
case messages
case map
case ble
case nodes
case settings
}