Repository navigation
[HOLD on #37] feat: integrate keyboard-aware chat scrolling - #38
Draft
chrispader wants to merge 1 commit into
Draft
chrispader wants to merge 1 commit into
chrispader wants to merge 1 commit into
Conversation
chrispader
force-pushed
the
@chrispader/feat/legend-list-chat-migration
branch
from
November 9, 2026 11:21
ce27aed to
008b817
Compare
chrispader
force-pushed
the
@chrispader/feat/legend-list-keyboard-aware
branch
from
November 9, 2026 11:29
7896843 to
ac04ba5
Compare
chrispader
force-pushed
the
@chrispader/feat/legend-list-chat-migration
branch
from
November 12, 2026 09:03
008b817 to
b0ade42
Compare
chrispader
force-pushed
the
@chrispader/feat/legend-list-keyboard-aware
branch
2 times, most recently
from
November 12, 2026 09:30
2d0e3e8 to
ecf69d0
Compare
Render chat report actions with KeyboardAwareLegendList so RNKC moves the messages and the composer together, keeping the action-sheet-aware scroll view. Upgrade react-native-keyboard-controller to 1.23.0 and port its patches. Expense and invoice reports, expanded composers, and Android versions without gesture-area support keep their existing keyboard handling. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Codex <noreply@openai.com>
chrispader
force-pushed
the
@chrispader/feat/legend-list-keyboard-aware
branch
from
November 12, 2026 10:37
ecf69d0 to
ec09aa6
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.
Chat messages and the composer currently use separate keyboard-handling paths, which makes interactive dismissal difficult to coordinate. I switched chat reports to
KeyboardAwareLegendListso RNKC controls their movement together.Explanation of Change
This builds on the refreshed #37 with LegendList 3.7.2 and RNKC 1.23.0. The custom scroll-view patch follows the seven patches from the migration, and the iOS gesture-state patch is separate from the Android landscape patch. Scroll tracking and linked-message positioning include the keyboard inset. Tracking also refreshes when that inset settles, so the Latest messages pill and unread state reflect the list's current position.
The action-sheet-aware scroll view stays in the keyboard list. RNKC's iOS helper uses a package-specific Objective-C name to avoid a HybridApp class collision. Expense and invoice reports, expanded composers, and Android versions below 11 retain their existing keyboard handling.
Fixed Issues
$ Expensify#54270
Initial proposal: Expensify#71440
Tests
iOS and Android 11 or later, chat keyboard
All platforms, expanded composer
All platforms, expense and invoice reports
Use a report where you can post comments.
Supported Android versions below 11
Offline tests
QA Steps
Same as Tests and 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
These existing migration recordings are reused from #37.
Android: Native
ColdOpenLoading.mp4
iOS: Native
LegendListLoadingSkeletonVsFlashList.mp4
🤖 Generated with Codex