[Product Details] Fix failure when trashing a new duplicated product #12818
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.txtif 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: