← back to Exo
app/EXO/EXO/Views/NodeDetailView.swift
35 lines
import SwiftUI
struct NodeDetailView: View {
let node: NodeViewModel
var body: some View {
VStack(alignment: .leading, spacing: 10) {
Text(node.friendlyName)
.font(.headline)
Text(node.model)
.font(.caption)
.foregroundColor(.secondary)
Divider()
metricRow(label: "Memory", value: node.memoryLabel)
ProgressView(value: node.memoryProgress)
metricRow(label: "CPU Usage", value: node.cpuUsageLabel)
metricRow(label: "GPU Usage", value: node.gpuUsageLabel)
metricRow(label: "Temperature", value: node.temperatureLabel)
metricRow(label: "Power", value: node.powerLabel)
}
.padding()
}
private func metricRow(label: String, value: String) -> some View {
HStack {
Text(label)
.font(.caption)
.foregroundColor(.secondary)
Spacer()
Text(value)
.font(.subheadline)
}
}
}