Show the travel card icon for other members' travel expenses#95320
Conversation
…ed-country # Conflicts: # src/components/TransactionItemRow/DataCells/TypeCell.tsx
|
@ChavdaSachin 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] |
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
🚧 blimpich has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚧 rlinoz 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! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/rlinoz in version: 9.4.33-0 🚀
|
|
🤖 No help site changes required — I did not create a docs PR. Why: This PR is an internal icon/name-rendering bug fix. It makes the travel card icon (and the localized "Travel invoicing" card-name column) show correctly for another member's travel expenses in Search by keying on the new I reviewed If you believe a specific article should cover travel card expenses in Search and want me to draft one, reply with the article path (or a description of what it should say) and I'll create the draft PR. @allgandalf, please confirm you agree no help site changes are needed here. If you'd like docs coverage anyway, let me know and I'll open a draft PR. |
|
@blimpich @rlinoz travel_invoice.mp4
|
|
Hi @allgandalf. We're trying to follow the QA steps, but we're unable to create a Travel card expense to verify the expected behavior. We enabled Travel invoicing, added a bank account, and booked travel with the Travel card, but the expense never appeared—it stayed in the Processing state on the Travel page. We also tried booking travel from another workspace member's account, but that created a regular expense with the Cash icon instead of a Travel icon. Could you clarify the correct workflow for creating a Travel card expense for this test? Are there any additional setup steps or requirements that aren't included in the QA steps? Or can you check this internally?
travel_invoice.mp4 |
|
I think we are good Screen.Recording.2026-07-13.at.10.34.53.mov |
|
I can also verify this works on staging 👍 |



Explanation of Change
The travel card icon only showed for your own travel expenses.
TypeCellderived it fromisTravelCard(card), andcardcomes from your own card list (cardListin Onyx), so another member's travel card resolved toundefinedand fell back to the generic Expensify Card icon. The card name column worked for everyone because that string is resolved on the backend and ships on the transaction.The backend now sends
feedCountryon the transaction, so this keys the icon ontransaction.feedCountry === CONST.TRAVEL.PROGRAM_TRAVEL_USand keepsisTravelCard(card)as a fallback for old cached transactions that predate the field. The icon fix lives inTypeCell, so it covers every surface that renders it (search, report view, unreported expenses, duplicate/merge, recently added). Also keyed the card name column onfeedCountryso another member's travel expense shows the localized name, not just the fixed backend string.Depends on the backend change that adds
feedCountryto the flat search response.Fixed Issues
$ #95078
PROPOSAL:
Tests
Offline tests
feedCountryon the cached transaction, no network call)QA Steps
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.