Files
iKeyMon/Views/Tabs/ServicesView.swift
2025-11-15 19:49:28 +01:00

63 lines
1.6 KiB
Swift

//
// ServicesView.swift
// iKeyMon
//
// Created by tracer on 31.03.25.
//
import SwiftUI
struct ServicesView: View {
@Binding var server: Server
var body: some View {
VStack(alignment: .leading) {
if let ports = server.info?.ports {
Table(ports) {
TableColumn("Service") { port in
Text(port.service)
}
TableColumn("Status") { port in
Text(port.status)
.foregroundColor(
port.status.lowercased() == "online" ? .green : .red
)
}
TableColumn("Port") { port in
Text("\(port.port) \(port.proto.uppercased())")
}
TableColumn("Protocol") { port in
Text("\(port.proto.uppercased())")
.monospacedDigit()
}
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.padding(0)
} else {
Text("No service information available")
.foregroundColor(.secondary)
.padding()
}
}
.navigationTitle("Service/port monitoring")
}
}
#Preview {
struct PreviewWrapper: View {
@State var previewServer = Server(hostname: "example.com", info: .placeholder)
var body: some View {
ServicesView(server: $previewServer)
}
}
return PreviewWrapper()
}