Some SwiftUI

This commit is contained in:
Neil Alexander 2023-06-06 22:09:27 +01:00
parent b58f8e3852
commit 291b12b785
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
24 changed files with 901 additions and 89 deletions

View file

@ -0,0 +1,63 @@
//
// YggdrasilSwiftUIApp.swift
// YggdrasilSwiftUI
//
// Created by Neil on 10/02/2023.
//
import SwiftUI
import NetworkExtension
@main
struct Application: App {
#if os(iOS)
@UIApplicationDelegateAdaptor(CrossPlatformAppDelegate.self) static var appDelegate: CrossPlatformAppDelegate
#elseif os(macOS)
@NSApplicationDelegateAdaptor(CrossPlatformAppDelegate.self) static var appDelegate: CrossPlatformAppDelegate
#endif
@State private var selection: String? = "Status"
@State private var config: ConfigurationProxy = ConfigurationProxy()
var body: some Scene {
WindowGroup {
NavigationSplitView {
List(selection: $selection) {
NavigationLink(destination: StatusView(yggdrasilConfiguration: $config)) {
HStack {
Image(systemName: "info.circle")
.foregroundColor(.accentColor)
.frame(minWidth: 24)
Text("Status")
}
}
NavigationLink(destination: PeersView()) {
HStack {
Image(systemName: "antenna.radiowaves.left.and.right")
.foregroundColor(.accentColor)
.frame(minWidth: 24)
Text("Peers")
}
}
NavigationLink(destination: SettingsView()) {
HStack {
Image(systemName: "gear")
.foregroundColor(.accentColor)
.frame(minWidth: 24)
Text("Settings")
}
}
}
.listStyle(.sidebar)
.navigationSplitViewColumnWidth(200)
} detail: {
StatusView(yggdrasilConfiguration: $config)
}
.navigationTitle("Yggdrasil")
.navigationSplitViewStyle(.automatic)
}
#if os(macOS)
.windowStyle(.hiddenTitleBar)
#endif
}
}