Fix: Group horizontal scroll sync - #99107
Conversation
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
@cretadn22 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] |
…tself Signed-off-by: krishna2323 <belivethatkg@gmail.com>
… hook Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
@Expensify/design, I'd like your review before moving forward. This isn't a regular scroll issue. The header and children use two separate containers to keep the group header sticky, and the only way I found to fix this is to sync the scroll position between them. The transaction rows own the scroll, and the column header follows them, so they stay aligned, but only the rows show a scrollbar. This also means you can't drag or trackpad-scroll horizontally while hovering over the header row itself, you have to be over the rows. Everything below 1024px and on native is unaffected since the header already lives inside the same scroller as the rows. Let me know if this trade-off is acceptable or if you'd rather I explore something else. Monosnap.screencast.2026-09-08.18-43-57.mp4 |
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Personally that feels fine to me since the transaction rows are the only things that have horizontally scrolling content, but I'd love to get thoughts from the rest of the team as well. |
|
Yeah, that seems to makes sense to me too. |
|
@cretadn22 this is ready for your review. |
|
@cretadn22 friendly bump |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2026-09-10.at.14.03.50.movAndroid: mWeb ChromeScreen.Recording.2026-09-10.at.14.00.33.moviOS: HybridAppScreen.Recording.2026-09-10.at.14.03.05.moviOS: mWeb SafariScreen.Recording.2026-09-10.at.13.58.59.movMacOS: Chrome / SafariScreen.Recording.2026-09-10.at.13.56.34.mov |
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
…nd rows Signed-off-by: krishna2323 <belivethatkg@gmail.com>
…pListItemTest Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
🚧 JS00001 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/JS00001 in version: 9.4.78-0 🚀
|
|
🤖 No help site changes are required for this PR, so I did not create a draft docs PR. Why: This PR only fixes how the grouped Search table renders. It syncs the horizontal scroll offset between a group's sub-header and its expense rows, removes the duplicate scrollbar, and keeps the offset stable when a group is collapsed, re-expanded, or recycled. It changes no feature, setting, label, or user flow that the help site documents. What I checkedThe diff — all 12 changed files are rendering/layout internals plus tests:
No The docs — I searched every article under
Per Since there is no docs PR to link, there is nothing to mark view run · no recording available |
|
🚀 Deployed to production by https://github.com/luacmartins in version: 9.4.78-3 🚀
Bundle Size Analysis (Sentry): |
Explanation of Change
Fixed Issues
$ #98978
PROPOSAL:
Tests
Setup
group by: Fromfrom display filter popover.Core fix
Sticky header
Re-render/recycling
0.Other cases
type:expensesearch and confirm existing horizontal scrolling/offset behavior is unchanged.Offline tests
QA Steps
Same as tests
Verify that no errors appear in the JS console
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_hybrid.mp4
Android: mWeb Chrome
android_mWeb.mp4
iOS: Native
ios_hybrid.mp4
iOS: mWeb Safari
ios_mWeb.mp4
MacOS: Chrome / Safari
Monosnap.screencast.2026-09-08.18-43-57.mp4