Change Submit button to primary action and make available in the bulk select menu#72941
Change Submit button to primary action and make available in the bulk select menu#72941mjasikowski merged 20 commits intoExpensify:mainfrom
Conversation
|
@hoangzinh Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
Codecov Report❌ Patch coverage is
... and 7 files with indirect coverage changes 🚀 New features to boost your workflow:
|
|
@nkdengineer can you fix failing checks? |
|
Also add recordings for PR, please |
|
Bug 1: It doesn't display "Submit" action for some expenses in Screen.Recording.2025-10-22.at.08.23.54.mov |
|
@nkdengineer can you also fix failing checks? TY |
|
@nkdengineer chances of getting this spruced today? I'd love to get it over the line. |
|
I'll prioritize it today |
|
@hoangzinh I already updated the PR to change the submit icon, lint errors and add the videos.
For this issue, I'm unclear how to reproduce. Can you please give me more information? |
|
Here are the steps @nkdengineer:
Screen.Recording.2025-10-24.at.17.55.48.mov |
|
@nkdengineer any movement here? |
|
@hoangzinh I fixed this issue. |
src/pages/Search/SearchPage.tsx
Outdated
| } | ||
| }); | ||
| // eslint-disable-next-line @typescript-eslint/no-deprecated | ||
| InteractionManager.runAfterInteractions(() => { |
There was a problem hiding this comment.
@nkdengineer, do we really need InteractionManager.runAfterInteractions here?
There was a problem hiding this comment.
I think yes, it was added on purpose here
There was a problem hiding this comment.
It was added since the beginning when they added clearSelectedTransactions. Given InteractionManager will be deprecated soon, can you help to check if we have any bugs without InteractionManager.runAfterInteractions
There was a problem hiding this comment.
@hoangzinh I don't see any issue without InteractionManager.runAfterInteractions. I removed this here.
| !isOffline && | ||
| (selectedReports.length | ||
| ? selectedReports.every((report) => report.allActions.includes(CONST.SEARCH.ACTION_TYPES.SUBMIT)) | ||
| : selectedTransactionsKeys.every((id) => selectedTransactions[id].action === CONST.SEARCH.ACTION_TYPES.SUBMIT)); |
There was a problem hiding this comment.
Do we need to check selectedTransactionsKeys? It seems we don't display "submit" button for a transaction thread report.
There was a problem hiding this comment.
I'm not sure about that, I just did the same as approve.
It seems we don't display "submit" button for a transaction thread report.
I also tried it and see the selectedTransactions[id].action was View, but again I'm not sure if we should remove it.
There was a problem hiding this comment.
Hi @trjExpensify, Given that a money report contains two expenses, I recall that users can only submit the entire money report to the admin for approval — they can’t submit individual expenses within that report, can they?
There was a problem hiding this comment.
Ah whoops, answered below.
Correct, there's no partial Submit button revealed on one of two expenses on a report. If we're talking about the Reports > Expenses page here, then it's only a one-expense report that would have the Submit button. 👍
There was a problem hiding this comment.
Thanks @trjExpensify. Then I think we can remove selectedTransactions code, what do you think? @nkdengineer
There was a problem hiding this comment.
@hoangzinh We still need to check selectedTransactionsKeys. For an expense report with only one transaction, we can see the submit action here. If the report has at least two transactions, it still works correctly since the submit button doesn't appear in each transction item.
Screen.Recording.2025-10-30.at.16.23.36.mov
src/libs/ReportPreviewActionUtils.ts
Outdated
| return true; | ||
| } |
There was a problem hiding this comment.
I missed those lines. Can you check if we can remove those lines? TY
| !isOffline && | ||
| (selectedReports.length | ||
| ? selectedReports.every((report) => report.allActions.includes(CONST.SEARCH.ACTION_TYPES.SUBMIT)) | ||
| : selectedTransactionsKeys.every((id) => selectedTransactions[id].action === CONST.SEARCH.ACTION_TYPES.SUBMIT)); |
There was a problem hiding this comment.
Hi @trjExpensify, Given that a money report contains two expenses, I recall that users can only submit the entire money report to the admin for approval — they can’t submit individual expenses within that report, can they?
|
@trjExpensify I see. I tested this several times, and it looks like the issue is consistently reproducible. @nkdengineer, can you fix this this issue? |
|
@trjExpensify @hoangzinh The row disappeared after the backend response of Screen.Recording.2025-11-04.at.23.10.28.mov |
|
Putting aside 3G to slow it down, I see what you mean. 2025-11-05_14-36-55.mp42025-11-05_14-35-17.mp4So I'm happy as a follow-up to improve across the board. 👍 |
|
@nkdengineer can you fix the conflicts, and @hoangzinh is that it to approve this one? |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2025-11-06.at.18.08.19.android.movAndroid: mWeb ChromeScreen.Recording.2025-11-06.at.18.09.54.android.chrome.moviOS: HybridAppScreen.Recording.2025-11-06.at.22.06.50.moviOS: mWeb SafariScreen.Recording.2025-11-06.at.19.28.04.ios.safari.movMacOS: Chrome / SafariScreen.Recording.2025-11-06.at.17.07.05.web.movMacOS: DesktopScreen.Recording.2025-11-06.at.17.33.11.desktop.mov |
|
@nkdengineer can you update the testing steps? It looks incorrect to me |
|
Bump @nkdengineer let's get this over the line. |
|
@hoangzinh Updated the test step. |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/mjasikowski in version: 9.2.47-0 🚀
|
|
Hello @nkdengineer @trjExpensify , Submit button is not displayed in bulk select menu when offline , is this expected according this comment in original issue ?
Bug6997659_1762570591035.submit_disappear_in_bulk_menu.mp4 |
|
@mitarachim The bulk action on search page doesn't support in offline so it's expected. |
|
🚀 Deployed to production by https://github.com/cristipaval in version: 9.2.47-1 🚀
|



Explanation of Change
Fixed Issues
$ #72083
PROPOSAL: #72083 (comment)
Tests
Preconditions
Workspace is set to automated Delayed Submission frequency (e.g. weekly)
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))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.2025-10-24.at.15.59.13.mov
Android: mWeb Chrome
Screen.Recording.2025-10-24.at.15.54.35.mov
iOS: Native
Screen.Recording.2025-10-24.at.15.58.00.mov
iOS: mWeb Safari
Screen.Recording.2025-10-24.at.15.53.22.mov
MacOS: Chrome / Safari
Screen.Recording.2025-10-24.at.15.49.00.mov
MacOS: Desktop
Screen.Recording.2025-10-24.at.16.00.17.mov