[Home Page] Fix recently added bugs#94308
Conversation
The Recently added section called getAmount without the expense-report flag, so amounts were always returned as absolute values. Expense-report transactions store an inverted sign, so credits/refunds lost their negative sign. Resolve the parent report type from the snapshot and pass the expense-report flag, mirroring the Search transaction list.
The Home "Recently added" rows rendered the raw merchant, leaking the PARTIAL_TRANSACTION_MERCHANT "(none)" and DEFAULT_MERCHANT "Expense" placeholder sentinels. Extract the existing merchant-display logic from TransactionItemRow into a shared TransactionUtils.getMerchantName helper that normalizes both sentinels to an empty string, and reuse it in the Recently added data hook so empty merchants render blank.
|
@ZhenjaHorbach 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] |
|
@adamgrzybowski |
Match the Spend table by appending the year to past-year dates and widening the shared date column when any visible expense needs it.
|
@dannymcclain, could you please confirm that this way of displaying the year in the recently added section looks good? I copied it from the spend page |
|
Yup I think that makes sense to copy it from Spend! |
|
Looks like the fix with the amount doesn't work for selfDM 2026-06-23.16.07.33.mov |
Reviewer Checklist
Screenshots/VideosAndroid: HybridApp2026-06-23.16.19.25.movAndroid: mWeb Chrome2026-06-23.16.16.59.moviOS: HybridApp2026-06-23.16.19.25.moviOS: mWeb Safari2026-06-23.16.16.59.movMacOS: Chrome / Safari2026-06-23.16.03.55.mov2026-06-23.16.06.42.mov2026-06-23.16.13.40.mov |
Self-DM and unreported (tracked) expenses support signed amounts like expense reports, but getAmount was called without the tracked-expense flag for them, so their amounts were collapsed to absolute values and credits/refunds lost their negative sign. Detect self-DM (via chatType) and unreported transactions and pass the tracked-expense flag so the sign is preserved. Add unit coverage for the amount sign across self-DM, unreported, expense-report, and IOU transactions.
|
@ZhenjaHorbach nagative amount on personal expenses should be fixed now |
|
Okay |
|
@grgia |
|
@grgia Let's merge this today to prevent merge conflicts |
|
🚧 grgia 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/grgia in version: 9.4.22-1 🚀
|
|
🚀 Deployed to staging by https://github.com/grgia in version: 9.4.24-0 🚀
|
|
🚀 Deployed to production by https://github.com/cristipaval in version: 9.4.24-0 🚀
Bundle Size Analysis (Sentry): |
|
🚀 Deployed to staging by https://github.com/grgia in version: 9.4.24-0 🚀
|

Explanation of Change
Fixed Issues
$ #94249
$ #94250
$ #94251
$ #94272
PROPOSAL:
Tests
Offline tests
QA Steps
https://staging.new.expensify.com/r/<reportID>) as a guest, go to Home, and verify the "Recently added" section is not shown.PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)Avatar, 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
Screen.Recording.2026-06-23.at.15.03.42.mov