Replace .alert with .emittingError

This commit is contained in:
Brandon Evans 2021-01-04 16:23:35 -07:00
parent f1cdf65be7
commit a3e9101397
No known key found for this signature in database
GPG key ID: D58A4B8DB64F8E93
7 changed files with 15 additions and 31 deletions

View file

@ -38,7 +38,7 @@ extension AppState {
receiveCompletion: { [unowned self] completion in
switch completion {
case let .failure(error):
self.error = AlertContent(title: "Update Error", message: error.legibleLocalizedDescription)
self.error = error
case .finished:
Current.defaults.setDate(Current.date(), forKey: "lastUpdated")
}

View file

@ -27,13 +27,16 @@ class AppState: ObservableObject {
}
@Published var updatePublisher: AnyCancellable?
var isUpdating: Bool { updatePublisher != nil }
@Published var error: AlertContent?
@Published var authError: AlertContent?
@Published var presentingSignInAlert = false
@Published var isProcessingAuthRequest = false
@Published var secondFactorData: SecondFactorData?
@Published var xcodeBeingConfirmedForUninstallation: Xcode?
@Published var helperInstallState: HelperInstallState = .notInstalled
// MARK: - Errors
@Published var error: Error?
@Published var authError: Error?
init() {
try? loadCachedAvailableXcodes()
@ -158,7 +161,7 @@ class AppState: ObservableObject {
}
// This error message is not user friendly... need to extract some meaningful data in the different cases
self.authError = AlertContent(title: "Error signing in", message: error.legibleLocalizedDescription)
self.authError = error
case .finished:
switch self.authenticationState {
case .authenticated, .unauthenticated:
@ -220,7 +223,7 @@ class AppState: ObservableObject {
.sink(
receiveCompletion: { [unowned self] completion in
if case let .failure(error) = completion {
self.error = AlertContent(title: "Error uninstalling Xcode", message: error.legibleLocalizedDescription)
self.error = error
}
self.uninstallPublisher = nil
},
@ -251,7 +254,7 @@ class AppState: ObservableObject {
.sink(
receiveCompletion: { [unowned self] completion in
if case let .failure(error) = completion {
self.error = AlertContent(title: "Error selecting Xcode", message: error.legibleLocalizedDescription)
self.error = error
}
self.selectPublisher = nil
},

View file

@ -1,3 +1,4 @@
import ErrorHandling
import SwiftUI
struct MainWindow: View {
@ -31,11 +32,7 @@ struct MainWindow: View {
)
.navigationSubtitle(subtitleText)
.frame(minWidth: 600, maxWidth: .infinity, minHeight: 300, maxHeight: .infinity)
.alert(item: $appState.error) { error in
Alert(title: Text(error.title),
message: Text(verbatim: error.message),
dismissButton: .default(Text("OK")))
}
.emittingError($appState.error, recoveryHandler: { _ in })
.sheet(isPresented: $appState.secondFactorData.isNotNil) {
secondFactorView(appState.secondFactorData!)
.environmentObject(appState)

View file

@ -34,11 +34,7 @@ struct SignIn2FAView: View {
.frame(height: 25)
}
.padding()
.alert(item: $appState.authError) { error in
Alert(title: Text(error.title),
message: Text(verbatim: error.message),
dismissButton: .default(Text("OK")))
}
.emittingError($appState.authError, recoveryHandler: { _ in })
}
}

View file

@ -38,11 +38,7 @@ struct SignInCredentialsView: View {
.frame(height: 25)
}
.padding()
.alert(item: $appState.authError) { error in
Alert(title: Text(error.title),
message: Text(verbatim: error.message),
dismissButton: .default(Text("OK")))
}
.emittingError($appState.authError, recoveryHandler: { _ in })
}
}

View file

@ -39,11 +39,7 @@ struct SignInPhoneListView: View {
}
.padding()
.frame(width: 400, height: 200)
.alert(item: $appState.authError) { error in
Alert(title: Text(error.title),
message: Text(verbatim: error.message),
dismissButton: .default(Text("OK")))
}
.emittingError($appState.authError, recoveryHandler: { _ in })
}
}

View file

@ -34,11 +34,7 @@ struct SignInSMSView: View {
.frame(height: 25)
}
.padding()
.alert(item: $appState.authError) { error in
Alert(title: Text(error.title),
message: Text(verbatim: error.message),
dismissButton: .default(Text("OK")))
}
.emittingError($appState.authError, recoveryHandler: { _ in })
}
}