OBLS-837 Fix discrete picking QA findings - #441
Open
olewandowski1 wants to merge 1 commit into
Open
Conversation
Index product codes so search by code works, return the picker to the screen the session started from instead of the batch pick type screen, reset the stack on completion so the finished task is no longer reachable with the back arrow, and show a single loading indicator per state. Consume the order level pick progress from the pick task API so a partially picked order reads In progress with the lines left to pick.
There was a problem hiding this comment.
Pull request overview
This PR addresses QA findings in the mobile discrete picking flow by improving discrete order search/indexing, fixing end-of-session navigation so pickers return to the correct “home” screen, and refining loading/progress UI on the discrete picking list.
Changes:
- Added order-level progress fields and status codes to picking types, and used them to show per-order progress (e.g., “Lines: 4 / 5 Left”) and “In progress” status.
- Introduced a session entry-point concept (
BATCHvsDISCRETE) to consistently navigate back to the correct screen when a picking session ends. - Improved discrete picking list loading UX (separate first-load skeleton, pull-to-refresh spinner, search refresh spinner suppression when starting an order) and expanded search indexing to include product codes.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/types/picking.ts | Adds order-level progress fields and status codes; updates discrete order shape to include open line counts and improved search index semantics. |
| src/screens/Picking/PickingPickStagingLocationScreen.tsx | Resets navigation to the correct session home route when staging completes or no tasks remain. |
| src/screens/Picking/PickingPickQuantityScreen.tsx | Updates flow helper invocation to include homeRoute for correct end-of-session navigation reset. |
| src/screens/Picking/PickingPickOutboundContainerScreen.tsx | Updates post-pick flow navigation to include homeRoute, aligning end-of-session behavior across entry points. |
| src/screens/Picking/PickingPickLocationScreen.tsx | Resets navigation stack on reallocation to avoid leaving completed task screens reachable via back navigation. |
| src/screens/Picking/PickingContext.tsx | Tracks picking session entry point and derives a homeRoute used to return pickers to the correct screen. |
| src/screens/Picking/lib.ts | Refactors flow helpers to reset to homeRoute (vs hardcoding Pick Type) and centralizes short-pick-without-reason navigation behavior. |
| src/screens/Picking/discretePickingStyles.ts | Adjusts layout spacing for the “Show Assigned Orders” toggle positioning. |
| src/screens/Picking/DiscretePickingOrderCard.tsx | Updates order status chip rendering, makes assignee display optional, and shows “Lines left” progress. |
| src/screens/Picking/DiscretePickingListScreen.tsx | Refines loading indicators (first-load skeleton vs pull refresh vs background refresh) and title-cases “Show Assigned Orders”. |
| src/screens/Picking/discretePickingLib.ts | Expands search tokens to include product codes and uses order-level counts/status to compute order progress and “In progress” state. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
80
to
+84
| return Array.from(ordersById.values()).map((order) => { | ||
| const productNames = Array.from(productNamesById.get(order.requisitionId) ?? []); | ||
| order.searchIndex = [order.requisitionNumber, order.destination, ...productNames] | ||
| const returnedTaskCount = returnedTaskCountById.get(order.requisitionId) ?? 0; | ||
| order.taskCount = order.taskCount || returnedTaskCount; | ||
| order.openTaskCount = order.openTaskCount || returnedTaskCount; | ||
|
|
awalkowiak
reviewed
Aug 28, 2026
awalkowiak
left a comment
Contributor
There was a problem hiding this comment.
LGTM, waiting for final approval of backend before merging
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
https://openboxes.atlassian.net/browse/OBLS-837
Summary
Lines: 4 / 5 Left, using the order level progress added in the backend PR.