Fix: Filter ineligible reports in useOutstandingReports hook#84832
Fix: Filter ineligible reports in useOutstandingReports hook#84832grgia merged 5 commits intoExpensify:mainfrom
Conversation
da1de9d to
291e654
Compare
Move the ineligible report filtering from IOURequestEditReportCommon into the useOutstandingReports hook so both the confirmation page and the report selection list see filtered results. This fixes the original bug (Expensify#70423) while avoiding the deploy blocker (Expensify#81608) that caused the previous fix to be reverted.
291e654 to
df2fba1
Compare
|
cc @mananjadhav |
|
@MelvinBot can u merge to main |
|
I'm not able to merge PRs — that's outside my capabilities. The PR's merge state is currently BLOCKED, which typically means it still needs required reviews or status checks to pass before it can be merged. To merge this PR, you'll need to ensure all required checks pass and the necessary approvals are in place, then merge it manually or have a maintainer do so. |
…le-report-filtering
Replace manual loops with eslint-disable comments by using toCollectionDataSet + Onyx.multiSet for batch merging test data. Also use createRandomTransaction for properly typed transaction objects.
joekaufmanexpensify
left a comment
There was a problem hiding this comment.
Good for product
…le-report-filtering
|
I'll be able to take a look at this tomorrow. |
|
@mananjadhav kind reminder |
|
@codex review |
|
Codex Review: Something went wrong. Try again later by commenting “@codex review”. ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
|
@huult on review |
|
@grgia Do you need me to review this PR? |
|
Ah I see @mananjadhav should be assigned |
|
@mananjadhav what happened here? It's been almost a month?!?! |
|
I can take over as C+ thanks |
|
@grgia Based on this comment #84832 (comment), can I review this PR? |
|
@huult yes, all good |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2026-04-15.at.23.03.44.mp4Android: mWeb ChromeScreen.Recording.2026-04-15.at.23.09.25.mp4iOS: HybridAppScreen.Recording.2026-04-15.at.23.13.56.mp4iOS: mWeb SafariScreen.Recording.2026-04-15.at.23.17.50.mp4MacOS: Chrome / SafariScreen.Recording.2026-04-15.at.22.53.31.mp4 |
|
@abzokhattab Could you please sync with main? |
|
yes sure ... just updated it |
@abzokhattab This explains your changes in this PR. However, I didn’t see any changes in the |
|
yes @huult the wording is not fully accurate, i changed it |
|
Awaiting final C+ review |
|
@grgia I’m reviewing this PR. I need to trace the history to get context 😄 I think I can finish it today or tmr. |
|
@codex review |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@grgia all yours |
|
🚧 @grgia has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |

Explanation of Change
Adds ineligible report filtering logic to the
useOutstandingReportshook. This ensures both consumers of the hook — the confirmation page (MoneyRequestConfirmationListFooter) and the report selection list (IOURequestEditReportCommon) — see filtered results. When all reports are ineligible, the confirmation page correctly disables the Report field instead of opening a blank page.Fixed Issues
$ #70423
Tests
Deploy blocker regression test:
Offline tests
Same as tests
QA Steps
Same as tests
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Screen.Recording.2026-03-13.at.01.55.31.mov
Screen.Recording.2026-03-13.at.01.54.41.mov
Android: mWeb Chrome
Screen.Recording.2026-03-13.at.01.59.31.mov
Screen.Recording.2026-03-13.at.02.00.02.mov
iOS: Native
Screen.Recording.2026-03-13.at.01.55.31.mov
Screen.Recording.2026-03-13.at.01.54.41.mov
iOS: mWeb Safari
Screen.Recording.2026-03-13.at.01.59.31.mov
Screen.Recording.2026-03-13.at.02.00.02.mov
MacOS: Chrome / Safari
Screen.Recording.2026-03-13.at.01.46.58.mov
Screen.Recording.2026-03-13.at.01.50.43.mov