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
if let error = error {
print("⚠️", error)
if error != nil {
self.isShowingAlert = true
}

View File

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

View File

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