You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Due for payment 2026-10-02] Invoice opened from Spend renders in narrow RHP instead of wide RHP #102008
Open the parent invoice chat and click the invoice report preview.
Observe the invoice view again.
Expected Result: The invoice renders the same way regardless of where it's opened from.
Actual Result: Opened from Spend, the invoice renders in a narrow RHP and looks partially loaded. Opened from the invoice chat, it renders correctly as a wide RHP.
Root cause: Clicking a Spend row opens the Search report RHP at search/view/<reportID>. In src/pages/inbox/WideRHPReceiptPanel.tsx:69-75, shouldShowWideRHP only matches report?.type === CONST.REPORT.TYPE.EXPENSE or IOU, so an invoice report falls through and rhpWidth stays narrow.
Going via the invoice chat opens e/<reportID>?backTo=..., which renders through src/pages/inbox/ReportScreen.tsx:150 as an expense report route, which is why that path gets the wide layout.
Proposed fix: Include invoice reports in shouldShowWideRHP — for example add report?.type === CONST.REPORT.TYPE.INVOICE. Note isInvoiceReport is already imported and used at line 65 for isMoneyRequestOrInvoiceReport, so the multi-transaction super-wide branch already handles invoices; only the single-transaction wide branch misses them.
Platforms: Web (wide RHP is desktop-only).
Screenshots of the partially loaded vs. correctly loaded invoice are in the Slack thread and should be added as a comment here.
Proposed fix: Include invoice reports in shouldShowWideRHP — for example add report?.type === CONST.REPORT.TYPE.INVOICE. Note isInvoiceReport is already imported and used at line 65 for isMoneyRequestOrInvoiceReport, so the multi-transaction super-wide branch already handles invoices; only the single-transaction wide branch misses them.
Please mark it as "Ready for review" when it is ready for review.
What changed: one line in src/pages/inbox/WideRHPReceiptPanel.tsx:75 — shouldShowWideRHP now also matches report?.type === CONST.REPORT.TYPE.INVOICE, so a single-transaction invoice opened from Search gets rhpWidth = 'wide' instead of falling through to narrow. The multi-transaction super-wide branch was already correct via isMoneyRequestOrInvoiceReport, so it is untouched.
⚠️ Not verified in a browser. Browser control was unavailable in this run, so the layout change is confirmed only by static analysis and local checks. The PR body has suggested test steps — please run them before marking it ready.
npm run react-compiler-compliance-check check src/pages/inbox/WideRHPReceiptPanel.tsx
✅ Pass
npm test -- tests/unit/calculateSuperWideRHPWidthTest.ts
✅ Pass (4/4)
npm run prettier
⚠️ Not run — the repo has no prettier config or prettier script; ESLint covers formatting and passed
No test file references WideRHPReceiptPanel, so there was no existing unit test to extend.
Because nkdengineer doesn't have push access to Expensify/App and I can't push to your fork, the branch lives on upstream. Instructions for moving it to your fork are in a comment on the PR.
changed the title [-]Invoice opened from Spend renders in narrow RHP instead of wide RHP[/-][+][Due for payment 2026-10-02] Invoice opened from Spend renders in narrow RHP instead of wide RHP[/+]on Sep 25, 2026
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.4.93-3 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2026-10-02. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the Contributor+ Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]
[Contributor] The offending PR and associated issue have been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
[Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.
Link to discussion: N/A
[Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.
Regression Test Proposal Template. Needed for all bugs AND new features
Regression Test Proposal
Precondition:
Test:
On a wide screen (web), go to Spend and filter to type:invoice.
Click an invoice row.
Verify the invoice opens in a wide RHP and renders fully.
Open the parent invoice chat and click the invoice report preview.
Verify the invoice renders the same way as in step 3.
Activity
nkdengineer commentedon Sep 23, 2026
@MelvinBot Implement the quoted solution.
MelvinBot commentedon Sep 23, 2026
🤖 Draft PR created: Render invoice reports in wide RHP when opened from Search
Please mark it as "Ready for review" when it is ready for review.
What changed: one line in
src/pages/inbox/WideRHPReceiptPanel.tsx:75—shouldShowWideRHPnow also matchesreport?.type === CONST.REPORT.TYPE.INVOICE, so a single-transaction invoice opened from Search getsrhpWidth = 'wide'instead of falling through tonarrow. The multi-transactionsuper-widebranch was already correct viaisMoneyRequestOrInvoiceReport, so it is untouched.Local checks run on the branch
npx eslint src/pages/inbox/WideRHPReceiptPanel.tsxnpm run typechecknpm run react-compiler-compliance-check check src/pages/inbox/WideRHPReceiptPanel.tsxnpm test -- tests/unit/calculateSuperWideRHPWidthTest.tsnpm run prettierprettierscript; ESLint covers formatting and passedNo test file references
WideRHPReceiptPanel, so there was no existing unit test to extend.Because
nkdengineerdoesn't have push access toExpensify/Appand I can't push to your fork, the branch lives on upstream. Instructions for moving it to your fork are in a comment on the PR.melvin-bot commentedon Sep 23, 2026
Unable to auto-create job on Upwork. The BZ team member should create it manually for this issue.
[-]Invoice opened from Spend renders in narrow RHP instead of wide RHP[/-][+][Due for payment 2026-10-02] Invoice opened from Spend renders in narrow RHP instead of wide RHP[/+]melvin-bot commentedon Sep 25, 2026
@nkdengineer
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.4.93-3 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2026-10-02. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the Contributor+ Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]
4 remaining items
melvin-bot commentedon Sep 30, 2026
Triggered auto assignment to @mallenexpensify (
Awaiting Payment)melvin-bot commentedon Oct 1, 2026
Payment Summary
Resolving PRs:
Render invoice reports in wide RHP when opened from Search #102015
Contributor: @WojtekBoman does not require payment (Contractor)
Reviewer: @nkdengineer owed $175 via NewDot
BugZero Checklist (@mallenexpensify)
mallenexpensify commentedon Oct 3, 2026
Payment Summary
Contributor+: @nkdengineer due $175 via NewDot
@nkdengineer plz complete the Contributor+ checklist and tag me in a post once you have. Thx
nkdengineer commentedon Oct 7, 2026
Contributor+ Checklist:
[Contributor] The offending PR and associated issue have been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to the comment on the PR: https://github.com/Expensify/App/pull/69875/changes#r4204449169
[Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.
Link to discussion: N/A
[Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.
Regression Test Proposal Template. Needed for all bugs AND new features
Regression Test Proposal
Precondition:
Test:
Do we agree 👍 or 👎
nkdengineer commentedon Oct 7, 2026
@mallenexpensify I completed the BZ checklist.
twisterdotcom commentedon Oct 30, 2026
$175 approved for @nkdengineer in Report ID: R00AEZwhfU8x.
Zapier Logs
Run ID: 00040eee-af2c-aa27-9eac-0adc874577f4SO: https://stackoverflowteams.com/c/expensify/questions/7582