Skip to content

Commit d2e91b7

Browse files
committed
Check experimental toggle instead of feature flag for order creation
1 parent 1067d97 commit d2e91b7

File tree

1 file changed

+24
-7
lines changed

1 file changed

+24
-7
lines changed

WooCommerce/Classes/ViewRelated/Orders/OrdersRootViewController.swift

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,15 +108,14 @@ private extension OrdersRootViewController {
108108
/// Search: Is always present.
109109
/// Simple Payments: Depends on the local feature flag, experimental feature toggle and the inPersonPayments state.
110110
///
111-
func configureNavigationButtons(isSimplePaymentsExperimentalToggleEnabled: Bool) {
112-
let isOrderCreationEnabled = ServiceLocator.featureFlagService.isFeatureFlagEnabled(.orderCreation)
111+
func configureNavigationButtons(isSimplePaymentsExperimentalToggleEnabled: Bool, isOrderCreationExperimentalToggleEnabled: Bool) {
113112
let shouldShowSimplePaymentsButton: Bool = {
114113
let isInPersonPaymentsConfigured = inPersonPaymentsUseCase.state == .completed
115114
return isSimplePaymentsExperimentalToggleEnabled && isInPersonPaymentsConfigured
116115
}()
117116
let buttons: [UIBarButtonItem?] = [
118117
ordersViewController.createSearchBarButtonItem(),
119-
ordersViewController.createAddOrderItem(isOrderCreationEnabled: isOrderCreationEnabled,
118+
ordersViewController.createAddOrderItem(isOrderCreationEnabled: isOrderCreationExperimentalToggleEnabled,
120119
shouldShowSimplePaymentsButton: shouldShowSimplePaymentsButton)
121120
]
122121
navigationItem.rightBarButtonItems = buttons.compactMap { $0 }
@@ -164,11 +163,29 @@ private extension OrdersRootViewController {
164163
/// Fetches the latest value of the SimplePayments experimental feature toggle and re configures navigation buttons.
165164
///
166165
func fetchSimplePaymentsExperimentalToggleAndConfigureNavigationButtons() {
167-
let action = AppSettingsAction.loadSimplePaymentsSwitchState { [weak self] result in
168-
let isEnabled = (try? result.get()) ?? false
169-
self?.configureNavigationButtons(isSimplePaymentsExperimentalToggleEnabled: isEnabled)
166+
let group = DispatchGroup()
167+
168+
var isSimplePaymentsEnabled = false
169+
var isOrderCreationEnabled = false
170+
171+
group.enter()
172+
let simplePaymentsAction = AppSettingsAction.loadSimplePaymentsSwitchState { result in
173+
isSimplePaymentsEnabled = (try? result.get()) ?? false
174+
group.leave()
175+
}
176+
ServiceLocator.stores.dispatch(simplePaymentsAction)
177+
178+
group.enter()
179+
let orderCreationAction = AppSettingsAction.loadOrderCreationSwitchState { result in
180+
isOrderCreationEnabled = (try? result.get()) ?? false
181+
group.leave()
182+
}
183+
ServiceLocator.stores.dispatch(orderCreationAction)
184+
185+
group.notify(queue: .main) { [weak self] in
186+
self?.configureNavigationButtons(isSimplePaymentsExperimentalToggleEnabled: isSimplePaymentsEnabled,
187+
isOrderCreationExperimentalToggleEnabled: isOrderCreationEnabled)
170188
}
171-
ServiceLocator.stores.dispatch(action)
172189
}
173190
}
174191

0 commit comments

Comments
 (0)