Merge branch 'alert-on-error-ios-code'

This commit is contained in:
Angelo Stavrow 2022-07-27 10:30:06 -04:00
commit 262aaaaa50
No known key found for this signature in database
GPG Key ID: 1A49C7064E060EEE
3 changed files with 14 additions and 7 deletions

View File

@ -160,8 +160,7 @@ struct ContentView: View {
} }
itemProvider.loadItem(forTypeIdentifier: typeIdentifier) { (dict, error) in itemProvider.loadItem(forTypeIdentifier: typeIdentifier) { (dict, error) in
if let error = error { if error != nil {
print("⚠️", error)
self.isShowingAlert = true self.isShowingAlert = true
} }

View File

@ -17,6 +17,7 @@ final class WriteFreelyModel: ObservableObject {
@Published var hasError: Bool = false @Published var hasError: Bool = false
var currentError: Error? { var currentError: Error? {
didSet { didSet {
// TODO: Remove print statements for debugging before closing #204.
#if DEBUG #if DEBUG
print("⚠️ currentError -> didSet \(currentError?.localizedDescription ?? "nil")") print("⚠️ currentError -> didSet \(currentError?.localizedDescription ?? "nil")")
print(" > hasError was: \(self.hasError)") print(" > hasError was: \(self.hasError)")

View File

@ -2,6 +2,7 @@ import SwiftUI
struct PostEditorView: View { struct PostEditorView: View {
@EnvironmentObject var model: WriteFreelyModel @EnvironmentObject var model: WriteFreelyModel
@EnvironmentObject var errorHandling: ErrorHandling
@Environment(\.horizontalSizeClass) var horizontalSizeClass @Environment(\.horizontalSizeClass) var horizontalSizeClass
@Environment(\.managedObjectContext) var moc @Environment(\.managedObjectContext) var moc
@Environment(\.presentationMode) var presentationMode @Environment(\.presentationMode) var presentationMode
@ -40,6 +41,7 @@ struct PostEditorView: View {
updatingTitleFromServer: $updatingTitleFromServer, updatingTitleFromServer: $updatingTitleFromServer,
updatingBodyFromServer: $updatingBodyFromServer updatingBodyFromServer: $updatingBodyFromServer
) )
.withErrorHandling()
} }
.navigationBarTitleDisplayMode(.inline) .navigationBarTitleDisplayMode(.inline)
.padding() .padding()
@ -101,11 +103,6 @@ struct PostEditorView: View {
}) })
.accessibilityHint(Text("Open the system share sheet to share a link to this post")) .accessibilityHint(Text("Open the system share sheet to share a link to this post"))
.disabled(post.postId == nil) .disabled(post.postId == nil)
// Button(action: {
// print("Tapped 'Delete...' button")
// }, label: {
// Label("Delete", systemImage: "trash")
// })
if model.account.isLoggedIn && post.status != PostStatus.local.rawValue { if model.account.isLoggedIn && post.status != PostStatus.local.rawValue {
Section(header: Text("Move To Collection")) { Section(header: Text("Move To Collection")) {
Label("Move to:", systemImage: "arrowshape.zigzag.right") Label("Move to:", systemImage: "arrowshape.zigzag.right")
@ -171,6 +168,16 @@ struct PostEditorView: View {
self.model.editor.clearLastDraft() self.model.editor.clearLastDraft()
} }
}) })
.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: { .onDisappear(perform: {
self.model.editor.clearLastDraft() self.model.editor.clearLastDraft()
if post.title.count == 0 if post.title.count == 0