Skip to content

fix(mobile): restore compact iPad trackpad scrolling - #13665

Open
PixPMusic wants to merge 1 commit into
pingdotgg:mainfrom
PixPMusic:pixpmusic/fix-ipad-trackpad-scroll
Open

PixPMusic wants to merge 1 commit into
pingdotgg:mainfrom
PixPMusic:pixpmusic/fix-ipad-trackpad-scroll

Conversation

@PixPMusic

@PixPMusic PixPMusic commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

What Changed

Register the compact Home thread list with a stable native scroll gesture and share it with the row swipeables. This matches the gesture composition already used by the wide iPad sidebar and Archive.

Fixes #13664.

Why

On the current App Store build, narrowing an iPad window to the iPhone-style Home list stops vertical Magic Keyboard trackpad scrolling. Direct touch scrolling still works, and horizontal row swipe input is still accepted. Expanding back to the wide sidebar restores trackpad scrolling.

Both routes render the same trackpad-enabled swipe rows, but Home omitted the Gesture.Native() / GestureDetector / simultaneousSwipeGesture relationship that lets native scrolling coexist with them. This adds that missing relationship without changing swipe thresholds, the existing scroll gate, row recycling, or navigation.

Integrated main after #13356 landed; its Android FAB clearance calculation is preserved. The PR diff remains confined to mobile Home. Web/desktop, providers, contracts, and connection modes are unaffected. iPhone external pointing-device behavior has not been reproduced.

UI Changes

App Store reproduction video. Supplied by Alex, cropped to the React Native app and stripped of audio. The other app in the original recording was the SwiftUI rewrite, where scrolling works.

Compact Home before/after on the same iPhone 17 Pro simulator, using synthetic thread rows (the rendered layout is unchanged):

Before After
Home before Home after

After: touch scrolling and row swipe reveal/close. This is simulator touch-input regression coverage, not a trackpad before/after comparison.

Verification

  • Mobile TypeScript check passed.
  • Scoped lint passed with warnings; scoped formatting and git diff --check passed.
  • Layout, adaptive-navigation, and Android control-sizing tests: 52 passed after integrating current main.
  • Fresh iOS native build succeeded. On iPhone 17 Pro / iOS 26.5, the search-filtered Home list scrolls from rows 01–09 to later rows and back; horizontal swipes reveal Settle/Snooze and close again. On iPad Pro 13-inch / iOS 26.5, verified the compact/wide route transition and scrolling in the wide sidebar. The automation tool fails to read/control the resized iPad window (regular iOS snapshot node escaped its cumulative clip), so compact gesture regression coverage uses the iPhone running the same Home component.
  • A standalone signed Release build of this PR (a225726) was installed and launched over USB on Alex’s physical iPad as T3 Code Preview. It bundles its JavaScript and has OTA updates disabled so the candidate stays pinned.
  • Alex verified the USB-installed Preview build on the physical iPad with Magic Keyboard: vertical trackpad scrolling works after shrinking the window to the phone layout, and horizontal row swipes still work. This confirms both behaviors on hardware; simulator coverage above uses touch gestures.

Model: GPT-6 Astra | Harness: Codex in T3 Code

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Sep 25, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at a225726

Macroscope's review found this PR approvable — This one-file mobile fix restores compact Home-list trackpad scrolling by reusing the existing native-gesture composition already used by the sidebar and archive. Its runtime impact is limited to gesture arbitration between list scrolling and row swipes, with no changes to data, navigation, defaults, or static-analysis configuration.

You can add or adjust custom eligibility rules. Learn more.

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 25, 2026
@macroscopeapp
macroscopeapp Bot dismissed their stale review September 25, 2026 17:23

Dismissing prior approval to re-evaluate a225726

@coderabbitai

coderabbitai Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

⚙️ Run configuration

Configuration used: Repository: pingdotgg/t3code/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: cc1e2add-1718-49c8-9d7f-663cff935e49

📥 Commits

Reviewing files that changed from the base of the PR and between a225726 and 1db8d92.

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

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: pingdotgg/t3code/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 098cb6a4-ecd8-4da7-8b3e-a0f829f44b01

📥 Commits

Reviewing files that changed from the base of the PR and between 7a12aff and a225726.

📒 Files selected for processing (1)
  • apps/mobile/src/features/home/HomeScreen.tsx

Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review.


📝 Walkthrough

Walkthrough

HomeScreen now registers a native gesture for the thread list, wraps LegendList in a GestureDetector, and passes the gesture to thread rows as their simultaneous swipe gesture.

Changes

Home list gestures

Layer / File(s) Summary
Native scroll and row swipe integration
apps/mobile/src/features/home/HomeScreen.tsx
HomeScreen creates a native gesture for LegendList and shares it with thread rows as simultaneousSwipeGesture. The list’s data, rendering, and scroll configuration remain unchanged.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Medium

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to a2257

No actionable issue remains in the reviewed change. Physical iPad and Magic Keyboard verification is still pending, but that alone does not establish a merge-blocking risk.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Issue #13664 requires native scroll composition in compact Home while retaining touch scrolling and horizontal row swipes. The PR creates a memoized Gesture.Native(), wraps LegendList with `Gestur…
Out of Scope Changes check ✅ Passed The reviewed diff changes only apps/mobile/src/features/home/HomeScreen.tsx. Each change adds native gesture composition for the Home thread list or supplies that gesture to row swipeables. These ch…
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files.
Title check ✅ Passed The title clearly and concisely describes the primary change: restoring compact iPad trackpad scrolling in the mobile Home screen.
Description check ✅ Passed The description explains what changed, why it changed, the UI impact, reproduction evidence, verification results, and scope. It does not include the template Checklist section, but the description co…
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

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

@PixPMusic
PixPMusic force-pushed the pixpmusic/fix-ipad-trackpad-scroll branch from a225726 to 1db8d92 Compare September 25, 2026 18:22

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS 0-9 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: iPad compact thread list ignores Magic Keyboard trackpad scrolling

1 participant