57 lines
2.3 KiB
Swift
57 lines
2.3 KiB
Swift
import Foundation
|
|
import Libbox
|
|
import SwiftUI
|
|
|
|
public struct ConnectionDetailsView: View {
|
|
private let connection: Connection
|
|
public init(_ connection: Connection) {
|
|
self.connection = connection
|
|
}
|
|
|
|
public var body: some View {
|
|
FormView {
|
|
if connection.closedAt != nil {
|
|
FormTextItem("State", "Closed")
|
|
FormTextItem("Created At", connection.createdAt.myFormat)
|
|
} else {
|
|
FormTextItem("State", "Active")
|
|
FormTextItem("Created At", connection.createdAt.myFormat)
|
|
}
|
|
if let closedAt = connection.closedAt {
|
|
FormTextItem("Closed At", closedAt.myFormat)
|
|
}
|
|
FormTextItem("Upload", LibboxFormatBytes(connection.uploadTotal))
|
|
FormTextItem("Download", LibboxFormatBytes(connection.downloadTotal))
|
|
Section("Metadata") {
|
|
FormTextItem("Inbound", connection.inbound)
|
|
FormTextItem("Inbound Type", connection.inboundType)
|
|
FormTextItem("IP Version", "\(connection.ipVersion)")
|
|
FormTextItem("Network", connection.network.uppercased())
|
|
FormTextItem("Source", connection.source)
|
|
FormTextItem("Destination", connection.destination)
|
|
if !connection.domain.isEmpty {
|
|
FormTextItem("Domain", connection.domain)
|
|
}
|
|
if !connection.protocolName.isEmpty {
|
|
FormTextItem("Protocol", connection.protocolName)
|
|
}
|
|
if !connection.user.isEmpty {
|
|
FormTextItem("User", connection.user)
|
|
}
|
|
if !connection.fromOutbound.isEmpty {
|
|
FormTextItem("From Outbound", connection.fromOutbound)
|
|
}
|
|
if !connection.rule.isEmpty {
|
|
FormTextItem("Match Rule", connection.rule)
|
|
}
|
|
FormTextItem("Outbound", connection.outbound)
|
|
FormTextItem("Outbound Type", connection.outboundType)
|
|
if connection.chain.count > 1 {
|
|
FormTextItem("Chain", connection.chain.reversed().joined(separator: "/"))
|
|
}
|
|
}
|
|
}
|
|
.navigationTitle("Connection")
|
|
}
|
|
}
|