fix
This commit is contained in:
parent
728066030b
commit
224e38aa8b
@ -8,8 +8,8 @@
|
||||
import Foundation
|
||||
import Observation
|
||||
|
||||
enum AppContextError: Error {
|
||||
case nullNetworkSession
|
||||
struct AppContextError: Error {
|
||||
let message: String
|
||||
}
|
||||
|
||||
@Observable
|
||||
@ -87,12 +87,12 @@ class AppContext {
|
||||
// 连接到对应的网络
|
||||
func connectNetwork() async throws {
|
||||
guard let session = self.networkSession else {
|
||||
throw AppContextError.nullNetworkSession
|
||||
throw AppContextError(message: "未登陆")
|
||||
}
|
||||
|
||||
// 避免重复连接
|
||||
guard !vpnManager.isConnected else {
|
||||
return
|
||||
throw AppContextError(message: "网络已经连接")
|
||||
}
|
||||
|
||||
let context = try await SDLAPIClient.connectNetwork(accesToken: session.accessToken)
|
||||
|
||||
@ -191,6 +191,9 @@ struct NetworkDisconnectedView: View {
|
||||
@Environment(AppContext.self) private var appContext: AppContext
|
||||
@State private var isConnecting: Bool = false
|
||||
|
||||
@State private var showAlert: Bool = false
|
||||
@State private var errorMessage: String = ""
|
||||
|
||||
var body: some View {
|
||||
VStack(spacing: 20) {
|
||||
Spacer()
|
||||
@ -220,6 +223,9 @@ struct NetworkDisconnectedView: View {
|
||||
.disabled(isConnecting)
|
||||
Spacer()
|
||||
}
|
||||
.alert(isPresented: $showAlert) {
|
||||
Alert(title: Text("提示"), message: Text(errorMessage))
|
||||
}
|
||||
}
|
||||
|
||||
private func startConnection() async {
|
||||
@ -230,8 +236,15 @@ struct NetworkDisconnectedView: View {
|
||||
|
||||
do {
|
||||
try await self.appContext.connectNetwork()
|
||||
} catch let err as SDLAPIError {
|
||||
self.showAlert = true
|
||||
self.errorMessage = err.message
|
||||
} catch let err as AppContextError {
|
||||
self.showAlert = true
|
||||
self.errorMessage = err.message
|
||||
} catch let err {
|
||||
print("Connection error: \(err)")
|
||||
self.showAlert = true
|
||||
self.errorMessage = err.localizedDescription
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user