mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 06:17:27 +00:00
refactor(swift): share discovery status text
This commit is contained in:
@@ -136,43 +136,9 @@ final class GatewayDiscoveryModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func updateStatusText() {
|
private func updateStatusText() {
|
||||||
let states = Array(self.statesByDomain.values)
|
self.statusText = GatewayDiscoveryStatusText.make(
|
||||||
if states.isEmpty {
|
states: Array(self.statesByDomain.values),
|
||||||
self.statusText = self.browsers.isEmpty ? "Idle" : "Setup"
|
hasBrowsers: !self.browsers.isEmpty)
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if let failed = states.first(where: { state in
|
|
||||||
if case .failed = state { return true }
|
|
||||||
return false
|
|
||||||
}) {
|
|
||||||
if case let .failed(err) = failed {
|
|
||||||
self.statusText = "Failed: \(err)"
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if let waiting = states.first(where: { state in
|
|
||||||
if case .waiting = state { return true }
|
|
||||||
return false
|
|
||||||
}) {
|
|
||||||
if case let .waiting(err) = waiting {
|
|
||||||
self.statusText = "Waiting: \(err)"
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if states.contains(where: { if case .ready = $0 { true } else { false } }) {
|
|
||||||
self.statusText = "Searching…"
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if states.contains(where: { if case .setup = $0 { true } else { false } }) {
|
|
||||||
self.statusText = "Setup"
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
self.statusText = "Searching…"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static func prettyState(_ state: NWBrowser.State) -> String {
|
private static func prettyState(_ state: NWBrowser.State) -> String {
|
||||||
|
|||||||
@@ -329,43 +329,9 @@ public final class GatewayDiscoveryModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func updateStatusText() {
|
private func updateStatusText() {
|
||||||
let states = Array(self.statesByDomain.values)
|
self.statusText = GatewayDiscoveryStatusText.make(
|
||||||
if states.isEmpty {
|
states: Array(self.statesByDomain.values),
|
||||||
self.statusText = self.browsers.isEmpty ? "Idle" : "Setup"
|
hasBrowsers: !self.browsers.isEmpty)
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if let failed = states.first(where: { state in
|
|
||||||
if case .failed = state { return true }
|
|
||||||
return false
|
|
||||||
}) {
|
|
||||||
if case let .failed(err) = failed {
|
|
||||||
self.statusText = "Failed: \(err)"
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if let waiting = states.first(where: { state in
|
|
||||||
if case .waiting = state { return true }
|
|
||||||
return false
|
|
||||||
}) {
|
|
||||||
if case let .waiting(err) = waiting {
|
|
||||||
self.statusText = "Waiting: \(err)"
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if states.contains(where: { if case .ready = $0 { true } else { false } }) {
|
|
||||||
self.statusText = "Searching…"
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if states.contains(where: { if case .setup = $0 { true } else { false } }) {
|
|
||||||
self.statusText = "Setup"
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
self.statusText = "Searching…"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static func txtDictionary(from result: NWBrowser.Result) -> [String: String] {
|
private static func txtDictionary(from result: NWBrowser.Result) -> [String: String] {
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
import Foundation
|
||||||
|
import Network
|
||||||
|
|
||||||
|
public enum GatewayDiscoveryStatusText {
|
||||||
|
public static func make(states: [NWBrowser.State], hasBrowsers: Bool) -> String {
|
||||||
|
if states.isEmpty {
|
||||||
|
return hasBrowsers ? "Setup" : "Idle"
|
||||||
|
}
|
||||||
|
|
||||||
|
if let failed = states.first(where: { state in
|
||||||
|
if case .failed = state { return true }
|
||||||
|
return false
|
||||||
|
}) {
|
||||||
|
if case let .failed(err) = failed {
|
||||||
|
return "Failed: \(err)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if let waiting = states.first(where: { state in
|
||||||
|
if case .waiting = state { return true }
|
||||||
|
return false
|
||||||
|
}) {
|
||||||
|
if case let .waiting(err) = waiting {
|
||||||
|
return "Waiting: \(err)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if states.contains(where: { if case .ready = $0 { true } else { false } }) {
|
||||||
|
return "Searching…"
|
||||||
|
}
|
||||||
|
|
||||||
|
if states.contains(where: { if case .setup = $0 { true } else { false } }) {
|
||||||
|
return "Setup"
|
||||||
|
}
|
||||||
|
|
||||||
|
return "Searching…"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user