diff --git a/apple/OmnivoreKit/Sources/App/AppExtensions/Share/ShareExtensionScene.swift b/apple/OmnivoreKit/Sources/App/AppExtensions/Share/ShareExtensionScene.swift index a51dbb871..b525b5a97 100644 --- a/apple/OmnivoreKit/Sources/App/AppExtensions/Share/ShareExtensionScene.swift +++ b/apple/OmnivoreKit/Sources/App/AppExtensions/Share/ShareExtensionScene.swift @@ -22,7 +22,7 @@ public extension PlatformViewController { final class ShareExtensionViewModel: ObservableObject { @Published var title: String? - @Published var status = ShareExtensionStatus.successfullySaved + @Published var status = ShareExtensionStatus.processing @Published var debugText: String? var subscriptions = Set() @@ -75,7 +75,7 @@ final class ShareExtensionViewModel: ObservableObject { self?.debugText = "saveArticleError: \(error)" self?.status = .failed(error: error) } receiveValue: { [weak self] _ in - self?.status = .successfullySaved + self?.status = .success } .store(in: &subscriptions) diff --git a/apple/OmnivoreKit/Sources/Views/LocalText.swift b/apple/OmnivoreKit/Sources/Views/LocalText.swift index 3e7b9d015..861532879 100644 --- a/apple/OmnivoreKit/Sources/Views/LocalText.swift +++ b/apple/OmnivoreKit/Sources/Views/LocalText.swift @@ -13,7 +13,6 @@ public enum LocalText { static let networkError = localText(key: "error.network") static let genericError = localText(key: "error.generic") static let invalidCredsLoginError = localText(key: "loginError.invalidCreds") - static let saveArticleSavingState = localText(key: "saveArticleSavingState") static let saveArticleSavedState = localText(key: "saveArticleSavedState") static let saveArticleProcessingState = localText(key: "saveArticleProcessingState") static let extensionAppUnauthorized = localText(key: "extensionAppUnauthorized") diff --git a/apple/OmnivoreKit/Sources/Views/ShareExtensionView.swift b/apple/OmnivoreKit/Sources/Views/ShareExtensionView.swift index 7dd30d07f..44109b86f 100644 --- a/apple/OmnivoreKit/Sources/Views/ShareExtensionView.swift +++ b/apple/OmnivoreKit/Sources/Views/ShareExtensionView.swift @@ -3,16 +3,13 @@ import SwiftUI import Utils public enum ShareExtensionStatus { - case saving case processing - case successfullySaved + case success case failed(error: SaveArticleError) var displayMessage: String { switch self { - case .saving: - return LocalText.saveArticleSavingState - case .successfullySaved: + case .success: return LocalText.saveArticleSavedState case let .failed(error: error): return error.displayMessage @@ -111,22 +108,6 @@ public struct ShareExtensionChildView: View { @State var reminderTime: ReminderTime? @State var hideUntilReminded = false - @State var readNowPending = false - - private func waitForReadNow() { - readNowPending = true - - DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(300)) { - switch status { - case .successfullySaved: - readNowButtonAction() - case .failed(error: _): - readNowPending = false - case .saving, .processing: - waitForReadNow() - } - } - } private func handleReminderTimeSelection(_ selectedTime: ReminderTime) { if selectedTime == reminderTime { @@ -156,7 +137,7 @@ public struct ShareExtensionChildView: View { Spacer() - if case ShareExtensionStatus.successfullySaved = status { + if case ShareExtensionStatus.success = status { HStack(spacing: 4) { Text("Saved to Omnivore") .font(.appTitleThree) @@ -222,25 +203,17 @@ public struct ShareExtensionChildView: View { .padding(.horizontal) HStack { - if case ShareExtensionStatus.successfullySaved = status { + if case ShareExtensionStatus.success = status { Button( - action: { - if case ShareExtensionStatus.successfullySaved = status { - readNowButtonAction() - } else { - waitForReadNow() - } - }, - label: { - if readNowPending { - ProgressView().frame(maxWidth: .infinity) - } else { - Text("Read Now").frame(maxWidth: .infinity) - } - } + action: { readNowButtonAction() }, + label: { Text("Read Now").frame(maxWidth: .infinity) } ) .buttonStyle(RoundedRectButtonStyle()) } + if case ShareExtensionStatus.processing = status { + Button(action: {}, label: { ProgressView().frame(maxWidth: .infinity) }) + .buttonStyle(RoundedRectButtonStyle()) + } Button( action: { dismissButtonTappedAction(reminderTime, hideUntilReminded)