// // GeneralTab.swift // iKeyMon // // Created by tracer on 30.03.25. // import SwiftUI struct GeneralView: View { @Binding var server: Server var body: some View { GeometryReader { geometry in ScrollView { VStack(alignment: .leading, spacing: 6) { TableRowView { Text("Hostname") } value: { InfoCell(value: [server.hostname]) } TableRowView { Text("IP addresses") } value: { InfoCell(value: server.info?.ipAddresses ?? [], monospaced: true) } TableRowView { Text("Server time") } value: { InfoCell(value: [server.info?.formattedServerTime ?? ""], monospaced: true) } TableRowView { Text("Uptime") } value: { InfoCell(value: [server.info?.uptime ?? ""]) } TableRowView { Text("KeyHelp version") } value: { InfoCell(value: [server.info?.formattedVersion ?? ""], monospaced: true) } TableRowView { Text("Sytem PHP version") } value: { InfoCell(value: [server.info?.phpVersion ?? ""], monospaced: true) } TableRowView(showDivider: false) { Text("Additional PHP interpreters") } value: { InfoCell( value: server.info?.additionalPHPInterpreters?.map { $0.versionFull } ?? [], monospaced: true ) } } .padding() .frame(minHeight: geometry.size.height, alignment: .top) } .padding() .scrollDisabled(true) } } } #Preview { struct PreviewWrapper: View { @State var previewServer = Server(hostname: "example.com", info: .placeholder) var body: some View { GeneralView(server: $previewServer) } } return PreviewWrapper() }