You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[iOS] A Pressable with a relation prop never calls onPressOut when it is disabled under the finger #4630
On iOS, a Pressable with a relation prop (simultaneousWith, requireToFail or block), which renders its state-machine implementation, calls onPressIn and never onPressOut when it is disabled while a finger holds it. Since #4501 the button cancels the press at that moment so that onPressOut fires without onPress, and the default Pressable and LegacyPressable do that.
The native gesture's onFinalize arrives before the long press's onTouchesCancel, so handleFinalize clears the press and handlePressOut returns early. LegacyPressableskips handleFinalize there on iOS for this order (#3777). Dragged away inside a scroll view, the same Pressable presses out, as the touch cancel arrives first there.
Steps to reproduce
Render the Gist's component on an iOS device.
Hold the first box until it greys out, 300 ms into the press, then lift: the log shows relation prop: onPressIn and no onPressOut.
Do the same with the other two boxes: each logs onPressIn and onPressOut.
A link to a Gist, an Expo Snack or a link to a repository based on this template that reproduces the bug.
Activity