36 lines
840 B
Swift
36 lines
840 B
Swift
import SwiftUI
|
|
|
|
struct ConnectionIndicator: View {
|
|
let status: ConnectionStatus
|
|
|
|
var body: some View {
|
|
HStack(spacing: 4) {
|
|
Circle()
|
|
.fill(statusColor)
|
|
.frame(width: 8, height: 8)
|
|
|
|
if status != .connected {
|
|
Text(statusText)
|
|
.font(.caption2)
|
|
.foregroundStyle(.secondary)
|
|
}
|
|
}
|
|
}
|
|
|
|
private var statusColor: Color {
|
|
switch status {
|
|
case .connected: return .green
|
|
case .connecting: return .orange
|
|
case .disconnected: return .red
|
|
}
|
|
}
|
|
|
|
private var statusText: String {
|
|
switch status {
|
|
case .connected: return ""
|
|
case .connecting: return "Connecting..."
|
|
case .disconnected: return "Disconnected"
|
|
}
|
|
}
|
|
}
|