fix(mobile): improve keyboard avoiding - #5451
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ca5aca65eb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| }, | ||
| "reanimated": { | ||
| "staticFeatureFlags": { | ||
| "DISABLE_COMMIT_PAUSING_MECHANISM": true |
There was a problem hiding this comment.
Pair Reanimated commit pausing with the RN flag
With the current Expo build-properties config, the mobile app still builds with the default/stable React Native feature flags, and repo-wide search shows no preventShadowTreeCommitExhaustion or reactNativeReleaseLevel override. Reanimated’s docs for DISABLE_COMMIT_PAUSING_MECHANISM warn that enabling it without React Native’s preventShadowTreeCommitExhaustion can starve React commits and make the app unresponsive, so iOS/New Architecture keyboard flows can trade the missing-animation bug for a worse production freeze.
Useful? React with 👍 / 👎.
ApprovabilityVerdict: Needs human review This PR has an unresolved P1 review comment warning that the You can customize Macroscope's approvability policy. Learn more. |
What Changed
This should make keyboard avoiding much more stable. It needs DISABLE_COMMIT_PAUSING_MECHANISM to workaround a reanimated issue. See: https://kirillzyusko.github.io/react-native-keyboard-controller/docs/api/components/keyboard-chat-scroll-view#missing-animations-on-ios-new-arch-only
Why
UI Changes
Checklist
Note
Remove gated layout animation from mobile thread feed to improve keyboard avoiding
nearListEndshared value and associated worklet, simplifyinghandleScrollto only report header visibility.Macroscope summarized aaa1369.
Note
Medium Risk
Touches core thread list scroll/keyboard behavior and a global Reanimated build flag; regressions could show as jank when scrolling history or when the keyboard opens, but scope is limited to mobile thread UI.
Overview
Improves keyboard avoiding on the thread chat list by enabling Reanimated’s
DISABLE_COMMIT_PAUSING_MECHANISMstatic feature flag inapps/mobile/package.json, matching the workaround recommended forKeyboardAwareLegendListon iOS New Architecture when keyboard-driven scroll animations misbehave.Thread feed scrolling no longer uses the custom Reanimated
itemLayoutAnimationthat slid rows near the list end. That logic (nearListEnd,feedItemLayoutTransition, and related scroll tracking) is removed so layout updates from streaming, keyboard insets, andmaintainVisibleContentPositionapply instantly instead of fighting a gated 180ms position animation.Reviewed by Cursor Bugbot for commit aaa1369. Bugbot is set up for automated code reviews on this repo. Configure here.