Skip to content

Restore advanced gesture composition equivalence after PanResponder removal #170

@thomasttvo

Description

@thomasttvo

Context

PR #151 (Reanimated rewrite) replaces react-native's PanResponder with react-native-gesture-handler's Gesture.Manual(). As part of that rewrite, the following low-level PanResponder shim callbacks were removed from ReactNativeZoomableViewProps:

  • onPanResponderTerminationRequest
  • onShouldBlockNativeResponder
  • onStartShouldSetPanResponder
  • onMoveShouldSetPanResponder
  • onStartShouldSetPanResponderCapture
  • onMoveShouldSetPanResponderCapture

These were escape hatches for advanced gesture composition with other gesture systems (parent ScrollView, sibling Swipeable, horizontal carousels, etc.).

What's needed

There's no 1:1 mapping back to PanResponder semantics in RNGH — its composition model is different (Gesture.Simultaneous, Gesture.Race, requireExternalGestureToFail, etc.). However, consumers who relied on the removed callbacks need a working migration path.

Options to consider:

  1. Documented migration guide in README / SPECS — show consumers how to compose ReactNativeZoomableView with RNGH gestures at their own level (e.g., wrap in a parent GestureDetector, use simultaneousHandlers, fail-required references).
  2. Expose RNGH composition primitives at the library level — accept simultaneousHandlers / requireExternalGestureToFail props and forward to the internal Gesture.Manual().
  3. Accept the simplification — leave it to consumers to compose at their level using standard RNGH patterns; just document explicitly that no built-in API is provided.

Origin

Removal landed in PR #151. Tracked here so an equivalent (or explicit documentation that consumers compose at their own level) can be added before consumers hit the regression.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions