瀏覽代碼

Add error handling to iOS post editor (#210) (#214)

* Add error handling to post editor

* Cleanup

* Add error handling to macOS (#211)

* Add error handling to Mac app

* Log fatal errors and present alert on next launch (#212)

* Log fatal crashes and present alert on next launch

* Update crash alert copy and navigate to help forum

* Refactor logging into reuseable methods

* Refactor class to use protocol

* Clean up todo comment

* Revert "Log fatal errors and present alert on next launch (#212)"

This reverts commit 7475b57772.
tags/v1.0.10-ios
Angelo Stavrow 1 年之前
committed by GitHub
父節點
當前提交
93c016268a
沒有發現已知的金鑰在資料庫的簽署中 GPG Key ID: 4AEE18F83AFDEB23
共有 5 個文件被更改,包括 51 次插入2 次删除
  1. +1
    -0
      Shared/WriteFreely_MultiPlatformApp.swift
  2. +11
    -0
      macOS/PostEditor/PostEditorView.swift
  3. +13
    -2
      macOS/Settings/MacAccountView.swift
  4. +13
    -0
      macOS/Settings/MacPreferencesView.swift
  5. +13
    -0
      macOS/Settings/MacUpdatesView.swift

+ 1
- 0
Shared/WriteFreely_MultiPlatformApp.swift 查看文件

@@ -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.


+ 11
- 0
macOS/PostEditor/PostEditorView.swift 查看文件

@@ -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()


+ 13
- 2
macOS/Settings/MacAccountView.swift 查看文件

@@ -2,11 +2,22 @@ import SwiftUI

struct MacAccountView: View {
@EnvironmentObject var model: WriteFreelyModel
@EnvironmentObject var errorHandling: ErrorHandling

var body: some View {
Form {
AccountView()
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
}
}
}
}



+ 13
- 0
macOS/Settings/MacPreferencesView.swift 查看文件

@@ -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
}
}
}
}



+ 13
- 0
macOS/Settings/MacUpdatesView.swift 查看文件

@@ -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…
取消
儲存