Skip to content

fix(mobile): improve keyboard avoiding - #5451

Open
jmeistrich wants to merge 2 commits into
pingdotgg:mainfrom
jmeistrich:fix/mobile-legend-list
Open

fix(mobile): improve keyboard avoiding#5451
jmeistrich wants to merge 2 commits into
pingdotgg:mainfrom
jmeistrich:fix/mobile-legend-list

Conversation

@jmeistrich

@jmeistrich jmeistrich commented Aug 5, 2026

Copy link
Copy Markdown

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

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Remove gated layout animation from mobile thread feed to improve keyboard avoiding

  • Removes the 180ms slide animation applied to feed items near the end of the list in ThreadFeed.tsx; feed item layout updates now occur instantly.
  • Removes the nearListEnd shared value and associated worklet, simplifying handleScroll to only report header visibility.
  • Disables the Reanimated commit pausing mechanism via a static feature flag in package.json.

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_MECHANISM static feature flag in apps/mobile/package.json, matching the workaround recommended for KeyboardAwareLegendList on iOS New Architecture when keyboard-driven scroll animations misbehave.

Thread feed scrolling no longer uses the custom Reanimated itemLayoutAnimation that slid rows near the list end. That logic (nearListEnd, feedItemLayoutTransition, and related scroll tracking) is removed so layout updates from streaming, keyboard insets, and maintainVisibleContentPosition apply 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.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1c6271ad-0896-4207-841a-6248bc2d08ca

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Aug 5, 2026
@jmeistrich jmeistrich changed the title fix(mobile): improve list and keyboard fix(mobile): improve keyboard avoiding Aug 5, 2026
@jmeistrich
jmeistrich marked this pull request as ready for review August 5, 2026 21:56

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread apps/mobile/package.json
},
"reanimated": {
"staticFeatureFlags": {
"DISABLE_COMMIT_PAUSING_MECHANISM": true

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 👍 / 👎.

@macroscopeapp

macroscopeapp Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR has an unresolved P1 review comment warning that the DISABLE_COMMIT_PAUSING_MECHANISM Reanimated flag may cause app freezes without a corresponding React Native flag. This substantive concern about production stability warrants human review.

You can customize Macroscope's approvability policy. Learn more.

@github-actions github-actions Bot added size:M 30-99 changed lines (additions + deletions). and removed size:XS 0-9 changed lines (additions + deletions). labels Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant