Replace popover menu with scrollable tabs on Reports screen#84036
Replace popover menu with scrollable tabs on Reports screen#84036GCyganek wants to merge 46 commits intoExpensify:mainfrom
Conversation
Rename the custom history action from SET_HISTORY_PARAM to PUSH_PARAMS to better reflect its purpose: pushing a route snapshot onto the history stack when params change, enabling back-navigation through param changes without extra routes. Simplify the history entries to store full route snapshots instead of string keys, and remove the unused getId prop from SearchFullscreenNavigator.
|
🚧 @JmillsExpensify has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
|
Tried to take this for a spin but having trouble with the adhocs on my phone. Going to reach out to Vit. |
|
Definitely feels a lot cleaner taking it for an early spin! Couple of initial notes:
|
|
Also, we need to talk about that large search input. It's hard for me to overlook it, and I think it's really getting in the way (for not a lot of gain, activity-wise). |
|
🚧 @mountiny has triggered a test Expensify/App build. You can view the workflow run here. |
|
🚧 @mountiny 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! 🧪🧪
|
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
Ok, so I took the latest adhoc for a test run. I take back what I said about the search input. Like I don't necessarily love it, but I think that I can live with it. That "exposed" First, I land on Reports, see a
Next, I go to Even the search results feel confusing (especially with no indication that I'm on a search results page). Now now top tabs are selected but I'm on `Type: Expense". Now the core functionality works great! I didn't experience any issues. And this does improve on what we have. So I think the decision ahead of us is whether we go with this now, or if we wait for some of @dubielzyk-expensify's upcoming filter changes first. After all, in those discussions we've discussed several times not showing the |
Good catch, will fix that! Edit: Fixed
Will something like this work? This is selected, hovered and inactive state (EDIT: added):
|
That works for me.
Could we launch the overflow menu if we long press the tab? |
Yeah, should be doable, working on it... |
|
Done: Screen.Recording.2026-03-11.at.15.19.00.mov |
|
Nice, that looks good to me |
|
Are all bugs fixed? |
@aimane-chnaif are you able to reproduce this now? I've just tried a few times and it works as on production. Other than this, I think I fixed everything Also, big kudos to you for catching all these things! |
|
Please merge main |
|
Conflicts! |
Here's repro step:
Screen.Recording.2026-03-11.at.3.14.02.pm.mov |
True, will update |
Thank you, I think it works the same as on production (tested on main branch here): Screen.Recording.2026-03-11.at.16.36.37.movEven if we would want to have the same behaviour on both (reset to Expense), I'm not sure if it's worth the effort considering the rarity of this scenario 🤔 |
Agree. "Secondary device" is edge case. |
Should be fixed now Screen.Recording.2026-03-11.at.17.02.07.mov |
|
Bug: animation glitch in navigation transition. Blank screen briefly appears Screen.Recording.2026-03-11.at.4.15.15.pm.mov |
|
Bug: offline feedback reverted after renaming saved search offline and switching tabs Screen.Recording.2026-03-11.at.4.19.58.pm.mov |
Just tested with main branch and it works the same so there is no regression on this PR: Screen.Recording.2026-03-11.at.17.34.43.movI'm done for the day, so will check remaining bugs first thing tomorrow morning |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 166ccbdde8
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
|
Back on it, will fix conflicts, answer ai comments and check the last bug |
Fixed: Screen.Recording.2026-03-12.at.17.07.03.mov |
|
@aimane-chnaif ready! |





Explanation of Change
Replacing popover menu with scrollable tabs row displayed above the search input on the Reports page
Fixed Issues
$ #82231
PROPOSAL: N/A
Tests
On narrow screen open Reports screen:
Search for somethinginputSearch for somethinginput with all search types that were in the removed popover menuOffline 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))npm run compress-svg)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-04.at.10.19.35.mov
Android: mWeb Chrome
iOS: Native
Screen.Recording.2026-03-04.at.10.34.10.mov
iOS: mWeb Safari
MacOS: Chrome / Safari
safari:
Screen.Recording.2026-03-04.at.10.35.10.mov
edge:
Screen.Recording.2026-03-04.at.10.18.57.mov
Screen.Recording.2026-03-06.at.10.36.23.mov