-
Notifications
You must be signed in to change notification settings - Fork 130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Product Details] Fix failure when trashing a new duplicated product #12818
Conversation
📲 You can test the changes from this Pull Request in WooCommerce-Wear Android by scanning the QR code below to install the corresponding build.
|
📲 You can test the changes from this Pull Request in WooCommerce Android by scanning the QR code below to install the corresponding build.
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## trunk #12818 +/- ##
=========================================
Coverage 40.86% 40.87%
- Complexity 5771 5772 +1
=========================================
Files 1237 1237
Lines 69861 69861
Branches 9708 9708
=========================================
+ Hits 28552 28553 +1
Misses 38677 38677
+ Partials 2632 2631 -1 ☔ View full report in Codecov by Sentry. |
Summary
Fix issue #12766 by making sure that when the Product Details call itself again, the back stack always targets the products list.
Currently, the Product Details screen has a single scenario where it calls itself: during a product duplication. However, this creates an issue with trashing.
The app delegates the trashing operation of a product to the Product list screen. When a product is trashed, the Product Details screen is dismissed, and the Product List screen is notified to trash that product. But when it's about a duplicated product, the trashing operation wasn't returning to the Product list screen, but to the original Product Details screen, which doesn't know how to trash a product.
To fix this, a specific handling was introduced: when the Product Details call itself, it will keep targeting the Product List as the screen to pop up from the back stack.
Screen Capture
Screen_recording_20241025_010606.mp4
How to Test
Since this is primarily a navigation logic change, adding unit tests to it is impossible. So, I'm keeping here the flow difference between the original and adjusted flows.
Original flow
Start point: Product List Screen
-> Selecting a Product in the list navigates to
-> Product Details Screen (Original product)
-> Duplication event navigates to
-> Product Details Screen (Duplicated Product)
-> Trashing the Duplicated navigates to
-> Product Details Screen (Original product)
Adjusted flow
Start point: Product List Screen
-> Selecting a Product in the list navigates to
-> Product Details Screen (Original product)
-> Duplication event navigates to
-> Product Details Screen (Duplicated Product)
-> Trashing the Duplicated navigates to
-> Product List Screen
Update release notes:
RELEASE-NOTES.txt
if necessary.Reviewer (or Author, in the case of optional code reviews):
Please make sure these conditions are met before approving the PR, or request changes if the PR needs improvement: