From 52fb0aeaf7cababab2649f9ee0c13c0ddb6241a0 Mon Sep 17 00:00:00 2001 From: Adam Borbas Date: Tue, 4 Nov 2025 15:42:02 +0100 Subject: [PATCH 1/3] Trigger selection change on dismiss --- .../ProductSelector/ProductVariationSelectorView.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/WooCommerce/Classes/ViewRelated/Products/ProductSelector/ProductVariationSelectorView.swift b/WooCommerce/Classes/ViewRelated/Products/ProductSelector/ProductVariationSelectorView.swift index 291bb0bbe7a..3b1f01ead50 100644 --- a/WooCommerce/Classes/ViewRelated/Products/ProductSelector/ProductVariationSelectorView.swift +++ b/WooCommerce/Classes/ViewRelated/Products/ProductSelector/ProductVariationSelectorView.swift @@ -15,6 +15,8 @@ struct ProductVariationSelectorView: View { private let onMultipleSelections: (([Int64]) -> Void)? + @State private var hasSentSelectionOnDismiss = false + /// Tracks the state for the 'Clear Selection' button /// private var isClearSelectionDisabled: Bool { @@ -101,6 +103,11 @@ struct ProductVariationSelectorView: View { .accessibilityLabel(Localization.backButtonAccessibilityLabel) } } + .onDisappear { + guard !hasSentSelectionOnDismiss else { return } + hasSentSelectionOnDismiss = true + onMultipleSelections?(viewModel.selectedProductVariationIDs) + } .onAppear { viewModel.onLoadTrigger.send() } From 84736e7a364bab4abbd3a3a2c4ee8e5cc4081c47 Mon Sep 17 00:00:00 2001 From: Adam Borbas Date: Wed, 5 Nov 2025 13:43:17 +0100 Subject: [PATCH 2/3] Rather use the navigation stack --- .../ViewRelated/Orders/Order Creation/OrderForm.swift | 2 +- .../ProductSelector/ProductSelectorNavigationView.swift | 3 +-- .../ProductSelector/ProductVariationSelectorView.swift | 7 ------- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/WooCommerce/Classes/ViewRelated/Orders/Order Creation/OrderForm.swift b/WooCommerce/Classes/ViewRelated/Orders/Order Creation/OrderForm.swift index 4e0c9e79d32..9c9887f3174 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Order Creation/OrderForm.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Order Creation/OrderForm.swift @@ -139,7 +139,7 @@ struct OrderFormPresentationWrapper: View { }, secondaryView: { isShowingProductSelector in if let productSelectorViewModel = viewModel.productSelectorViewModel { - ProductSelectorView(configuration: .loadConfiguration(for: horizontalSizeClass), + ProductSelectorNavigationView(configuration: .loadConfiguration(for: horizontalSizeClass), isPresented: isShowingProductSelector, viewModel: productSelectorViewModel) .sheet(item: $viewModel.productToConfigureViewModel) { viewModel in diff --git a/WooCommerce/Classes/ViewRelated/Products/ProductSelector/ProductSelectorNavigationView.swift b/WooCommerce/Classes/ViewRelated/Products/ProductSelector/ProductSelectorNavigationView.swift index b114ac00e1b..12fed714f96 100644 --- a/WooCommerce/Classes/ViewRelated/Products/ProductSelector/ProductSelectorNavigationView.swift +++ b/WooCommerce/Classes/ViewRelated/Products/ProductSelector/ProductSelectorNavigationView.swift @@ -15,12 +15,11 @@ struct ProductSelectorNavigationView: View { } var body: some View { - NavigationView { + NavigationStack { ProductSelectorView(configuration: configuration, isPresented: $isPresented, viewModel: viewModel) } - .navigationViewStyle(.stack) .wooNavigationBarStyle() } } diff --git a/WooCommerce/Classes/ViewRelated/Products/ProductSelector/ProductVariationSelectorView.swift b/WooCommerce/Classes/ViewRelated/Products/ProductSelector/ProductVariationSelectorView.swift index 3b1f01ead50..291bb0bbe7a 100644 --- a/WooCommerce/Classes/ViewRelated/Products/ProductSelector/ProductVariationSelectorView.swift +++ b/WooCommerce/Classes/ViewRelated/Products/ProductSelector/ProductVariationSelectorView.swift @@ -15,8 +15,6 @@ struct ProductVariationSelectorView: View { private let onMultipleSelections: (([Int64]) -> Void)? - @State private var hasSentSelectionOnDismiss = false - /// Tracks the state for the 'Clear Selection' button /// private var isClearSelectionDisabled: Bool { @@ -103,11 +101,6 @@ struct ProductVariationSelectorView: View { .accessibilityLabel(Localization.backButtonAccessibilityLabel) } } - .onDisappear { - guard !hasSentSelectionOnDismiss else { return } - hasSentSelectionOnDismiss = true - onMultipleSelections?(viewModel.selectedProductVariationIDs) - } .onAppear { viewModel.onLoadTrigger.send() } From 9c56e1d51b044da4f24b13b7bb9800ac94b4e582 Mon Sep 17 00:00:00 2001 From: Adam Borbas Date: Wed, 5 Nov 2025 14:02:53 +0100 Subject: [PATCH 3/3] Update release notes --- RELEASE-NOTES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 72ec7ed3083..1015402d4d2 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -7,6 +7,7 @@ - [*] Improve card payments onboarding error handling to show network errors correctly [https://github.com/woocommerce/woocommerce-ios/pull/16304] - [*] Authenticate the admin page automatically for sites with SSO enabled in custom fields, in-person payment setup, and editing tax rates flows. [https://github.com/woocommerce/woocommerce-ios/pull/16318] - [*] Show POS feedback surveys for eligible merchants [https://github.com/woocommerce/woocommerce-ios/pull/16325] +- [*] Fix product variation selection for order creation [https://github.com/woocommerce/woocommerce-ios/pull/16317] 23.6 -----