mirror of
https://github.com/writeas/writefreely-swiftui-multiplatform.git
synced 2024-11-15 01:11:02 +00:00
Add error handling to Mac app
This commit is contained in:
parent
15f84b04c0
commit
b1a8b8b29c
@ -115,6 +115,7 @@ struct WriteFreely_MultiPlatformApp: App {
|
||||
}
|
||||
.tag(2)
|
||||
}
|
||||
.withErrorHandling()
|
||||
.frame(minWidth: 500, maxWidth: 500, minHeight: 200)
|
||||
.padding()
|
||||
// .preferredColorScheme(preferences.selectedColorScheme) // See PreferencesModel for info.
|
||||
|
@ -2,6 +2,7 @@ import SwiftUI
|
||||
|
||||
struct PostEditorView: View {
|
||||
@EnvironmentObject var model: WriteFreelyModel
|
||||
@EnvironmentObject var errorHandling: ErrorHandling
|
||||
|
||||
@ObservedObject var post: WFAPost
|
||||
@State private var isHovering: Bool = false
|
||||
@ -38,6 +39,16 @@ struct PostEditorView: View {
|
||||
LocalStorageManager.standard.saveContext()
|
||||
}
|
||||
})
|
||||
.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
|
||||
}
|
||||
}
|
||||
.onDisappear(perform: {
|
||||
DispatchQueue.main.async {
|
||||
model.editor.clearLastDraft()
|
||||
|
@ -2,11 +2,22 @@ import SwiftUI
|
||||
|
||||
struct MacAccountView: View {
|
||||
@EnvironmentObject var model: WriteFreelyModel
|
||||
@EnvironmentObject var errorHandling: ErrorHandling
|
||||
|
||||
var body: some View {
|
||||
Form {
|
||||
AccountView()
|
||||
}
|
||||
.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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,9 @@
|
||||
import SwiftUI
|
||||
|
||||
struct MacPreferencesView: View {
|
||||
@EnvironmentObject var model: WriteFreelyModel
|
||||
@EnvironmentObject var errorHandling: ErrorHandling
|
||||
|
||||
@ObservedObject var preferences: PreferencesModel
|
||||
|
||||
var body: some View {
|
||||
@ -8,6 +11,16 @@ struct MacPreferencesView: View {
|
||||
PreferencesView(preferences: preferences)
|
||||
Spacer()
|
||||
}
|
||||
.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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,9 @@ import SwiftUI
|
||||
import Sparkle
|
||||
|
||||
struct MacUpdatesView: View {
|
||||
@EnvironmentObject var model: WriteFreelyModel
|
||||
@EnvironmentObject var errorHandling: ErrorHandling
|
||||
|
||||
@ObservedObject var updaterViewModel: MacUpdatesViewModel
|
||||
|
||||
@AppStorage(WFDefaults.automaticallyChecksForUpdates, store: UserDefaults.shared)
|
||||
@ -81,6 +84,16 @@ that can cause crashes and data loss.
|
||||
.onChange(of: subscribeToBetaUpdates) { _ in
|
||||
updaterViewModel.toggleAllowedChannels()
|
||||
}
|
||||
.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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user