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