Split the confirmation footer by variants pt2 - #100041
Conversation
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
@codex review |
|
@MelvinBot review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bf73a117e2
ℹ️ 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".
|
🤖 Code review: split the confirmation footer by variants pt2 One thing I'd fix before merge — the amount field's autofocus is silently dropped. Everything else is robustness/style, and I confirmed several things that look risky in the diff are actually fine. 🔴
|
| Step | Status |
|---|---|
| ✅ | |
| ✅ | |
JS console errors/warnings during both flowsNot checkable: the web driver has no console inspection command. No error banners, toasts, or broken screens appeared in either flow, but that is not equivalent to a console check. |
❌ |
Note the smoke test only covers the manual and distance-map variants. Scan, odometer, invoice, and the compact-mode path are untested, and the autofocus regression above would not show up in either flow I ran.
…rs-pt2 # Conflicts: # src/components/MoneyRequestConfirmationList/sections/InvoiceSenderField.tsx
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! 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". |
|
@MelvinBot review |
|
🤖 Code review round 2: split the confirmation footer by variants pt2 No behavior regression found. I traced all eight router branches and every prop each variant threads, and the refactor is equivalent to the old
Two things worth addressing before merge, both about the new structure rather than the behavior it produces. 🟡 The router is the point of this PR and has no test coverage
And all five assertions target the same shared element:
This matters more than usual because this PR deleted a guard rather than moving it. Ask: the harness in that file is already 90% of the work. Parameterize 🟡 The footer shape now hinges on optional
|


Explanation of Change
Refactor with no behavior change.
Follows #99578, which turned
MoneyRequestConfirmationListFooterinto a dispatcher with per-type variants and migrated per-diem and time footers. This one migrates the rest and deletes the fallback.Six new variants:
DistanceMapFooterDistanceManualFooterDistanceOdometerFooterScanFooterManualFooterInvoiceFooterEach renders only the sections its expense type reaches.
Fixed Issues
$ #99449
PROPOSAL: N/A
Tests
This is a refactor with no intended behavior change, so testing is regression-focused: every expense type must render and submit exactly as before.
Please, verify the confirmation page looks and works same way as before in the next scenariosu:
Offline tests
Same, as in Tests section
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
Same, as in Tests section
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
iOS: mWeb Safari
MacOS: Chrome / Safari