Skip to content

Commit 552b0cc

Browse files
committed
Show flow-specific sync error notices in order form
1 parent 6dcf2c1 commit 552b0cc

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

WooCommerce/Classes/ViewRelated/Orders/Order Creation/EditableOrderViewModel.swift

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -575,7 +575,7 @@ private extension EditableOrderViewModel {
575575
case .error(let error):
576576
DDLogError("⛔️ Error syncing order remotely: \(error)")
577577
self.trackSyncOrderFailure(error: error)
578-
return NoticeFactory.syncOrderErrorNotice(error, with: self.orderSynchronizer)
578+
return NoticeFactory.syncOrderErrorNotice(error, flow: self.flow, with: self.orderSynchronizer)
579579
default:
580580
return nil
581581
}
@@ -869,11 +869,20 @@ extension EditableOrderViewModel {
869869

870870
/// Returns an order sync error notice.
871871
///
872-
static func syncOrderErrorNotice(_ error: Error, with orderSynchronizer: OrderSynchronizer) -> Notice {
872+
static func syncOrderErrorNotice(_ error: Error, flow: Flow, with orderSynchronizer: OrderSynchronizer) -> Notice {
873873
guard !isEmailError(error, order: orderSynchronizer.order) else {
874874
return Notice(title: Localization.invalidBillingParameters, message: Localization.invalidBillingSuggestion, feedbackType: .error)
875875
}
876-
return Notice(title: Localization.errorMessageOrderSync, feedbackType: .error, actionTitle: Localization.retryOrderSync) {
876+
877+
let errorMessage: String
878+
switch flow {
879+
case .creation:
880+
errorMessage = Localization.errorMessageNewOrderSync
881+
case .editing:
882+
errorMessage = Localization.errorMessageEditOrderSync
883+
}
884+
885+
return Notice(title: errorMessage, feedbackType: .error, actionTitle: Localization.retryOrderSync) {
877886
orderSynchronizer.retryTrigger.send()
878887
}
879888
}
@@ -896,9 +905,13 @@ private extension EditableOrderViewModel {
896905
enum Localization {
897906
static let titleForNewOrder = NSLocalizedString("New Order", comment: "Title for the order creation screen")
898907
static let titleWithOrderNumber = NSLocalizedString("Order #%1$@", comment: "Order number title. Parameters: %1$@ - order number")
899-
static let errorMessageOrderCreation = NSLocalizedString("Unable to create new order", comment: "Notice displayed when order creation fails")
900-
static let errorMessageOrderSync = NSLocalizedString("Unable to load taxes for order",
901-
comment: "Notice displayed when data cannot be synced for new or edited order")
908+
static let errorMessageOrderCreation = NSLocalizedString("Unable to create new order",
909+
comment: "Notice displayed when order creation fails")
910+
static let errorMessageNewOrderSync = NSLocalizedString("Unable to load taxes for order",
911+
comment: "Notice displayed when data cannot be synced for new order")
912+
static let errorMessageEditOrderSync = NSLocalizedString("Unable to save changes. Please try again.",
913+
comment: "Notice displayed when data cannot be synced for edited order")
914+
902915
static let retryOrderSync = NSLocalizedString("Retry", comment: "Action button to retry syncing the draft order")
903916

904917
static let invalidBillingParameters =

0 commit comments

Comments
 (0)