Files
SonarDesk/SonarDesk-iOS/Views/IOSRootView.swift
2026-10-06 08:58:01 +01:00

55 lines
1.7 KiB
Swift

import SwiftUI
struct IOSRootView: View {
@EnvironmentObject private var appState: AppState
@EnvironmentObject private var workspaceStore: WorkspaceStore
@State private var selection: IOSSection? = .dashboard
enum IOSSection: Hashable {
case dashboard
case projects
case settings
}
var body: some View {
NavigationSplitView {
List(selection: $selection) {
Section {
Label("Dashboard", systemImage: "gauge.with.dots.needle.50percent")
.tag(IOSSection.dashboard)
Label("Projects", systemImage: "square.stack.3d.up")
.tag(IOSSection.projects)
}
Section("Workspace") {
Picker("Workspace", selection: $workspaceStore.selectedWorkspaceID) {
ForEach(workspaceStore.workspaces) { workspace in
Text(workspace.name).tag(workspace.id)
}
}
}
Section {
Label("Settings", systemImage: "gearshape")
.tag(IOSSection.settings)
}
}
.navigationTitle("SonarDesk")
} detail: {
switch selection ?? .dashboard {
case .dashboard:
IOSDashboardView()
case .projects:
IOSProjectsView()
case .settings:
IOSSettingsView()
}
}
.task {
if appState.selectedServer != nil && appState.projects.isEmpty {
await appState.refresh()
}
}
}
}