[HOLD on #100740] [LegendList 6/7] feat: migrate remaining FlashList consumers to LegendList - #100734
Draft
chrispader wants to merge 7 commits into
Draft
Conversation
Contributor
|
|
This was referenced Sep 9, 2026
chrispader
force-pushed
the
@chrispader/feat/legend-list-flashlist-migration
branch
from
September 9, 2026 18:27
0b02d4e to
68be4fb
Compare
40 tasks
chrispader
force-pushed
the
@chrispader/feat/legend-list-flashlist-migration
branch
from
September 9, 2026 19:24
68be4fb to
75e95ba
Compare
This was referenced Sep 9, 2026
chrispader
force-pushed
the
@chrispader/feat/legend-list-flashlist-migration
branch
from
September 9, 2026 20:24
75e95ba to
d65940b
Compare
chrispader
force-pushed
the
@chrispader/feat/legend-list-flashlist-migration
branch
2 times, most recently
from
September 10, 2026 10:01
6f0c266 to
c5a6d5f
Compare
chrispader
force-pushed
the
@chrispader/feat/legend-list-flashlist-migration
branch
from
September 10, 2026 11:11
c5a6d5f to
970abff
Compare
chrispader
force-pushed
the
@chrispader/feat/legend-list-flashlist-migration
branch
from
September 10, 2026 11:23
970abff to
eaca999
Compare
This was referenced Sep 10, 2026
chrispader
force-pushed
the
@chrispader/feat/legend-list-flashlist-migration
branch
from
September 11, 2026 11:10
eaca999 to
e8e6faf
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Application lists still depend on FlashList and a collection of package patches for scrolling, layout, and accessibility. This PR migrates those consumers to direct LegendList package imports and removes FlashList, its patches, and its test setup.
@roryabraham @dmkt9
Explanation of Change
Layer 6 of the seven-part LegendList and chat pagination stack. Consumers import
{LegendList}from@legendapp/list/react-nativeand{AnimatedLegendList}from@legendapp/list/reanimated, with their types coming from the package exports. This layer covers selection lists, search, tables, the sidebar, emoji, transaction previews, money reports, and the remaining simple screens. The external money-report table retains parent-owned scrolling and a bounded virtualized render window. Its integration tests run the actual LegendList and cover scrolling, header offsets, and row-state updates. Direct FlatList consumers are reserved for layer 7.This draft depends on layer 5 and targets upstream
main, so GitHub's Files changed tab includes earlier layers until they merge. Review only the focused layer 6 diff. These are ordinary upstream PRs because GitHub native stacks do not support cross-fork branches; their branches are managed locally withgh stack. Rebase this branch after its dependencies land.Review order: 1. Foundation → 2. Message edit scrolling → 3. Loading skeleton consistency → 4. Report actions → 5. Chat pagination loading → 6. Remaining FlashList consumers → 7. Remaining FlatList consumers and restrictions. Merge and rebase in this order.
Fixed Issues
$ #98994
$ #99202
This draft is part of the migration split from #98270. No approved proposal is linked.
Tests
Manual platform checks have not been run; the PR remains a draft.
Before marking ready:
Offline tests
Not yet tested manually. Repeat selection/search and cached money-report flows offline, then reconnect and verify pending items and scroll positions update correctly.
QA Steps
Repeat the manual steps above on native Android/iOS and supported web platforms. Verify table accessibility and native overlapping row content as well as scrolling.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, 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
Not recorded yet; this PR is a draft.
Android: mWeb Chrome
Not recorded yet; this PR is a draft.
iOS: Native
Not recorded yet; this PR is a draft.
iOS: mWeb Safari
Not recorded yet; this PR is a draft.
MacOS: Chrome / Safari
Not recorded yet; this PR is a draft.