new features

This commit is contained in:
Mark Gregory
2026-11-09 08:20:57 +00:00
parent ecfa74a35f
commit 965ae923c2
27 changed files with 1474 additions and 168 deletions
+24 -4
View File
@@ -1,10 +1,30 @@
import SwiftUI
@main
struct AppleContainerComposeApp: App {
@StateObject private var model = ComposeModel()
struct ContainerComposeApp: App {
@StateObject private var compose = ComposeModel()
@StateObject private var monitor = Monitor()
@State private var tab = "compose"
var body: some Scene {
WindowGroup("Apple Container Compose") { ContentView().environmentObject(model) }
.defaultSize(width: 1050, height: 720)
WindowGroup("Container Compose") {
TabView(selection: $tab) {
ContentView().environmentObject(compose).disabled(monitor.demo || monitor.acting)
.tabItem { Label("Compose", systemImage: "square.stack.3d.up") }.tag("compose")
Workspace(model: monitor).disabled(compose.busy)
.tabItem { Label("Monitor & Resources", systemImage: "waveform.path.ecg") }.tag("monitor")
}
.frame(minWidth: 1050, minHeight: 720)
.onChange(of: compose.projectName) { _, name in monitor.project = name }
}.defaultSize(width: 1250, height: 850)
.commands {
CommandGroup(after: .appInfo) { Button("Save Command-Line Tool…") { monitor.exportCLI() } }
CommandMenu("Containers") {
Button("Refresh") { Task { await monitor.refresh() } }.keyboardShortcut("r")
Button("Inspect") { monitor.mode = "Inspect" }.keyboardShortcut("i")
Button("Logs") { monitor.mode = "Logs" }.keyboardShortcut("l")
Button("Stats") { monitor.mode = "Stats" }.keyboardShortcut("s")
}
}
Settings { Preferences(model: monitor) }
}
}