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