Files
sing-box-for-apple/ApplicationLibrary/Views/Dashboard/Cards/UploadTrafficCard.swift
T

46 lines
1.6 KiB
Swift

import Libbox
import Library
import SwiftUI
public struct UploadTrafficCard: View {
@EnvironmentObject private var commandClient: CommandClient
public init() {}
public var body: some View {
DashboardCardView(title: "", isHalfWidth: true) {
VStack(alignment: .leading, spacing: 8) {
DashboardCardHeader(icon: "arrow.up.circle.fill", title: "Upload")
if Variant.screenshotMode {
Text(verbatim: "38 B/s")
.font(.title2)
.fontWeight(.medium)
Text(verbatim: "52 MB")
.font(.subheadline)
.foregroundStyle(.secondary)
} else if let message = commandClient.status, message.trafficAvailable {
Text(verbatim: "\(LibboxFormatBytes(message.uplink))/s")
.font(.title2)
.fontWeight(.medium)
Text(LibboxFormatBytes(message.uplinkTotal))
.font(.subheadline)
.foregroundStyle(.secondary)
} else {
Text(verbatim: "...")
.font(.title2)
.fontWeight(.medium)
Text(verbatim: "...")
.font(.subheadline)
.foregroundStyle(.secondary)
}
TrafficLineChart(
data: commandClient.uplinkHistory,
lineColor: .primary
)
}
}
}
}