Meshtastic-Apple/Meshtastic/Views/ContentView.swift
2024-06-03 20:23:06 -05:00

61 lines
1.1 KiB
Swift

/*
Copyright (c) Garth Vander Houwen 2021
*/
import SwiftUI
@available(iOS 17.0, *)
struct ContentView: View {
@StateObject var appState = AppState.shared
var meshMap: some View {
SwiftUI.Group {
if #available(iOS 17.0, macOS 14.0, *), !UserDefaults.mapUseLegacy {
MeshMap()
} else {
NodeMap()
}
}
}
var body: some View {
TabView(selection: $appState.tabSelection) {
Messages()
.tabItem {
Label("messages", systemImage: "message")
}
.tag(Tab.messages)
.badge(appState.unreadDirectMessages + appState.unreadChannelMessages)
Connect()
.tabItem {
Label("bluetooth", systemImage: "antenna.radiowaves.left.and.right")
}
.tag(Tab.ble)
NodeList()
.tabItem {
Label("nodes", systemImage: "flipphone")
}
.tag(Tab.nodes)
meshMap
.tabItem {
Label("map", systemImage: "map")
}
.tag(Tab.map)
Settings()
.tabItem {
Label("settings", systemImage: "gear")
.font(.title)
}
.tag(Tab.settings)
}
}
}
enum Tab: Hashable {
case messages
case map
case ble
case nodes
case settings
}