[Home Page] Extend Your spend to include third-party cards alongside Expensify Cards#91835
Conversation
Merges employer-feed and personal Plaid card rows into the YourSpend hook alongside Expensify cards, tagged with a `YOUR_SPEND_CARD_KIND` discriminator so `CardRow` can pick the right artwork branch (bank icon via `feed|domainID` or bare Plaid feed). Adds a new `getDisplayableThirdPartyCards` selector that filters out broken-feed and broken-connection cards.
|
@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] |
|
🚧 @JmillsExpensify has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
… with tests Clarify the third-party `cardName` fallback in `useYourSpendData` so the space requirement and no-space fall-through behavior are explicit, and add two cases to `lastFourNumbersFromCardName` to lock that behavior in.
|
@grgia done ✅ |
|
Spell check issue 🥲 |
Reviewer Checklist
Screenshots/VideosAndroid: HybridApp2026-05-29.10.41.32.movAndroid: mWeb Chrome2026-05-29.10.38.22.moviOS: HybridApp2026-05-29.10.41.32.moviOS: mWeb Safari2026-05-29.10.38.22.movMacOS: Chrome / Safari2026-05-29.10.35.54.mov |
|
But overall changes look good
|
Use SomeCardName instead of CREDITCARD in the no-space ellipsis test to avoid adding a cspell dictionary entry.
|
TS issues |
| if (!lastFour) { | ||
| return acc; | ||
| } |
| iconProps={iconProps} | ||
| /> | ||
| ); | ||
| } else if (cardRow.fundID !== undefined) { |
There was a problem hiding this comment.
what exactly is this row meant to catch? Should we consider '0'?
is it better to use a util like isPersonalCard(card)
grgia
left a comment
There was a problem hiding this comment.
@adamgrzybowski conflicts. Nothing blocking but minor questions
Keep getCardFeedWithDomainID for third-party card icons while adopting main's useCurrencyListActions for currency formatting.

Explanation of Change
Your spendsection, ordered after Expensify Card rows.CARD_FEED_ERRORS; the whole slot still hides when no rows apply.Fixed Issues
$ #91711
PROPOSAL:
Tests
Offline tests
QA Steps
Recent transactions • [lastFour]row appears inYour spendwith the bank/institution artwork, bold total, and no doughnut. Tap it and verify it opens the matching Spend > Expenses search.Your spendslot is hidden.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: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
Screen.Recording.2026-05-27.at.14.19.38.mov