Repository navigation
[LegendList 4/9] fix: stabilize composer focus and scroll notifications - #104977
Draft
chrispader wants to merge 2 commits into
Draft
chrispader wants to merge 2 commits into
chrispader wants to merge 2 commits into
Conversation
Resolve the current composer after delayed focus, reserve notification-banner space on initial layout, and keep inverted-list scroll events scoped to their existing callers. Expose local and realtime notification sources with a backward-compatible callback signature. Co-authored-by: Codex <noreply@openai.com>
15 of 38 tasks
This was referenced Oct 26, 2026
Co-authored-by: Codex <noreply@openai.com>
Contributor
Author
|
@MelvinBot request review from @roryabraham and @dmkt9 and assign them here. |
Contributor
|
Done. I requested reviews from |
This branch has not been deployed
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.
Closing an inline editor can replace the input before delayed focus runs, and the notification banner can appear after the list measures. This PR resolves the current input when focus executes and initializes notification permission before the first layout. It also keeps list scroll notifications scoped to inverted lists and identifies local and realtime action events.
@roryabraham @dmkt9
Explanation of Change
This is layer 4 of the nine-part LegendList series. It extracts the composer and notification preparation from #100733, which remains the list migration in layer 6. Report actions continue to use the existing inverted FlashList.
Review and merge order: nine-part LegendList rollout. Layers 4 and 5 are independent preparations; merge both before layer 6.
Fixed Issues
$ #98994
Part of the migration split from #98270. No approved proposal is linked.
Tests
All platforms means desktop web, mobile web, Android, and iOS.
All platforms, save a message edit
All platforms, cancel a message edit
Android and iOS apps, keyboard after returning to a chat
Desktop Chrome, notifications set to Ask
Desktop Chrome, notifications allowed
Desktop Chrome, notifications blocked
Desktop web, message hover actions while scrolling
Offline tests
All platforms, cancel an edit offline
QA Steps
Run the All platforms cases and the blocks for the platform being tested, including Offline tests.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)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
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari