add server: show progress bar when resolving

This commit is contained in:
2025-06-11 17:42:26 -07:00
parent ce8ece23a5
commit afe985661a

View File

@@ -75,6 +75,12 @@ struct AddServerView: View
Image(systemName: "network") Image(systemName: "network")
Text("\(server.displayName)") Text("\(server.displayName)")
.bold() .bold()
Spacer()
if model.resolvingServers.contains(server) {
ProgressView()
.progressViewStyle(.circular)
}
} }
} }
.tint(.primary) .tint(.primary)
@@ -90,6 +96,8 @@ struct AddServerView: View
private func resolveEndpoint(_ endpoint: DiscoveredEndpoint) { private func resolveEndpoint(_ endpoint: DiscoveredEndpoint) {
Task { Task {
model.resolvingServers.insert(endpoint)
let server = try await endpoint.resolve() let server = try await endpoint.resolve()
onAddServer(server) onAddServer(server)
} }
@@ -104,6 +112,8 @@ struct AddServerView: View
var validationState: ValidationState = .empty var validationState: ValidationState = .empty
var discoveredServers: [DiscoveredEndpoint] = [] var discoveredServers: [DiscoveredEndpoint] = []
var resolvingServers = Set<DiscoveredEndpoint>()
private let browser = NWBrowser(for: .bonjour(type: "_queuecube._tcp.", domain: nil), using: .tcp) private let browser = NWBrowser(for: .bonjour(type: "_queuecube._tcp.", domain: nil), using: .tcp)
private var validationTimer: Timer? = nil private var validationTimer: Timer? = nil
@@ -180,7 +190,7 @@ struct AddServerView: View
} }
} }
struct DiscoveredEndpoint: Identifiable struct DiscoveredEndpoint: Identifiable, Hashable
{ {
let endpoint: NWEndpoint let endpoint: NWEndpoint
let serviceName: String let serviceName: String