Fix: smooth post-submit navigation and rendering on Spend tab#88728
Fix: smooth post-submit navigation and rendering on Spend tab#88728JakubKorytko wants to merge 6 commits intoExpensify:mainfrom
Conversation
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9415615739
ℹ️ 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".
|
@ShridharGoel 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] |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8b025f5a20
ℹ️ 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".
| // Show skeleton while waiting for the transaction thread report to load after | ||
| // an optimistic expense creation. This prevents the partial "amount with nothing else" | ||
| // flash between the orchestrator skeleton and the fully rendered single-expense view. | ||
| const shouldShowSkeletonForTransactionThread = isWaitingForTransactionThread && !isOffline; |
There was a problem hiding this comment.
Limit transaction-thread skeleton to initial loading window
The new shouldShowSkeletonForTransactionThread branch is active whenever transactionThreadReportID exists but transactionThreadReport is still missing, regardless of whether the initial load phase has ended. If that child report never arrives (for example after a partial/failed data load), shouldShowSkeleton remains true indefinitely and the report stays stuck on a loading skeleton instead of falling back to renderable content. This gate should be bounded to initial-load conditions (or have a timeout/fallback) so one missing subscription does not permanently block the view.
Useful? React with 👍 / 👎.
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2026-04-25.at.2.58.54.AM.movAndroid: mWeb ChromeScreen.Recording.2026-04-25.at.2.51.13.AM.moviOS: HybridAppScreen.Recording.2026-04-25.at.2.22.40.AM.moviOS: mWeb SafariScreen.Recording.2026-04-25.at.2.30.35.AM.movMacOS: Chrome / SafariScreen.Recording.2026-04-25.at.2.12.27.AM.mov |
|
Looks like the new expense highlight doesn't work if we stay on the confirmation page for at least
Screen.Recording.2026-04-25.at.2.13.09.AM.mov |
|
Is the loader at timestamp 0:16 expected? Screen.Recording.2026-04-25.at.2.51.13.AM.mov |
|
Seems like we still have a flicker on the search page.
Screen.Recording.2026-04-25.at.2.58.54.AM.mov |
Explanation of Change
Fix post-expense-submit navigation and visual flickering on the Spend (Search) page.
Four issues addressed:
SEARCH_DISMISS/REPORT_IN_RHP_DISMISSevaluation order so QAB expenses from Search stay on the Spend tab instead of navigating to WS chat (linked issue),DISMISS_MODALdeferred write is pending (raised here),SearchStaticListand the real SearchList by hoisting the static overlay to SearchPage (common ancestor for narrow/wide) so it persists until the real list signals readiness. (raised by @ShridharGoel in slack)DISMISS_MODALdeferred-write channel during the RHP dismiss soMoneyRequestReportActionsListrenders a skeleton while the transaction is being created.Fixed Issues
$ #88664
PROPOSAL: N/A
Tests
Offline tests
N/A
QA Steps
Same as tests, performed on the staging environment.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand 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
Android.mov
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
Web.mov