Repository navigation
fix(mobile): Android ⋯ menus open from the workspace drawer - #2366
Conversation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SJ8gcMTgoRjSRBNFswZT9T
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SJ8gcMTgoRjSRBNFswZT9T
Captured on a Xiaomi phone (Android 16, HyperOS 3, arm64, gesture navigation, zh-CN) running an arm64 debug dev client of main 48f35fb with this branch's JavaScript, in light, dark and font scale 2.0. The drawer computer row's menu (Customize / Unpair) and a group member's menu (Open profile / Remove) both open; neither destructive action was tapped. Status bar and computer names are redacted. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Requested by Vain · project thread
Why the change
On the Android 16 emulator, tapping ⋯ on a computer row in the workspace drawer did nothing, so Customize and Unpair could not be reached. The Material dropdown came in with #2333, which was not checked on Android.
Special things to note
ActionMenuButtonstacked the ComposeHostthat anchors theDropdownMenuabove the ⋯Pressable, and relied onpointerEvents="none"to let taps through. On Android, React Native picks the touch target in reverse child order and the Compose host does not appear to honourpointerEvents, so the host took the tap and nothing opened. The host now renders first and thePressablesits above it. The dropdown still anchors to the same box.group-info.tsx) uses the same component and gets the same fix.pnpm lint, mobile and roottsc,oxfmtandvitest apps/mobile/test(118 files passed, 7 skipped).action-menu-android.test.tsxhas a new case that checks ⋯ is stacked above the Compose host. It fails on main and passes here.Change outline
action-menu-button.android.tsx: theHostis now rendered before thePressable, so the trigger is the topmost view.Screenshots
Physical phone: Xiaomi, Android 16 / HyperOS 3, gesture navigation, Chinese UI. Debug dev client built from main 48f35fb with this branch's JS over Metro, paired to an isolated QA Host. Status bar and computer names redacted. Files are in
.github/pr-screenshots/2366-android-menu/phone/on this branch (Files changed).drawer-menu-light.pngdrawer-menu-dark.pngdrawer-menu-font.pnggroup-member-menu-light.pnggroup-member-menu-dark.pnggroup-member-menu-font.pngResult: PASS. The computer row's ⋯ now opens Customize and Unpair, and a group member's ⋯ opens Open profile and Remove. Each menu was only opened and dismissed with Back. The group info list here is still the plain divided list because #2348's grouped style is a separate PR.
Generated by Claude Code
Summary by CodeRabbit