Add error handling to top-level content view

This commit is contained in:
Angelo Stavrow 2022-05-13 07:20:47 -04:00
parent 3a53bec184
commit a3b805a319
No known key found for this signature in database
GPG Key ID: 1A49C7064E060EEE
2 changed files with 16 additions and 0 deletions

View File

@ -2,11 +2,13 @@ import SwiftUI
struct ContentView: View {
@EnvironmentObject var model: WriteFreelyModel
@EnvironmentObject var errorHandling: ErrorHandling
var body: some View {
NavigationView {
#if os(macOS)
CollectionListView()
.withErrorHandling()
.toolbar {
Button(
action: {
@ -36,6 +38,7 @@ struct ContentView: View {
}
#else
CollectionListView()
.withErrorHandling()
#endif
#if os(macOS)
@ -56,6 +59,18 @@ struct ContentView: View {
Text("Select a post, or create a new local draft.")
.foregroundColor(.secondary)
EmptyView()
.onChange(of: model.hasError) { value in
if value {
if let error = model.currentError {
self.errorHandling.handle(error: error)
} else {
self.errorHandling.handle(error: AppError.genericError)
}
model.hasError = false
}
}
}
.environmentObject(model)
}

View File

@ -48,6 +48,7 @@ struct WriteFreely_MultiPlatformApp: App {
}
}
})
.withErrorHandling()
.environmentObject(model)
.environment(\.managedObjectContext, LocalStorageManager.standard.container.viewContext)
// .preferredColorScheme(preferences.selectedColorScheme) // See PreferencesModel for info.