mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-15 11:56:01 +00:00
40 lines
1.3 KiB
Swift
40 lines
1.3 KiB
Swift
import OpenClawKit
|
|
import UIKit
|
|
|
|
enum GatewayProblemPrimaryAction {
|
|
static func title(
|
|
for problem: GatewayConnectionProblem,
|
|
retryTitle: String,
|
|
resetTitle: String? = nil,
|
|
nonRetryableTitle: String? = nil) -> String?
|
|
{
|
|
if problem.suggestsOnboardingReset, let resetTitle {
|
|
return String(localized: String.LocalizationValue(resetTitle))
|
|
}
|
|
if problem.canTrustRotatedCertificate {
|
|
return String(localized: "Trust certificate")
|
|
}
|
|
if problem.kind == .protocolMismatch {
|
|
return problem.localizedActionLabel
|
|
}
|
|
if problem.retryable {
|
|
return problem.localizedActionLabel
|
|
?? String(localized: String.LocalizationValue(retryTitle))
|
|
}
|
|
return nonRetryableTitle.map { String(localized: String.LocalizationValue($0)) }
|
|
}
|
|
|
|
@MainActor
|
|
static func handleProtocolMismatchIfNeeded(_ problem: GatewayConnectionProblem) -> Bool {
|
|
guard problem.kind == .protocolMismatch else { return false }
|
|
if let command = problem.actionCommand {
|
|
UIPasteboard.general.string = command
|
|
return true
|
|
}
|
|
if let url = problem.docsURL {
|
|
UIApplication.shared.open(url)
|
|
}
|
|
return true
|
|
}
|
|
}
|