feat: add remote reboot support

This commit is contained in:
2026-04-19 16:53:17 +02:00
parent 92040e5c5e
commit afbb425e3b
11 changed files with 381 additions and 19 deletions

View File

@@ -9,6 +9,9 @@ import SwiftUI
struct GeneralView: View {
@Binding var server: Server
var canRestart: Bool = false
var isRestarting: Bool = false
var onRestart: (() -> Void)? = nil
var body: some View {
GeometryReader { geometry in
@@ -117,6 +120,33 @@ struct GeneralView: View {
monospaced: true
)
}
if canRestart, let onRestart {
TableRowView(showDivider: false) {
Text("Actions")
} value: {
VStack(alignment: .leading, spacing: 8) {
Button(role: .destructive) {
onRestart()
} label: {
if isRestarting {
HStack(spacing: 8) {
ProgressView()
.controlSize(.small)
Text("Rebooting…")
}
} else {
Label("Reboot Server", systemImage: "arrow.clockwise.circle")
}
}
.disabled(isRestarting)
Text("Sends a reboot command to the selected host.")
.font(.caption)
.foregroundColor(.secondary)
}
}
}
}
.padding()
.frame(minHeight: geometry.size.height, alignment: .top)
@@ -132,7 +162,7 @@ struct GeneralView: View {
@State var previewServer = Server(hostname: "example.com", info: .placeholder)
var body: some View {
GeneralView(server: $previewServer)
GeneralView(server: $previewServer, canRestart: true)
}
}