Fix mobile sidebar swipe and drag failures (#2709)

* fix(app): prevent text selection during Android swipes

Gesture interception did not cancel the native view where the touch began, leaving Android's pending text-selection action alive.

* fix(app): restore iOS sidebar close swipes

Fabric could fail to attach close handlers when their target lived inside retained but display-hidden panel content. Keep a registered native gesture host mounted outside the presentation wrapper so close swipes work over nested lists without activating rows.

* fix(app): recover sidebar drags after cancellation

Cancelled native drags could leave a lifted row and the shared outer list locked. Scope terminal cleanup to the owning gesture session and release the lock on cancellation or unmount.

* test(app): clean up partial drag fixtures
This commit is contained in:
Mohamed Boudra
2026-08-01 04:05:54 +08:00
committed by GitHub
parent eb1c7def54
commit 3778d0ad7b
11 changed files with 966 additions and 22 deletions
+25
View File
@@ -3,6 +3,31 @@
This directory contains local mobile UI flows. Keep flows small enough that a
failure screenshot proves the intended behavior, not just that the app launched.
## iOS Sidebar Close Regression
`ios-sidebar-close-regression.yaml` exercises close swipes over a semantic header
and the nested workspace list without activating the content below the swipe.
Start the `sh.paseo.debug` dev client against the intended Metro server first;
the flow preserves that running connection.
```bash
maestro test packages/app/maestro/ios-sidebar-close-regression.yaml --udid <simulator-udid>
```
## iOS Sidebar Drag Cancellation Regression
`test-sidebar-drag-cancellation-ios.sh` creates three temporary projects and
uses real native slow swipes to cover successful reorder, a second touch during
the drop spring, horizontal close cancellation, outer-list scroll recovery, and
a subsequent reorder. The harness removes its daemon projects and local fixture
directories on exit.
Start the debug dev client against the intended Metro server, then run:
```bash
bash packages/app/maestro/test-sidebar-drag-cancellation-ios.sh
```
## New Workspace Android Flow
Use these files when debugging or extending workspace creation on Android: