feat: [CFI] Allow Multi-Line Row Wrapping in Expense Previews (Classic Parity)#82967
Conversation
|
@dannymcclain @hoangzinh One of you needs to 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] |
|
@dannymcclain @dangrous One of you needs to 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!
|
dangrous
left a comment
There was a problem hiding this comment.
generally code looks good, will hold on real review until design takes a look!
|
Let us know when it's ready for design review and we can spin up an ad hoc build 🚀 |
|
Will run a quick build 🚀 |
|
🚧 @shawnborton has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
Agree 🤝 |
|
@TaduJR Can you also add multi-line for report title? |
|
Should we also add two line support for long-workspace names? Screen.Recording.2026-02-25.at.11.05.58.in.the.morning.mov |
This comment was marked as off-topic.
This comment was marked as off-topic.
@TaduJR To/From is out of scope for now (ref #81419 (comment)) |
Ahh forgot that. Thanks @hoangzinh! So only workspaces needs confirmation. |
I would say no, because we are showing the avatar. So let's treat it like From/To. cc @Expensify/design for viz. |
|
@TaduJR The code looks good to me. However, I found a small bug: when hovering over a long tax rate, it doesn't display a tooltip. Screen.Recording.2026-02-26.at.08.26.12.mov |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2026-02-26.at.08.41.04.movAndroid: mWeb ChromeScreen.Recording.2026-02-26.at.08.42.57.moviOS: HybridAppScreen.Recording.2026-02-26.at.08.49.57.moviOS: mWeb SafariScreen.Recording.2026-02-26.at.08.51.44.movMacOS: Chrome / SafariScreen.Recording.2026-02-27.at.15.28.15.mov |
@TaduJR when you say "Expenses page", do you mean "Reports -> Expenses"? Also for "Navigate to Reports". |
Yes, I clarified it. |
Hmm It's working on my side. You are still able to repo Mac-Chrome.mp4 |
|
|
4a75645 to
c10ecf1
Compare
@TaduJR no I couldn't. It seems an issue on my local. All works for me now. |
|
🚧 @dangrous 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/dangrous in version: 9.3.28-0 🚀
|
|
Deploy Blocker #83987 was identified to be related to this PR. |
|
Deploy Blocker #83989 was identified to be related to this PR. |
|
Deploy Blocker #84032 was identified to be related to this PR. |
|
🚀 Deployed to staging by https://github.com/dangrous in version: 9.3.30-0 🚀
|
|
🚀 Deployed to production by https://github.com/blimpich in version: 9.3.30-3 🚀
|

Explanation of Change
Expense preview rows in New Expensify truncate merchant, description, category, and tag text after a single line with ellipsis. In Expensify Classic, these fields wrap across multiple lines. This PR adds Classic Parity by allowing up to 2 lines of text before truncating.
Fixed Issues
$ #81419
PROPOSAL: #81419 (comment)
Tests
Prerequisites:
Expenses page (wide layout):
Expenses page (narrow layout):
6. Resize the browser window to a narrow width
7. Verify that merchant/description, category, and tag text also wraps up to 2 lines before truncating
Report detail view:
8. Navigate to Reports -> Reports and open the report containing the expenses created above
9. Verify that merchant/description, category, and tag text in the expense rows wraps up to 2 lines before truncating
10. Verify that short text that fits on one line displays normally with no extra spacing
Offline tests
Same as tests
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
Same as tests
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand 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