woocommerce-ios
woocommerce-ios copied to clipboard
Order Details: refunded products are not tappable
h/t to @AmandaRiu for noticing this issue!
Describe the bug
In Order Details > Refunded Products, the products in the list are not tappable like in order details and other places in the app.
To Reproduce Steps to reproduce the behavior:
Prerequisite: the site has an order that has at least one refunded product.
- Go to the orders tab
- Tap on an order that has at least one refunded product
- Under "REFUNDED PRODUCTS" section, tap on the "# item(s)" row
- Tap on any product row --> it's no-op
Screenshots

Expected behavior Tapping on a refunded product should open readonly product/variation details like in order details.
Isolating the problem (mark completed items with an [x]):
- [ ] I have deactivated other plugins and confirmed this bug occurs when only WooCommerce plugin is active.
- [ ] This bug happens with a default WordPress theme active, or Storefront.
- [x] I can reproduce this bug consistently using the steps above.
Mobile Environment Please include:
- Device: any
- iOS version: any
- WooCommerce iOS version: any
Some debugging:
From what I gather this seems to come from the difference between how we load the List of products versus the List of refunded products in the Order details screen:
1 - Products: In the OrderDetailsViewModel
, when we tap on any of the products of an Order, tableView(_:didSelectRowAt:)
is called and ProductLoaderViewController
is pushed as the navigation controller with the product details as read-only.
2 - Refunded Products: In this case, all refunded products appear under an unique row (rather than separately), when tableView(_:didSelectRowAt:)
is triggered we push RefundedProductsViewController
instead as navigation controller, and in here or its ViewModel we don't check again for tableView(_:didSelectRowAt:)
so we're not telling the delegate when a row is selected in this screen.