Repository navigation
Conversation
…-report-transactions-a1
|
@codex review |
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ 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". |
|
🤖 Code review: LGTM — the refactor is behavior-neutral, and I verified the empty-state flow on web. The extracted What I checked
🤖 Web test steps verification results: ✅ pass Empty-report view renders correctly on this branch: report fields display at the top with the empty-state card and "Add expense" button below, and adding an expense correctly replaces the empty state with the transaction view. No failed network requests were observed. view run · no recording available |
|
I'll take a look at this one after an hour |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppCleanShot.2026-09-09.at.17.57.39.1.mp4iOS: HybridAppCleanShot.2026-09-09.at.17.47.20.1.mp4MacOS: Chrome / SafariCleanShot.2026-09-09.at.17.43.30.1.mp4 |
suneox
left a comment
There was a problem hiding this comment.
This is a minor component split, performance verification comes with the next PRs
|
🚧 mountiny has triggered a test Expensify/App build. You can view the workflow run here. |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.4.75-0 🚀
|
No help site changes requiredThis PR is a pure internal refactor, so nothing under Why I concluded thisThe diff touches only two files:
The extracted JSX passes the same The help site documents what users see and do. This PR changes none of that:
Articles that describe the empty report experience — such as Create-and-Submit-Reports.md and Managing-Expenses-in-a-Report.md — remain accurate as written. @sosek108, there is no linked help site PR to review, because this refactor does not change anything a help article describes. If a later PR in this 10-PR stack changes user-facing copy or behavior, tag me on that PR and I will draft the docs update then. |
|
🚀 Deployed to production by https://github.com/mountiny in version: 9.4.75-3 🚀
Bundle Size Analysis (Sentry): |
|
🚀 Deployed to production by https://github.com/mountiny in version: 9.4.75-3 🚀
Bundle Size Analysis (Sentry): |





Explanation of Change
Pure refactor — no behavior change.
This is PR 2 of a 10-PR stack decomposing the MoneyRequestReport list components (
MoneyRequestReportActionsList/MoneyRequestReportTransactionList) into focused hooks and presentational sub-components.This slice extracts the empty-state branch of
MoneyRequestReportActionsListinto a dedicated presentational component:src/components/MoneyRequestReportView/MoneyRequestReportEmptyStateView.tsx— renders the report fields plus the empty-state card inside aScrollView, shown when the report has no transactions and no comments.src/components/MoneyRequestReportView/MoneyRequestReportActionsList.tsx— the inlineScrollView/MoneyRequestViewReportFields/SearchMoneyRequestReportEmptyStatebranch is replaced with the new component; the now-unused imports are removed.This PR alone does not aim to improve performance. I've run performance tests and confirm that there is no regression:
Fixed Issues
$ #99919
PROPOSAL:
Tests
npx jest tests/ui/MoneyRequestReportActionsListRejectModalTest.tsxand verify it passesOffline tests
Same as Tests — the empty-state view is purely presentational and renders identically offline.
QA Steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, 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.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: mWeb Chrome
iOS: Native
Nagranie.z.ekranu.2026-09-9.o.09.23.32.mov
iOS: mWeb Safari
MacOS: Chrome / Safari
Nagranie.z.ekranu.2026-09-9.o.09.27.30.mov