react-native-gesture-handler 3.0.0-beta.3 → 3.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +42 -38
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +34 -8
- package/android/src/main/java/com/swmansion/gesturehandler/core/HoverGestureHandler.kt +3 -6
- package/android/src/main/java/com/swmansion/gesturehandler/core/ManualGestureHandler.kt +2 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +68 -7
- package/android/src/main/java/com/swmansion/gesturehandler/core/OnJSResponderCancelListener.kt +6 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt +2 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/PinchGestureHandler.kt +16 -6
- package/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureHandler.kt +17 -4
- package/android/src/main/java/com/swmansion/gesturehandler/core/ViewConfigurationHelper.kt +0 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/Extensions.kt +21 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +160 -55
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerDetectorView.kt +75 -98
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +7 -10
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +64 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +18 -8
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +15 -4
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +0 -6
- package/apple/Handlers/RNForceTouchHandler.m +1 -1
- package/apple/Handlers/RNHoverHandler.m +11 -11
- package/apple/Handlers/RNLongPressHandler.m +2 -2
- package/apple/Handlers/RNManualHandler.m +5 -0
- package/apple/Handlers/RNNativeViewHandler.mm +114 -53
- package/apple/Handlers/RNPanHandler.m +7 -3
- package/apple/Handlers/RNPinchHandler.m +9 -3
- package/apple/Handlers/RNRotationHandler.m +7 -2
- package/apple/Handlers/RNTapHandler.m +1 -1
- package/apple/RNGestureHandler.h +18 -0
- package/apple/RNGestureHandler.mm +82 -33
- package/apple/RNGestureHandlerButton.h +12 -2
- package/apple/RNGestureHandlerButton.mm +208 -38
- package/apple/RNGestureHandlerButtonComponentView.mm +102 -6
- package/apple/RNGestureHandlerDetector.mm +99 -75
- package/apple/RNGestureHandlerModule.mm +11 -14
- package/apple/RNGestureHandlerRegistry.h +14 -1
- package/apple/RNGestureHandlerRegistry.m +56 -0
- package/apple/RNRootViewGestureRecognizer.m +4 -15
- package/lib/module/RNGestureHandlerModule.web.js +5 -1
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/components/GestureButtons.js +23 -12
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/GestureHandlerButton.js.map +1 -1
- package/lib/module/components/GestureHandlerButton.web.js +113 -31
- package/lib/module/components/GestureHandlerButton.web.js.map +1 -1
- package/lib/module/components/Pressable/Pressable.js +2 -1
- package/lib/module/components/Pressable/Pressable.js.map +1 -1
- package/lib/module/components/Pressable/stateDefinitions.js +2 -0
- package/lib/module/components/Pressable/stateDefinitions.js.map +1 -1
- package/lib/module/components/ReanimatedDrawerLayout.js.map +1 -1
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js +38 -5
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchable.js +2 -6
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +1 -2
- package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/utils.js +11 -48
- package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/module/handlers/gestures/flingGesture.js +8 -0
- package/lib/module/handlers/gestures/flingGesture.js.map +1 -1
- package/lib/module/handlers/gestures/forceTouchGesture.js +3 -3
- package/lib/module/handlers/gestures/gesture.js +8 -0
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/gestureComposition.js +28 -0
- package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/module/handlers/gestures/gestureObjects.js +27 -1
- package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.js +9 -0
- package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/module/handlers/gestures/hoverGesture.js +8 -0
- package/lib/module/handlers/gestures/hoverGesture.js.map +1 -1
- package/lib/module/handlers/gestures/longPressGesture.js +8 -0
- package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/module/handlers/gestures/manualGesture.js +8 -0
- package/lib/module/handlers/gestures/manualGesture.js.map +1 -1
- package/lib/module/handlers/gestures/nativeGesture.js +8 -0
- package/lib/module/handlers/gestures/nativeGesture.js.map +1 -1
- package/lib/module/handlers/gestures/panGesture.js +13 -0
- package/lib/module/handlers/gestures/panGesture.js.map +1 -1
- package/lib/module/handlers/gestures/pinchGesture.js +13 -0
- package/lib/module/handlers/gestures/pinchGesture.js.map +1 -1
- package/lib/module/handlers/gestures/reanimatedWrapper.js +14 -2
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/module/handlers/gestures/rotationGesture.js +8 -0
- package/lib/module/handlers/gestures/rotationGesture.js.map +1 -1
- package/lib/module/handlers/gestures/tapGesture.js +8 -0
- package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
- package/lib/module/mocks/module.js +3 -2
- package/lib/module/mocks/module.js.map +1 -1
- package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -1
- package/lib/module/specs/RNGestureHandlerButtonNativeComponent.ts +28 -13
- package/lib/module/v3/NativeProxy.js +5 -3
- package/lib/module/v3/NativeProxy.js.map +1 -1
- package/lib/module/v3/NativeProxy.web.js +2 -2
- package/lib/module/v3/NativeProxy.web.js.map +1 -1
- package/lib/module/v3/components/GestureButtons.js +11 -6
- package/lib/module/v3/components/GestureButtons.js.map +1 -1
- package/lib/module/v3/components/Pressable.js +3 -2
- package/lib/module/v3/components/Pressable.js.map +1 -1
- package/lib/module/v3/components/Touchable/Touchable.js +119 -32
- package/lib/module/v3/components/Touchable/Touchable.js.map +1 -1
- package/lib/module/v3/detectors/HostGestureDetector.web.js +180 -59
- package/lib/module/v3/detectors/HostGestureDetector.web.js.map +1 -1
- package/lib/module/v3/detectors/NativeDetector.js +3 -2
- package/lib/module/v3/detectors/NativeDetector.js.map +1 -1
- package/lib/module/v3/detectors/VirtualDetector/InterceptingGestureDetector.js +3 -4
- package/lib/module/v3/detectors/VirtualDetector/InterceptingGestureDetector.js.map +1 -1
- package/lib/module/v3/detectors/VirtualDetector/VirtualDetector.js +4 -2
- package/lib/module/v3/detectors/VirtualDetector/VirtualDetector.js.map +1 -1
- package/lib/module/v3/detectors/useGestureRelationsUpdater.js +23 -0
- package/lib/module/v3/detectors/useGestureRelationsUpdater.js.map +1 -0
- package/lib/module/v3/detectors/useNativeGestureRole.js +6 -0
- package/lib/module/v3/detectors/useNativeGestureRole.js.map +1 -0
- package/lib/module/v3/detectors/useNativeGestureRole.web.js +27 -0
- package/lib/module/v3/detectors/useNativeGestureRole.web.js.map +1 -0
- package/lib/module/v3/detectors/utils.js +10 -8
- package/lib/module/v3/detectors/utils.js.map +1 -1
- package/lib/module/v3/hooks/callbacks/useReanimatedEventHandler.js +17 -2
- package/lib/module/v3/hooks/callbacks/useReanimatedEventHandler.js.map +1 -1
- package/lib/module/v3/hooks/gestures/fling/useFlingGesture.js +2 -1
- package/lib/module/v3/hooks/gestures/fling/useFlingGesture.js.map +1 -1
- package/lib/module/v3/hooks/gestures/hover/useHoverGesture.js +2 -1
- package/lib/module/v3/hooks/gestures/hover/useHoverGesture.js.map +1 -1
- package/lib/module/v3/hooks/gestures/longPress/useLongPressGesture.js +2 -1
- package/lib/module/v3/hooks/gestures/longPress/useLongPressGesture.js.map +1 -1
- package/lib/module/v3/hooks/gestures/manual/useManualGesture.js +2 -1
- package/lib/module/v3/hooks/gestures/manual/useManualGesture.js.map +1 -1
- package/lib/module/v3/hooks/gestures/native/NativeTypes.js +1 -1
- package/lib/module/v3/hooks/gestures/native/NativeTypes.js.map +1 -1
- package/lib/module/v3/hooks/gestures/native/useNativeGesture.js +2 -1
- package/lib/module/v3/hooks/gestures/native/useNativeGesture.js.map +1 -1
- package/lib/module/v3/hooks/gestures/pan/usePanGesture.js +2 -1
- package/lib/module/v3/hooks/gestures/pan/usePanGesture.js.map +1 -1
- package/lib/module/v3/hooks/gestures/pinch/usePinchGesture.js +2 -1
- package/lib/module/v3/hooks/gestures/pinch/usePinchGesture.js.map +1 -1
- package/lib/module/v3/hooks/gestures/rotation/useRotationGesture.js +2 -1
- package/lib/module/v3/hooks/gestures/rotation/useRotationGesture.js.map +1 -1
- package/lib/module/v3/hooks/gestures/tap/useTapGesture.js +2 -1
- package/lib/module/v3/hooks/gestures/tap/useTapGesture.js.map +1 -1
- package/lib/module/v3/hooks/useGesture.js +4 -22
- package/lib/module/v3/hooks/useGesture.js.map +1 -1
- package/lib/module/v3/hooks/utils/configUtils.js +8 -6
- package/lib/module/v3/hooks/utils/configUtils.js.map +1 -1
- package/lib/module/v3/hooks/utils/eventHandlersUtils.js +31 -29
- package/lib/module/v3/hooks/utils/eventHandlersUtils.js.map +1 -1
- package/lib/module/v3/hooks/utils/index.js +1 -1
- package/lib/module/v3/hooks/utils/index.js.map +1 -1
- package/lib/module/v3/hooks/utils/propsWhiteList.js +1 -1
- package/lib/module/v3/hooks/utils/propsWhiteList.js.map +1 -1
- package/lib/module/v3/hooks/utils/reanimatedUtils.js +8 -2
- package/lib/module/v3/hooks/utils/reanimatedUtils.js.map +1 -1
- package/lib/module/web/constants.js +1 -0
- package/lib/module/web/constants.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js +18 -5
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/module/web/detectors/ScaleGestureDetector.js +9 -1
- package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +25 -5
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/HoverGestureHandler.js +1 -4
- package/lib/module/web/handlers/HoverGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/ManualGestureHandler.js +1 -0
- package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +65 -17
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +1 -0
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PinchGestureHandler.js +4 -6
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/RotationGestureHandler.js +4 -3
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/web/interfaces.js +6 -0
- package/lib/module/web/interfaces.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +8 -2
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/module/web/tools/GestureLifecycleEvents.js +10 -0
- package/lib/module/web/tools/GestureLifecycleEvents.js.map +1 -0
- package/lib/module/web/tools/NodeManager.js +44 -0
- package/lib/module/web/tools/NodeManager.js.map +1 -1
- package/lib/module/web/tools/PointerEventManager.js +9 -0
- package/lib/module/web/tools/PointerEventManager.js.map +1 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts.map +1 -1
- package/lib/typescript/components/GestureButtons.d.ts +14 -6
- package/lib/typescript/components/GestureButtons.d.ts.map +1 -1
- package/lib/typescript/components/GestureHandlerButton.d.ts +62 -8
- package/lib/typescript/components/GestureHandlerButton.d.ts.map +1 -1
- package/lib/typescript/components/GestureHandlerButton.web.d.ts +14 -3
- package/lib/typescript/components/GestureHandlerButton.web.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/Pressable.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/PressableProps.d.ts +1 -1
- package/lib/typescript/components/Pressable/PressableProps.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/stateDefinitions.d.ts.map +1 -1
- package/lib/typescript/components/ReanimatedDrawerLayout.d.ts +16 -14
- package/lib/typescript/components/ReanimatedDrawerLayout.d.ts.map +1 -1
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts +2 -1
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts.map +1 -1
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeableProps.d.ts +30 -34
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeableProps.d.ts.map +1 -1
- package/lib/typescript/components/touchables/GenericTouchable.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/flingGesture.d.ts +6 -0
- package/lib/typescript/handlers/gestures/flingGesture.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +3 -3
- package/lib/typescript/handlers/gestures/gesture.d.ts +6 -0
- package/lib/typescript/handlers/gestures/gesture.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/gestureComposition.d.ts +21 -0
- package/lib/typescript/handlers/gestures/gestureComposition.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/gestureObjects.d.ts +27 -1
- package/lib/typescript/handlers/gestures/gestureObjects.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +6 -0
- package/lib/typescript/handlers/gestures/gestureStateManager.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/hoverGesture.d.ts +6 -0
- package/lib/typescript/handlers/gestures/hoverGesture.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/longPressGesture.d.ts +6 -0
- package/lib/typescript/handlers/gestures/longPressGesture.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/manualGesture.d.ts +6 -0
- package/lib/typescript/handlers/gestures/manualGesture.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/nativeGesture.d.ts +6 -0
- package/lib/typescript/handlers/gestures/nativeGesture.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/panGesture.d.ts +9 -0
- package/lib/typescript/handlers/gestures/panGesture.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/pinchGesture.d.ts +9 -0
- package/lib/typescript/handlers/gestures/pinchGesture.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/rotationGesture.d.ts +6 -0
- package/lib/typescript/handlers/gestures/rotationGesture.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/tapGesture.d.ts +6 -0
- package/lib/typescript/handlers/gestures/tapGesture.d.ts.map +1 -1
- package/lib/typescript/mocks/module.d.ts +1 -1
- package/lib/typescript/mocks/module.d.ts.map +1 -1
- package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +2 -2
- package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts.map +1 -1
- package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +19 -11
- package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts.map +1 -1
- package/lib/typescript/v3/NativeProxy.d.ts +1 -1
- package/lib/typescript/v3/NativeProxy.d.ts.map +1 -1
- package/lib/typescript/v3/NativeProxy.web.d.ts +1 -1
- package/lib/typescript/v3/NativeProxy.web.d.ts.map +1 -1
- package/lib/typescript/v3/components/GestureButtons.d.ts +1 -37
- package/lib/typescript/v3/components/GestureButtons.d.ts.map +1 -1
- package/lib/typescript/v3/components/GestureButtonsProps.d.ts +1 -1
- package/lib/typescript/v3/components/GestureButtonsProps.d.ts.map +1 -1
- package/lib/typescript/v3/components/GestureComponents.d.ts +3 -0
- package/lib/typescript/v3/components/GestureComponents.d.ts.map +1 -1
- package/lib/typescript/v3/components/GestureComponents.web.d.ts +4 -0
- package/lib/typescript/v3/components/GestureComponents.web.d.ts.map +1 -1
- package/lib/typescript/v3/components/Pressable.d.ts.map +1 -1
- package/lib/typescript/v3/components/Touchable/Touchable.d.ts.map +1 -1
- package/lib/typescript/v3/components/Touchable/TouchableProps.d.ts +48 -1
- package/lib/typescript/v3/components/Touchable/TouchableProps.d.ts.map +1 -1
- package/lib/typescript/v3/detectors/HostGestureDetector.web.d.ts +1 -1
- package/lib/typescript/v3/detectors/HostGestureDetector.web.d.ts.map +1 -1
- package/lib/typescript/v3/detectors/NativeDetector.d.ts.map +1 -1
- package/lib/typescript/v3/detectors/VirtualDetector/InterceptingGestureDetector.d.ts.map +1 -1
- package/lib/typescript/v3/detectors/VirtualDetector/VirtualDetector.d.ts.map +1 -1
- package/lib/typescript/v3/detectors/useGestureRelationsUpdater.d.ts +3 -0
- package/lib/typescript/v3/detectors/useGestureRelationsUpdater.d.ts.map +1 -0
- package/lib/typescript/v3/detectors/useNativeGestureRole.d.ts +3 -0
- package/lib/typescript/v3/detectors/useNativeGestureRole.d.ts.map +1 -0
- package/lib/typescript/v3/detectors/useNativeGestureRole.web.d.ts +3 -0
- package/lib/typescript/v3/detectors/useNativeGestureRole.web.d.ts.map +1 -0
- package/lib/typescript/v3/detectors/utils.d.ts +3 -3
- package/lib/typescript/v3/detectors/utils.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/callbacks/useReanimatedEventHandler.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/gestures/fling/useFlingGesture.d.ts +1 -1
- package/lib/typescript/v3/hooks/gestures/fling/useFlingGesture.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/gestures/hover/useHoverGesture.d.ts +1 -1
- package/lib/typescript/v3/hooks/gestures/hover/useHoverGesture.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/gestures/longPress/useLongPressGesture.d.ts +1 -1
- package/lib/typescript/v3/hooks/gestures/longPress/useLongPressGesture.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/gestures/manual/useManualGesture.d.ts +1 -1
- package/lib/typescript/v3/hooks/gestures/manual/useManualGesture.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/gestures/native/NativeTypes.d.ts +7 -0
- package/lib/typescript/v3/hooks/gestures/native/NativeTypes.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/gestures/native/useNativeGesture.d.ts +1 -1
- package/lib/typescript/v3/hooks/gestures/native/useNativeGesture.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/gestures/pan/usePanGesture.d.ts +1 -1
- package/lib/typescript/v3/hooks/gestures/pan/usePanGesture.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/gestures/pinch/usePinchGesture.d.ts +1 -1
- package/lib/typescript/v3/hooks/gestures/pinch/usePinchGesture.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/gestures/rotation/useRotationGesture.d.ts +1 -1
- package/lib/typescript/v3/hooks/gestures/rotation/useRotationGesture.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/gestures/tap/useTapGesture.d.ts +1 -1
- package/lib/typescript/v3/hooks/gestures/tap/useTapGesture.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/useGesture.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/utils/configUtils.d.ts +2 -2
- package/lib/typescript/v3/hooks/utils/configUtils.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/utils/eventHandlersUtils.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/utils/index.d.ts +1 -1
- package/lib/typescript/v3/hooks/utils/index.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/utils/propsWhiteList.d.ts +2 -2
- package/lib/typescript/v3/hooks/utils/propsWhiteList.d.ts.map +1 -1
- package/lib/typescript/v3/hooks/utils/reanimatedUtils.d.ts +1 -0
- package/lib/typescript/v3/hooks/utils/reanimatedUtils.d.ts.map +1 -1
- package/lib/typescript/v3/types/ConfigTypes.d.ts +1 -0
- package/lib/typescript/v3/types/ConfigTypes.d.ts.map +1 -1
- package/lib/typescript/web/constants.d.ts +1 -0
- package/lib/typescript/web/constants.d.ts.map +1 -1
- package/lib/typescript/web/detectors/RotationGestureDetector.d.ts.map +1 -1
- package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts.map +1 -1
- package/lib/typescript/web/handlers/GestureHandler.d.ts +8 -2
- package/lib/typescript/web/handlers/GestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +1 -1
- package/lib/typescript/web/handlers/HoverGestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/handlers/IGestureHandler.d.ts +2 -0
- package/lib/typescript/web/handlers/IGestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/ManualGestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +13 -3
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/PinchGestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/RotationGestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/interfaces.d.ts +6 -0
- package/lib/typescript/web/interfaces.d.ts.map +1 -1
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +1 -0
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts.map +1 -1
- package/lib/typescript/web/tools/GestureLifecycleEvents.d.ts +7 -0
- package/lib/typescript/web/tools/GestureLifecycleEvents.d.ts.map +1 -0
- package/lib/typescript/web/tools/NodeManager.d.ts +7 -0
- package/lib/typescript/web/tools/NodeManager.d.ts.map +1 -1
- package/lib/typescript/web/tools/PointerEventManager.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/RNGestureHandlerModule.web.ts +5 -1
- package/src/components/GestureButtons.tsx +33 -16
- package/src/components/GestureHandlerButton.tsx +70 -8
- package/src/components/GestureHandlerButton.web.tsx +184 -48
- package/src/components/Pressable/Pressable.tsx +3 -1
- package/src/components/Pressable/PressableProps.tsx +2 -1
- package/src/components/Pressable/stateDefinitions.ts +3 -0
- package/src/components/ReanimatedDrawerLayout.tsx +27 -23
- package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +51 -5
- package/src/components/ReanimatedSwipeable/ReanimatedSwipeableProps.ts +31 -39
- package/src/components/touchables/GenericTouchable.tsx +2 -5
- package/src/handlers/gestures/GestureDetector/useDetectorUpdater.ts +1 -2
- package/src/handlers/gestures/GestureDetector/utils.ts +11 -53
- package/src/handlers/gestures/flingGesture.ts +6 -0
- package/src/handlers/gestures/forceTouchGesture.ts +3 -3
- package/src/handlers/gestures/gesture.ts +6 -0
- package/src/handlers/gestures/gestureComposition.ts +21 -0
- package/src/handlers/gestures/gestureObjects.ts +27 -1
- package/src/handlers/gestures/gestureStateManager.ts +6 -0
- package/src/handlers/gestures/hoverGesture.ts +6 -0
- package/src/handlers/gestures/longPressGesture.ts +6 -0
- package/src/handlers/gestures/manualGesture.ts +6 -0
- package/src/handlers/gestures/nativeGesture.ts +6 -0
- package/src/handlers/gestures/panGesture.ts +9 -0
- package/src/handlers/gestures/pinchGesture.ts +9 -0
- package/src/handlers/gestures/reanimatedWrapper.ts +20 -2
- package/src/handlers/gestures/rotationGesture.ts +6 -0
- package/src/handlers/gestures/tapGesture.ts +6 -0
- package/src/mocks/module.tsx +4 -2
- package/src/specs/NativeRNGestureHandlerModule.ts +2 -4
- package/src/specs/RNGestureHandlerButtonNativeComponent.ts +28 -13
- package/src/v3/NativeProxy.ts +9 -7
- package/src/v3/NativeProxy.web.ts +2 -2
- package/src/v3/components/GestureButtons.tsx +18 -10
- package/src/v3/components/GestureButtonsProps.ts +1 -0
- package/src/v3/components/Pressable.tsx +2 -1
- package/src/v3/components/Touchable/Touchable.tsx +144 -50
- package/src/v3/components/Touchable/TouchableProps.ts +64 -2
- package/src/v3/detectors/HostGestureDetector.web.tsx +268 -108
- package/src/v3/detectors/NativeDetector.tsx +3 -2
- package/src/v3/detectors/VirtualDetector/InterceptingGestureDetector.tsx +3 -4
- package/src/v3/detectors/VirtualDetector/VirtualDetector.tsx +5 -2
- package/src/v3/detectors/useGestureRelationsUpdater.ts +30 -0
- package/src/v3/detectors/useNativeGestureRole.ts +8 -0
- package/src/v3/detectors/useNativeGestureRole.web.ts +42 -0
- package/src/v3/detectors/utils.ts +28 -12
- package/src/v3/hooks/callbacks/useReanimatedEventHandler.ts +23 -7
- package/src/v3/hooks/gestures/fling/useFlingGesture.ts +5 -1
- package/src/v3/hooks/gestures/hover/useHoverGesture.ts +5 -1
- package/src/v3/hooks/gestures/longPress/useLongPressGesture.ts +3 -1
- package/src/v3/hooks/gestures/manual/useManualGesture.ts +5 -1
- package/src/v3/hooks/gestures/native/NativeTypes.ts +13 -1
- package/src/v3/hooks/gestures/native/useNativeGesture.ts +5 -1
- package/src/v3/hooks/gestures/pan/usePanGesture.ts +5 -1
- package/src/v3/hooks/gestures/pinch/usePinchGesture.ts +5 -1
- package/src/v3/hooks/gestures/rotation/useRotationGesture.ts +3 -1
- package/src/v3/hooks/gestures/tap/useTapGesture.ts +5 -1
- package/src/v3/hooks/useGesture.ts +4 -18
- package/src/v3/hooks/utils/configUtils.ts +18 -8
- package/src/v3/hooks/utils/eventHandlersUtils.ts +43 -32
- package/src/v3/hooks/utils/index.ts +0 -1
- package/src/v3/hooks/utils/propsWhiteList.ts +1 -0
- package/src/v3/hooks/utils/reanimatedUtils.ts +10 -10
- package/src/v3/types/ConfigTypes.ts +1 -0
- package/src/web/constants.ts +1 -0
- package/src/web/detectors/RotationGestureDetector.ts +19 -5
- package/src/web/detectors/ScaleGestureDetector.ts +9 -3
- package/src/web/handlers/GestureHandler.ts +36 -6
- package/src/web/handlers/HoverGestureHandler.ts +2 -5
- package/src/web/handlers/IGestureHandler.ts +2 -0
- package/src/web/handlers/ManualGestureHandler.ts +2 -0
- package/src/web/handlers/NativeViewGestureHandler.ts +122 -19
- package/src/web/handlers/PanGestureHandler.ts +2 -0
- package/src/web/handlers/PinchGestureHandler.ts +5 -7
- package/src/web/handlers/RotationGestureHandler.ts +5 -5
- package/src/web/interfaces.ts +7 -0
- package/src/web/tools/GestureHandlerOrchestrator.ts +11 -3
- package/src/web/tools/GestureLifecycleEvents.ts +14 -0
- package/src/web/tools/NodeManager.ts +57 -0
- package/src/web/tools/PointerEventManager.ts +12 -0
- package/lib/module/RNRenderer.js +0 -6
- package/lib/module/RNRenderer.js.map +0 -1
- package/lib/module/RNRenderer.web.js +0 -6
- package/lib/module/RNRenderer.web.js.map +0 -1
- package/lib/typescript/RNRenderer.d.ts +0 -2
- package/lib/typescript/RNRenderer.d.ts.map +0 -1
- package/lib/typescript/RNRenderer.web.d.ts +0 -4
- package/lib/typescript/RNRenderer.web.d.ts.map +0 -1
- package/src/RNRenderer.ts +0 -3
- package/src/RNRenderer.web.ts +0 -3
|
@@ -3,34 +3,84 @@
|
|
|
3
3
|
import React, { useCallback, useRef } from 'react';
|
|
4
4
|
import { Platform } from 'react-native';
|
|
5
5
|
import GestureHandlerButton from '../../../components/GestureHandlerButton';
|
|
6
|
-
import
|
|
6
|
+
import { NativeDetector } from '../../detectors/NativeDetector';
|
|
7
|
+
import { useNativeGesture } from '../../hooks';
|
|
7
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
-
const TouchableButton = createNativeWrapper(GestureHandlerButton, {
|
|
9
|
-
shouldCancelWhenOutside: true,
|
|
10
|
-
shouldActivateOnStart: false
|
|
11
|
-
});
|
|
12
9
|
const isAndroid = Platform.OS === 'android';
|
|
13
10
|
const TRANSPARENT_RIPPLE = {
|
|
14
11
|
rippleColor: 'transparent'
|
|
15
12
|
};
|
|
13
|
+
const DEFAULT_IN_DURATION_MS = 50;
|
|
14
|
+
const DEFAULT_OUT_DURATION_MS = 100;
|
|
15
|
+
var PointerState = /*#__PURE__*/function (PointerState) {
|
|
16
|
+
PointerState[PointerState["UNKNOWN"] = 0] = "UNKNOWN";
|
|
17
|
+
PointerState[PointerState["INSIDE"] = 1] = "INSIDE";
|
|
18
|
+
PointerState[PointerState["OUTSIDE"] = 2] = "OUTSIDE";
|
|
19
|
+
return PointerState;
|
|
20
|
+
}(PointerState || {}); // Clamp user-supplied durations to finite, non-negative milliseconds.
|
|
21
|
+
// Negative, NaN, or Infinity values would produce invalid CSS transitions
|
|
22
|
+
// on web and negative setTimeout delays in branch 3 of the press-out path.
|
|
23
|
+
function sanitizeDuration(value) {
|
|
24
|
+
return Number.isFinite(value) && value >= 0 ? value : 0;
|
|
25
|
+
}
|
|
26
|
+
function resolveAnimationDuration(value) {
|
|
27
|
+
if (value === undefined) {
|
|
28
|
+
return {
|
|
29
|
+
tapAnimationInDuration: DEFAULT_IN_DURATION_MS,
|
|
30
|
+
tapAnimationOutDuration: DEFAULT_OUT_DURATION_MS,
|
|
31
|
+
longPressAnimationOutDuration: DEFAULT_OUT_DURATION_MS,
|
|
32
|
+
hoverAnimationInDuration: DEFAULT_IN_DURATION_MS,
|
|
33
|
+
hoverAnimationOutDuration: DEFAULT_OUT_DURATION_MS
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
if (typeof value === 'number') {
|
|
37
|
+
const sanitized = sanitizeDuration(value);
|
|
38
|
+
return {
|
|
39
|
+
tapAnimationInDuration: sanitized,
|
|
40
|
+
tapAnimationOutDuration: sanitized,
|
|
41
|
+
longPressAnimationOutDuration: sanitized,
|
|
42
|
+
hoverAnimationInDuration: sanitized,
|
|
43
|
+
hoverAnimationOutDuration: sanitized
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// The union guarantees variant 2 supplies top-level `in`/`out`, variant 3
|
|
48
|
+
// supplies both category objects — so per-category fallback to base is
|
|
49
|
+
// always defined for well-typed input; the 0 fallbacks here are unreachable.
|
|
50
|
+
const baseIn = 'in' in value ? value.in : 0;
|
|
51
|
+
const baseOut = 'out' in value ? value.out : 0;
|
|
52
|
+
const tapOut = value.tap?.out ?? baseOut;
|
|
53
|
+
return {
|
|
54
|
+
tapAnimationInDuration: sanitizeDuration(value.tap?.in ?? baseIn),
|
|
55
|
+
tapAnimationOutDuration: sanitizeDuration(tapOut),
|
|
56
|
+
longPressAnimationOutDuration: sanitizeDuration(value.longPress?.out ?? tapOut),
|
|
57
|
+
hoverAnimationInDuration: sanitizeDuration(value.hover?.in ?? baseIn),
|
|
58
|
+
hoverAnimationOutDuration: sanitizeDuration(value.hover?.out ?? baseOut)
|
|
59
|
+
};
|
|
60
|
+
}
|
|
16
61
|
export const Touchable = props => {
|
|
17
62
|
const {
|
|
18
|
-
underlayColor = '
|
|
63
|
+
underlayColor = 'transparent',
|
|
19
64
|
defaultUnderlayOpacity = 0,
|
|
65
|
+
activeUnderlayOpacity = 0.105,
|
|
20
66
|
defaultOpacity = 1,
|
|
67
|
+
animationDuration,
|
|
21
68
|
androidRipple,
|
|
22
69
|
delayLongPress = 600,
|
|
23
70
|
onLongPress,
|
|
24
71
|
onPress,
|
|
25
72
|
onPressIn,
|
|
26
73
|
onPressOut,
|
|
27
|
-
onActiveStateChange,
|
|
28
74
|
children,
|
|
29
75
|
disabled = false,
|
|
76
|
+
cancelOnLeave = true,
|
|
30
77
|
ref,
|
|
31
78
|
...rest
|
|
32
79
|
} = props;
|
|
80
|
+
const resolvedDurations = resolveAnimationDuration(animationDuration);
|
|
81
|
+
const resolvedDelayLongPress = sanitizeDuration(delayLongPress);
|
|
33
82
|
const shouldUseNativeRipple = isAndroid && androidRipple !== undefined;
|
|
83
|
+
const pointerState = useRef(PointerState.UNKNOWN);
|
|
34
84
|
const longPressDetected = useRef(false);
|
|
35
85
|
const longPressTimeout = useRef(undefined);
|
|
36
86
|
const wrappedLongPress = useCallback(() => {
|
|
@@ -40,55 +90,92 @@ export const Touchable = props => {
|
|
|
40
90
|
const startLongPressTimer = useCallback(() => {
|
|
41
91
|
longPressDetected.current = false;
|
|
42
92
|
if (onLongPress && !longPressTimeout.current) {
|
|
43
|
-
longPressTimeout.current = setTimeout(wrappedLongPress,
|
|
93
|
+
longPressTimeout.current = setTimeout(wrappedLongPress, resolvedDelayLongPress);
|
|
44
94
|
}
|
|
45
|
-
}, [onLongPress,
|
|
95
|
+
}, [onLongPress, resolvedDelayLongPress, wrappedLongPress]);
|
|
46
96
|
const onBegin = useCallback(e => {
|
|
47
97
|
if (!e.pointerInside) {
|
|
98
|
+
pointerState.current = PointerState.OUTSIDE;
|
|
48
99
|
return;
|
|
49
100
|
}
|
|
50
101
|
onPressIn?.(e);
|
|
51
102
|
startLongPressTimer();
|
|
103
|
+
pointerState.current = PointerState.INSIDE;
|
|
52
104
|
}, [startLongPressTimer, onPressIn]);
|
|
53
105
|
const onActivate = useCallback(e => {
|
|
54
|
-
onActiveStateChange?.(true);
|
|
55
106
|
if (!e.pointerInside && longPressTimeout.current !== undefined) {
|
|
56
107
|
clearTimeout(longPressTimeout.current);
|
|
57
108
|
longPressTimeout.current = undefined;
|
|
58
109
|
}
|
|
59
|
-
}, [
|
|
60
|
-
const onDeactivate = useCallback(e => {
|
|
61
|
-
onActiveStateChange?.(false);
|
|
62
|
-
if (!e.canceled && !longPressDetected.current) {
|
|
63
|
-
onPress?.(e.pointerInside);
|
|
64
|
-
}
|
|
65
|
-
}, [onActiveStateChange, onPress]);
|
|
110
|
+
}, []);
|
|
66
111
|
const onFinalize = useCallback(e => {
|
|
67
|
-
|
|
112
|
+
if (pointerState.current === PointerState.INSIDE) {
|
|
113
|
+
onPressOut?.(e);
|
|
114
|
+
}
|
|
115
|
+
if (!e.canceled && !longPressDetected.current && e.pointerInside) {
|
|
116
|
+
onPress?.(e);
|
|
117
|
+
}
|
|
118
|
+
pointerState.current = PointerState.UNKNOWN;
|
|
68
119
|
if (longPressTimeout.current !== undefined) {
|
|
69
120
|
clearTimeout(longPressTimeout.current);
|
|
70
121
|
longPressTimeout.current = undefined;
|
|
71
122
|
}
|
|
72
|
-
}, [onPressOut]);
|
|
123
|
+
}, [onPressOut, onPress]);
|
|
124
|
+
const onUpdate = useCallback(e => {
|
|
125
|
+
if (pointerState.current === PointerState.UNKNOWN) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (e.pointerInside) {
|
|
129
|
+
if (pointerState.current === PointerState.OUTSIDE) {
|
|
130
|
+
onPressIn?.(e);
|
|
131
|
+
}
|
|
132
|
+
pointerState.current = PointerState.INSIDE;
|
|
133
|
+
} else {
|
|
134
|
+
if (pointerState.current === PointerState.INSIDE) {
|
|
135
|
+
onPressOut?.(e);
|
|
136
|
+
if (longPressTimeout.current !== undefined) {
|
|
137
|
+
clearTimeout(longPressTimeout.current);
|
|
138
|
+
longPressTimeout.current = undefined;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
pointerState.current = PointerState.OUTSIDE;
|
|
142
|
+
}
|
|
143
|
+
}, [onPressIn, onPressOut]);
|
|
144
|
+
const nativeGesture = useNativeGesture({
|
|
145
|
+
onBegin,
|
|
146
|
+
onActivate,
|
|
147
|
+
onFinalize,
|
|
148
|
+
onUpdate,
|
|
149
|
+
hitSlop: props.hitSlop,
|
|
150
|
+
testID: props.testID,
|
|
151
|
+
enabled: !disabled,
|
|
152
|
+
shouldCancelWhenOutside: cancelOnLeave,
|
|
153
|
+
disableReanimated: true,
|
|
154
|
+
shouldActivateOnStart: false,
|
|
155
|
+
disallowInterruption: true,
|
|
156
|
+
yieldsToContinuousGestures: true
|
|
157
|
+
});
|
|
73
158
|
const rippleProps = shouldUseNativeRipple ? {
|
|
74
159
|
rippleColor: androidRipple?.color,
|
|
75
160
|
rippleRadius: androidRipple?.radius,
|
|
76
161
|
borderless: androidRipple?.borderless,
|
|
77
162
|
foreground: androidRipple?.foreground
|
|
78
163
|
} : TRANSPARENT_RIPPLE;
|
|
79
|
-
return /*#__PURE__*/_jsx(
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
164
|
+
return /*#__PURE__*/_jsx(NativeDetector, {
|
|
165
|
+
gesture: nativeGesture,
|
|
166
|
+
children: /*#__PURE__*/_jsx(GestureHandlerButton, {
|
|
167
|
+
...rest,
|
|
168
|
+
...rippleProps,
|
|
169
|
+
...resolvedDurations,
|
|
170
|
+
ref: ref ?? null,
|
|
171
|
+
enabled: !disabled,
|
|
172
|
+
defaultOpacity: defaultOpacity,
|
|
173
|
+
defaultUnderlayOpacity: defaultUnderlayOpacity,
|
|
174
|
+
activeUnderlayOpacity: activeUnderlayOpacity,
|
|
175
|
+
underlayColor: underlayColor,
|
|
176
|
+
longPressDuration: resolvedDelayLongPress,
|
|
177
|
+
children: children
|
|
178
|
+
})
|
|
92
179
|
});
|
|
93
180
|
};
|
|
94
181
|
//# sourceMappingURL=Touchable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useRef","Platform","GestureHandlerButton","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useRef","Platform","GestureHandlerButton","NativeDetector","useNativeGesture","jsx","_jsx","isAndroid","OS","TRANSPARENT_RIPPLE","rippleColor","DEFAULT_IN_DURATION_MS","DEFAULT_OUT_DURATION_MS","PointerState","sanitizeDuration","value","Number","isFinite","resolveAnimationDuration","undefined","tapAnimationInDuration","tapAnimationOutDuration","longPressAnimationOutDuration","hoverAnimationInDuration","hoverAnimationOutDuration","sanitized","baseIn","in","baseOut","out","tapOut","tap","longPress","hover","Touchable","props","underlayColor","defaultUnderlayOpacity","activeUnderlayOpacity","defaultOpacity","animationDuration","androidRipple","delayLongPress","onLongPress","onPress","onPressIn","onPressOut","children","disabled","cancelOnLeave","ref","rest","resolvedDurations","resolvedDelayLongPress","shouldUseNativeRipple","pointerState","UNKNOWN","longPressDetected","longPressTimeout","wrappedLongPress","current","startLongPressTimer","setTimeout","onBegin","e","pointerInside","OUTSIDE","INSIDE","onActivate","clearTimeout","onFinalize","canceled","onUpdate","nativeGesture","hitSlop","testID","enabled","shouldCancelWhenOutside","disableReanimated","shouldActivateOnStart","disallowInterruption","yieldsToContinuousGestures","rippleProps","color","rippleRadius","radius","borderless","foreground","gesture","longPressDuration"],"sourceRoot":"../../../../../src","sources":["v3/components/Touchable/Touchable.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,MAAM,QAAQ,OAAO;AAClD,SAASC,QAAQ,QAAQ,cAAc;AAEvC,OAAOC,oBAAoB,MAAM,0CAA0C;AAC3E,SAASC,cAAc,QAAQ,gCAAgC;AAC/D,SAASC,gBAAgB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ/C,MAAMC,SAAS,GAAGN,QAAQ,CAACO,EAAE,KAAK,SAAS;AAC3C,MAAMC,kBAAkB,GAAG;EAAEC,WAAW,EAAE;AAAuB,CAAC;AAClE,MAAMC,sBAAsB,GAAG,EAAE;AACjC,MAAMC,uBAAuB,GAAG,GAAG;AAAC,IAE/BC,YAAY,0BAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA,EAAZA,YAAY,SAMjB;AACA;AACA;AACA,SAASC,gBAAgBA,CAACC,KAAa,EAAU;EAC/C,OAAOC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,IAAIA,KAAK,IAAI,CAAC,GAAGA,KAAK,GAAG,CAAC;AACzD;AAEA,SAASG,wBAAwBA,CAACH,KAAoC,EAAE;EACtE,IAAIA,KAAK,KAAKI,SAAS,EAAE;IACvB,OAAO;MACLC,sBAAsB,EAAET,sBAAsB;MAC9CU,uBAAuB,EAAET,uBAAuB;MAChDU,6BAA6B,EAAEV,uBAAuB;MACtDW,wBAAwB,EAAEZ,sBAAsB;MAChDa,yBAAyB,EAAEZ;IAC7B,CAAC;EACH;EAEA,IAAI,OAAOG,KAAK,KAAK,QAAQ,EAAE;IAC7B,MAAMU,SAAS,GAAGX,gBAAgB,CAACC,KAAK,CAAC;IACzC,OAAO;MACLK,sBAAsB,EAAEK,SAAS;MACjCJ,uBAAuB,EAAEI,SAAS;MAClCH,6BAA6B,EAAEG,SAAS;MACxCF,wBAAwB,EAAEE,SAAS;MACnCD,yBAAyB,EAAEC;IAC7B,CAAC;EACH;;EAEA;EACA;EACA;EACA,MAAMC,MAAM,GAAG,IAAI,IAAIX,KAAK,GAAGA,KAAK,CAACY,EAAE,GAAG,CAAC;EAC3C,MAAMC,OAAO,GAAG,KAAK,IAAIb,KAAK,GAAGA,KAAK,CAACc,GAAG,GAAG,CAAC;EAC9C,MAAMC,MAAM,GAAGf,KAAK,CAACgB,GAAG,EAAEF,GAAG,IAAID,OAAO;EAExC,OAAO;IACLR,sBAAsB,EAAEN,gBAAgB,CAACC,KAAK,CAACgB,GAAG,EAAEJ,EAAE,IAAID,MAAM,CAAC;IACjEL,uBAAuB,EAAEP,gBAAgB,CAACgB,MAAM,CAAC;IACjDR,6BAA6B,EAAER,gBAAgB,CAC7CC,KAAK,CAACiB,SAAS,EAAEH,GAAG,IAAIC,MAC1B,CAAC;IACDP,wBAAwB,EAAET,gBAAgB,CAACC,KAAK,CAACkB,KAAK,EAAEN,EAAE,IAAID,MAAM,CAAC;IACrEF,yBAAyB,EAAEV,gBAAgB,CAACC,KAAK,CAACkB,KAAK,EAAEJ,GAAG,IAAID,OAAO;EACzE,CAAC;AACH;AAEA,OAAO,MAAMM,SAAS,GAAIC,KAAqB,IAAK;EAClD,MAAM;IACJC,aAAa,GAAG,aAAa;IAC7BC,sBAAsB,GAAG,CAAC;IAC1BC,qBAAqB,GAAG,KAAK;IAC7BC,cAAc,GAAG,CAAC;IAClBC,iBAAiB;IACjBC,aAAa;IACbC,cAAc,GAAG,GAAG;IACpBC,WAAW;IACXC,OAAO;IACPC,SAAS;IACTC,UAAU;IACVC,QAAQ;IACRC,QAAQ,GAAG,KAAK;IAChBC,aAAa,GAAG,IAAI;IACpBC,GAAG;IACH,GAAGC;EACL,CAAC,GAAGhB,KAAK;EAET,MAAMiB,iBAAiB,GAAGlC,wBAAwB,CAACsB,iBAAiB,CAAC;EACrE,MAAMa,sBAAsB,GAAGvC,gBAAgB,CAAC4B,cAAc,CAAC;EAE/D,MAAMY,qBAAqB,GAAG/C,SAAS,IAAIkC,aAAa,KAAKtB,SAAS;EAEtE,MAAMoC,YAAY,GAAGvD,MAAM,CAAea,YAAY,CAAC2C,OAAO,CAAC;EAC/D,MAAMC,iBAAiB,GAAGzD,MAAM,CAAC,KAAK,CAAC;EACvC,MAAM0D,gBAAgB,GAAG1D,MAAM,CAC7BmB,SACF,CAAC;EAED,MAAMwC,gBAAgB,GAAG5D,WAAW,CAAC,MAAM;IACzC0D,iBAAiB,CAACG,OAAO,GAAG,IAAI;IAChCjB,WAAW,GAAG,CAAC;EACjB,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,MAAMkB,mBAAmB,GAAG9D,WAAW,CAAC,MAAM;IAC5C0D,iBAAiB,CAACG,OAAO,GAAG,KAAK;IAEjC,IAAIjB,WAAW,IAAI,CAACe,gBAAgB,CAACE,OAAO,EAAE;MAC5CF,gBAAgB,CAACE,OAAO,GAAGE,UAAU,CACnCH,gBAAgB,EAChBN,sBACF,CAAC;IACH;EACF,CAAC,EAAE,CAACV,WAAW,EAAEU,sBAAsB,EAAEM,gBAAgB,CAAC,CAAC;EAE3D,MAAMI,OAAO,GAAGhE,WAAW,CACxBiE,CAAoB,IAAK;IACxB,IAAI,CAACA,CAAC,CAACC,aAAa,EAAE;MACpBV,YAAY,CAACK,OAAO,GAAG/C,YAAY,CAACqD,OAAO;MAC3C;IACF;IAEArB,SAAS,GAAGmB,CAAC,CAAC;IACdH,mBAAmB,CAAC,CAAC;IAErBN,YAAY,CAACK,OAAO,GAAG/C,YAAY,CAACsD,MAAM;EAC5C,CAAC,EACD,CAACN,mBAAmB,EAAEhB,SAAS,CACjC,CAAC;EAED,MAAMuB,UAAU,GAAGrE,WAAW,CAAEiE,CAAoB,IAAK;IACvD,IAAI,CAACA,CAAC,CAACC,aAAa,IAAIP,gBAAgB,CAACE,OAAO,KAAKzC,SAAS,EAAE;MAC9DkD,YAAY,CAACX,gBAAgB,CAACE,OAAO,CAAC;MACtCF,gBAAgB,CAACE,OAAO,GAAGzC,SAAS;IACtC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMmD,UAAU,GAAGvE,WAAW,CAC3BiE,CAAuB,IAAK;IAC3B,IAAIT,YAAY,CAACK,OAAO,KAAK/C,YAAY,CAACsD,MAAM,EAAE;MAChDrB,UAAU,GAAGkB,CAAC,CAAC;IACjB;IAEA,IAAI,CAACA,CAAC,CAACO,QAAQ,IAAI,CAACd,iBAAiB,CAACG,OAAO,IAAII,CAAC,CAACC,aAAa,EAAE;MAChErB,OAAO,GAAGoB,CAAC,CAAC;IACd;IAEAT,YAAY,CAACK,OAAO,GAAG/C,YAAY,CAAC2C,OAAO;IAE3C,IAAIE,gBAAgB,CAACE,OAAO,KAAKzC,SAAS,EAAE;MAC1CkD,YAAY,CAACX,gBAAgB,CAACE,OAAO,CAAC;MACtCF,gBAAgB,CAACE,OAAO,GAAGzC,SAAS;IACtC;EACF,CAAC,EACD,CAAC2B,UAAU,EAAEF,OAAO,CACtB,CAAC;EAED,MAAM4B,QAAQ,GAAGzE,WAAW,CACzBiE,CAAoB,IAAK;IACxB,IAAIT,YAAY,CAACK,OAAO,KAAK/C,YAAY,CAAC2C,OAAO,EAAE;MACjD;IACF;IAEA,IAAIQ,CAAC,CAACC,aAAa,EAAE;MACnB,IAAIV,YAAY,CAACK,OAAO,KAAK/C,YAAY,CAACqD,OAAO,EAAE;QACjDrB,SAAS,GAAGmB,CAAC,CAAC;MAChB;MACAT,YAAY,CAACK,OAAO,GAAG/C,YAAY,CAACsD,MAAM;IAC5C,CAAC,MAAM;MACL,IAAIZ,YAAY,CAACK,OAAO,KAAK/C,YAAY,CAACsD,MAAM,EAAE;QAChDrB,UAAU,GAAGkB,CAAC,CAAC;QAEf,IAAIN,gBAAgB,CAACE,OAAO,KAAKzC,SAAS,EAAE;UAC1CkD,YAAY,CAACX,gBAAgB,CAACE,OAAO,CAAC;UACtCF,gBAAgB,CAACE,OAAO,GAAGzC,SAAS;QACtC;MACF;MACAoC,YAAY,CAACK,OAAO,GAAG/C,YAAY,CAACqD,OAAO;IAC7C;EACF,CAAC,EACD,CAACrB,SAAS,EAAEC,UAAU,CACxB,CAAC;EAED,MAAM2B,aAAa,GAAGrE,gBAAgB,CAAC;IACrC2D,OAAO;IACPK,UAAU;IACVE,UAAU;IACVE,QAAQ;IACRE,OAAO,EAAEvC,KAAK,CAACuC,OAAO;IACtBC,MAAM,EAAExC,KAAK,CAACwC,MAAM;IACpBC,OAAO,EAAE,CAAC5B,QAAQ;IAClB6B,uBAAuB,EAAE5B,aAAa;IACtC6B,iBAAiB,EAAE,IAAI;IACvBC,qBAAqB,EAAE,KAAK;IAC5BC,oBAAoB,EAAE,IAAI;IAC1BC,0BAA0B,EAAE;EAC9B,CAAC,CAAC;EAEF,MAAMC,WAAW,GAAG5B,qBAAqB,GACrC;IACE5C,WAAW,EAAE+B,aAAa,EAAE0C,KAAK;IACjCC,YAAY,EAAE3C,aAAa,EAAE4C,MAAM;IACnCC,UAAU,EAAE7C,aAAa,EAAE6C,UAAU;IACrCC,UAAU,EAAE9C,aAAa,EAAE8C;EAC7B,CAAC,GACD9E,kBAAkB;EAEtB,oBACEH,IAAA,CAACH,cAAc;IAACqF,OAAO,EAAEf,aAAc;IAAA1B,QAAA,eACrCzC,IAAA,CAACJ,oBAAoB;MAAA,GACfiD,IAAI;MAAA,GACJ+B,WAAW;MAAA,GACX9B,iBAAiB;MACrBF,GAAG,EAAEA,GAAG,IAAI,IAAK;MACjB0B,OAAO,EAAE,CAAC5B,QAAS;MACnBT,cAAc,EAAEA,cAAe;MAC/BF,sBAAsB,EAAEA,sBAAuB;MAC/CC,qBAAqB,EAAEA,qBAAsB;MAC7CF,aAAa,EAAEA,aAAc;MAC7BqD,iBAAiB,EAAEpC,sBAAuB;MAAAN,QAAA,EACzCA;IAAQ,CACW;EAAC,CACT,CAAC;AAErB,CAAC","ignoreList":[]}
|
|
@@ -5,8 +5,124 @@ import { View } from 'react-native';
|
|
|
5
5
|
import { ActionType } from '../../ActionType';
|
|
6
6
|
import RNGestureHandlerModule from '../../RNGestureHandlerModule.web';
|
|
7
7
|
import { tagMessage } from '../../utils';
|
|
8
|
+
import NodeManager from '../../web/tools/NodeManager';
|
|
9
|
+
import { useNativeGestureRole } from './useNativeGestureRole';
|
|
10
|
+
|
|
11
|
+
// Bundles all per-instance state passed to the standalone helpers below. Holding everything in
|
|
12
|
+
// one stable object keeps the helpers pure (no closures over component-render-scoped values),
|
|
13
|
+
// which means the useEffects don't need them in their deps lists.
|
|
8
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
-
|
|
15
|
+
// Invoked from `NodeManager.observeHandler` once the handler is known to exist. Branches on
|
|
16
|
+
// handler kind + actionType to pick the right binding flow. May be called multiple times for
|
|
17
|
+
// the same tag (handler re-registration), so each branch must be idempotent.
|
|
18
|
+
function attachReadyHandler(refs, tag, actionType, virtualViewTag) {
|
|
19
|
+
const handler = RNGestureHandlerModule.getGestureHandlerNode(tag);
|
|
20
|
+
if (actionType === ActionType.NATIVE_DETECTOR && handler.shouldAttachGestureToChildView()) {
|
|
21
|
+
refs.nativeHandlers.add(tag);
|
|
22
|
+
if (refs.viewRef.current != null && refs.viewRef.current.childElementCount > 0) {
|
|
23
|
+
tryAttachNativeHandlersToChildView(refs);
|
|
24
|
+
}
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (actionType === ActionType.VIRTUAL_DETECTOR) {
|
|
28
|
+
const child = virtualViewTag != null ? refs.virtualChildren.get(virtualViewTag) : undefined;
|
|
29
|
+
if (child == null || child.viewRef.current == null) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (!refs.attachedHandlers.has(tag)) {
|
|
33
|
+
RNGestureHandlerModule.attachGestureHandler(tag, child.viewRef.current, actionType, refs.propsRef);
|
|
34
|
+
refs.attachedHandlers.add(tag);
|
|
35
|
+
}
|
|
36
|
+
RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
|
|
37
|
+
userSelect: child.userSelect,
|
|
38
|
+
touchAction: child.touchAction,
|
|
39
|
+
enableContextMenu: child.enableContextMenu
|
|
40
|
+
});
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (refs.viewRef.current == null) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (!refs.attachedHandlers.has(tag)) {
|
|
47
|
+
RNGestureHandlerModule.attachGestureHandler(tag, refs.viewRef.current, actionType, refs.propsRef);
|
|
48
|
+
refs.attachedHandlers.add(tag);
|
|
49
|
+
}
|
|
50
|
+
RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
|
|
51
|
+
userSelect: refs.propsRef.current.userSelect,
|
|
52
|
+
touchAction: refs.propsRef.current.touchAction,
|
|
53
|
+
enableContextMenu: refs.propsRef.current.enableContextMenu
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function tryAttachNativeHandlersToChildView(refs) {
|
|
57
|
+
if (refs.nativeHandlers.size === 0) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const view = refs.viewRef.current;
|
|
61
|
+
if (view == null) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (view.childElementCount > 1) {
|
|
65
|
+
throw new Error(tagMessage('Cannot have more than one child view when native gesture handlers are attached to the detector'));
|
|
66
|
+
}
|
|
67
|
+
const target = view.firstElementChild;
|
|
68
|
+
if (target == null) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
for (const tag of refs.nativeHandlers) {
|
|
72
|
+
// A tag may be in `nativeHandlers` from an earlier ready callback but the underlying
|
|
73
|
+
// handler may have been dropped since. Skip — a re-registration fires the observation again.
|
|
74
|
+
if (!NodeManager.hasHandler(tag)) {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
if (refs.attachedHandlers.has(tag)) {
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
RNGestureHandlerModule.attachGestureHandler(tag, target, ActionType.NATIVE_DETECTOR, refs.propsRef);
|
|
81
|
+
refs.attachedHandlers.add(tag);
|
|
82
|
+
RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
|
|
83
|
+
userSelect: refs.propsRef.current.userSelect,
|
|
84
|
+
touchAction: refs.propsRef.current.touchAction,
|
|
85
|
+
enableContextMenu: refs.propsRef.current.enableContextMenu
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Reconcile `subscribedSet` against `currentTags`: observe new tags, cancel observation and
|
|
91
|
+
// detach for tags no longer present. The ready callback set up here is responsible for actually
|
|
92
|
+
// binding the handler once it exists.
|
|
93
|
+
function syncSubscriptions(refs, currentTags, subscribedSet, actionType, virtualViewTag) {
|
|
94
|
+
const toUnsubscribe = new Set(subscribedSet);
|
|
95
|
+
for (const tag of currentTags) {
|
|
96
|
+
toUnsubscribe.delete(tag);
|
|
97
|
+
if (subscribedSet.has(tag)) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
NodeManager.observeHandler(tag, refs.owner, () => {
|
|
101
|
+
attachReadyHandler(refs, tag, actionType, virtualViewTag);
|
|
102
|
+
});
|
|
103
|
+
subscribedSet.add(tag);
|
|
104
|
+
}
|
|
105
|
+
for (const tag of toUnsubscribe) {
|
|
106
|
+
NodeManager.cancelObservation(tag, refs.owner);
|
|
107
|
+
if (refs.attachedHandlers.has(tag)) {
|
|
108
|
+
RNGestureHandlerModule.detachGestureHandler(tag);
|
|
109
|
+
refs.attachedHandlers.delete(tag);
|
|
110
|
+
}
|
|
111
|
+
subscribedSet.delete(tag);
|
|
112
|
+
refs.nativeHandlers.delete(tag);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function teardown(refs) {
|
|
116
|
+
NodeManager.cancelAllObservationsForOwner(refs.owner);
|
|
117
|
+
for (const tag of refs.attachedHandlers) {
|
|
118
|
+
RNGestureHandlerModule.detachGestureHandler(tag);
|
|
119
|
+
}
|
|
120
|
+
refs.attachedHandlers.clear();
|
|
121
|
+
refs.subscribedHandlers.clear();
|
|
122
|
+
refs.nativeHandlers.clear();
|
|
123
|
+
refs.subscribedVirtualHandlers.clear();
|
|
124
|
+
refs.virtualChildren.clear();
|
|
125
|
+
}
|
|
10
126
|
const HostGestureDetector = props => {
|
|
11
127
|
const {
|
|
12
128
|
handlerTags,
|
|
@@ -15,41 +131,36 @@ const HostGestureDetector = props => {
|
|
|
15
131
|
const handlerTagsSet = useMemo(() => new Set(handlerTags), [...handlerTags]);
|
|
16
132
|
const viewRef = useRef(null);
|
|
17
133
|
const propsRef = useRef(props);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
attachedHandlerTags.add(tag);
|
|
41
|
-
RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
|
|
42
|
-
userSelect: props.userSelect,
|
|
43
|
-
touchAction: props.touchAction,
|
|
44
|
-
enableContextMenu: props.enableContextMenu
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
};
|
|
134
|
+
|
|
135
|
+
// Stable per-instance state
|
|
136
|
+
const refsRef = useRef(null);
|
|
137
|
+
if (refsRef.current === null) {
|
|
138
|
+
refsRef.current = {
|
|
139
|
+
owner: {},
|
|
140
|
+
viewRef,
|
|
141
|
+
propsRef,
|
|
142
|
+
subscribedHandlers: new Set(),
|
|
143
|
+
attachedHandlers: new Set(),
|
|
144
|
+
nativeHandlers: new Set(),
|
|
145
|
+
subscribedVirtualHandlers: new Map(),
|
|
146
|
+
virtualChildren: new Map()
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
const refs = refsRef.current;
|
|
150
|
+
useNativeGestureRole(viewRef, children);
|
|
151
|
+
|
|
152
|
+
// Keep propsRef in sync and re-apply detector-level DOM props to top-level attached handlers
|
|
153
|
+
// when they change. Virtual children get their own (potentially different) DOM props applied
|
|
154
|
+
// in the virtualChildren effect below, so we only touch top-level subscribers here.
|
|
48
155
|
useEffect(() => {
|
|
49
156
|
const shouldUpdateDOMProps = propsRef.current.userSelect !== props.userSelect || propsRef.current.touchAction !== props.touchAction || propsRef.current.enableContextMenu !== props.enableContextMenu;
|
|
50
157
|
propsRef.current = props;
|
|
51
158
|
if (shouldUpdateDOMProps) {
|
|
52
|
-
|
|
159
|
+
// attachedHandlers ⊆ subscribedHandlers ⋃ subscribedVirtualHandlers, we want to ignore the
|
|
160
|
+
// handlers attached by the virtual detectors not to overwrite their DOM props.
|
|
161
|
+
const claimedByVirtual = Array.from(refs.subscribedVirtualHandlers.values()).reduce((acc, current) => acc.union(current), new Set());
|
|
162
|
+
const handlersToUpdate = refs.subscribedHandlers.intersection(refs.attachedHandlers).difference(claimedByVirtual);
|
|
163
|
+
for (const tag of handlersToUpdate) {
|
|
53
164
|
RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
|
|
54
165
|
userSelect: props.userSelect,
|
|
55
166
|
touchAction: props.touchAction,
|
|
@@ -57,46 +168,56 @@ const HostGestureDetector = props => {
|
|
|
57
168
|
});
|
|
58
169
|
}
|
|
59
170
|
}
|
|
60
|
-
}, [props]);
|
|
171
|
+
}, [props, refs]);
|
|
61
172
|
useEffect(() => {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
return () => {
|
|
65
|
-
detachHandlers(EMPTY_HANDLERS, attachedHandlers.current);
|
|
66
|
-
attachedVirtualHandlers?.current.forEach(childHandlerTags => {
|
|
67
|
-
detachHandlers(EMPTY_HANDLERS, childHandlerTags);
|
|
68
|
-
});
|
|
69
|
-
};
|
|
70
|
-
}, [handlerTagsSet, viewRef]);
|
|
173
|
+
syncSubscriptions(refs, handlerTagsSet, refs.subscribedHandlers, ActionType.NATIVE_DETECTOR);
|
|
174
|
+
}, [handlerTagsSet, refs]);
|
|
71
175
|
useEffect(() => {
|
|
72
|
-
|
|
176
|
+
// Refresh the snapshot used by the ready callback so re-fires read current child props.
|
|
177
|
+
refs.virtualChildren.clear();
|
|
73
178
|
props.virtualChildren?.forEach(child => {
|
|
74
|
-
|
|
179
|
+
refs.virtualChildren.set(child.viewTag, child);
|
|
75
180
|
});
|
|
76
|
-
virtualChildrenToDetach.
|
|
77
|
-
|
|
181
|
+
const virtualChildrenToDetach = new Set(refs.subscribedVirtualHandlers.keys());
|
|
182
|
+
props.virtualChildren?.forEach(child => {
|
|
183
|
+
virtualChildrenToDetach.delete(child.viewTag);
|
|
78
184
|
});
|
|
185
|
+
for (const viewTag of virtualChildrenToDetach) {
|
|
186
|
+
const tags = refs.subscribedVirtualHandlers.get(viewTag);
|
|
187
|
+
if (tags != null) {
|
|
188
|
+
syncSubscriptions(refs, [], tags, ActionType.VIRTUAL_DETECTOR, viewTag);
|
|
189
|
+
}
|
|
190
|
+
refs.subscribedVirtualHandlers.delete(viewTag);
|
|
191
|
+
}
|
|
79
192
|
props.virtualChildren?.forEach(child => {
|
|
80
193
|
if (child.viewRef.current == null) {
|
|
81
194
|
// We must check whether viewRef is not null as otherwise we get an error when intercepting gesture detector
|
|
82
195
|
// switches its component based on whether animated/reanimated events should run.
|
|
83
196
|
return;
|
|
84
197
|
}
|
|
85
|
-
|
|
86
|
-
|
|
198
|
+
let subs = refs.subscribedVirtualHandlers.get(child.viewTag);
|
|
199
|
+
if (subs == null) {
|
|
200
|
+
subs = new Set();
|
|
201
|
+
refs.subscribedVirtualHandlers.set(child.viewTag, subs);
|
|
202
|
+
}
|
|
203
|
+
syncSubscriptions(refs, child.handlerTags, subs, ActionType.VIRTUAL_DETECTOR, child.viewTag);
|
|
204
|
+
// Re-apply per-child DOM props on every run. Already-attached tags need this when only
|
|
205
|
+
// the child's props change; tags attached via a sync-fired observer already had it
|
|
206
|
+
// applied in `attachReadyHandler`, so this is a no-op for them.
|
|
207
|
+
for (const tag of subs) {
|
|
208
|
+
if (refs.attachedHandlers.has(tag)) {
|
|
209
|
+
RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
|
|
210
|
+
userSelect: child.userSelect,
|
|
211
|
+
touchAction: child.touchAction,
|
|
212
|
+
enableContextMenu: child.enableContextMenu
|
|
213
|
+
});
|
|
214
|
+
}
|
|
87
215
|
}
|
|
88
|
-
const currentHandlerTags = new Set(child.handlerTags);
|
|
89
|
-
detachHandlers(currentHandlerTags, attachedVirtualHandlers.current.get(child.viewTag));
|
|
90
|
-
attachHandlers(child.viewRef, propsRef, currentHandlerTags, attachedVirtualHandlers.current.get(child.viewTag), ActionType.VIRTUAL_DETECTOR);
|
|
91
|
-
currentHandlerTags.forEach(tag => {
|
|
92
|
-
RNGestureHandlerModule.updateGestureHandlerConfig(tag, {
|
|
93
|
-
userSelect: child.userSelect,
|
|
94
|
-
touchAction: child.touchAction,
|
|
95
|
-
enableContextMenu: child.enableContextMenu
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
216
|
});
|
|
99
|
-
}, [props.virtualChildren]);
|
|
217
|
+
}, [props.virtualChildren, refs]);
|
|
218
|
+
useEffect(() => {
|
|
219
|
+
return () => teardown(refs);
|
|
220
|
+
}, [refs]);
|
|
100
221
|
return /*#__PURE__*/_jsx(View, {
|
|
101
222
|
style: {
|
|
102
223
|
display: 'contents'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","useRef","View","ActionType","RNGestureHandlerModule","tagMessage","jsx","_jsx","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","useRef","View","ActionType","RNGestureHandlerModule","tagMessage","NodeManager","useNativeGestureRole","jsx","_jsx","attachReadyHandler","refs","tag","actionType","virtualViewTag","handler","getGestureHandlerNode","NATIVE_DETECTOR","shouldAttachGestureToChildView","nativeHandlers","add","viewRef","current","childElementCount","tryAttachNativeHandlersToChildView","VIRTUAL_DETECTOR","child","virtualChildren","get","undefined","attachedHandlers","has","attachGestureHandler","propsRef","updateGestureHandlerConfig","userSelect","touchAction","enableContextMenu","size","view","Error","target","firstElementChild","hasHandler","syncSubscriptions","currentTags","subscribedSet","toUnsubscribe","Set","delete","observeHandler","owner","cancelObservation","detachGestureHandler","teardown","cancelAllObservationsForOwner","clear","subscribedHandlers","subscribedVirtualHandlers","HostGestureDetector","props","handlerTags","children","handlerTagsSet","refsRef","Map","shouldUpdateDOMProps","claimedByVirtual","Array","from","values","reduce","acc","union","handlersToUpdate","intersection","difference","forEach","set","viewTag","virtualChildrenToDetach","keys","tags","subs","style","display","ref"],"sourceRoot":"../../../../src","sources":["v3/detectors/HostGestureDetector.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,7 +6,8 @@ import { isComposedGesture } from '../hooks/utils/relationUtils';
|
|
|
6
6
|
import { AnimatedNativeDetector, nativeDetectorStyles } from './common';
|
|
7
7
|
import HostGestureDetector from './HostGestureDetector';
|
|
8
8
|
import { ReanimatedNativeDetector } from './ReanimatedNativeDetector';
|
|
9
|
-
import {
|
|
9
|
+
import { useGestureRelationsUpdater } from './useGestureRelationsUpdater';
|
|
10
|
+
import { ensureNativeDetectorComponent } from './utils';
|
|
10
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
12
|
export function NativeDetector({
|
|
12
13
|
gesture,
|
|
@@ -17,7 +18,7 @@ export function NativeDetector({
|
|
|
17
18
|
}) {
|
|
18
19
|
const NativeDetectorComponent = gesture.config.dispatchesAnimatedEvents ? AnimatedNativeDetector : gesture.config.shouldUseReanimatedDetector ? ReanimatedNativeDetector : HostGestureDetector;
|
|
19
20
|
ensureNativeDetectorComponent(NativeDetectorComponent);
|
|
20
|
-
|
|
21
|
+
useGestureRelationsUpdater(gesture);
|
|
21
22
|
const handlerTags = useMemo(() => {
|
|
22
23
|
return isComposedGesture(gesture) ? gesture.handlerTags : [gesture.handlerTag];
|
|
23
24
|
}, [gesture]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","Platform","isComposedGesture","AnimatedNativeDetector","nativeDetectorStyles","HostGestureDetector","ReanimatedNativeDetector","
|
|
1
|
+
{"version":3,"names":["React","useMemo","Platform","isComposedGesture","AnimatedNativeDetector","nativeDetectorStyles","HostGestureDetector","ReanimatedNativeDetector","useGestureRelationsUpdater","ensureNativeDetectorComponent","jsx","_jsx","NativeDetector","gesture","children","touchAction","userSelect","enableContextMenu","NativeDetectorComponent","config","dispatchesAnimatedEvents","shouldUseReanimatedDetector","handlerTags","handlerTag","reanimatedHandlers","OS","onGestureHandlerReanimatedEvent","detectorCallbacks","reanimatedEventHandler","onGestureHandlerReanimatedStateChange","onGestureHandlerReanimatedTouchEvent","pointerEvents","onGestureHandlerStateChange","jsEventHandler","onGestureHandlerEvent","onGestureHandlerTouchEvent","onGestureHandlerAnimatedEvent","animatedEventHandler","moduleId","globalThis","_RNGH_MODULE_ID","style","detector"],"sourceRoot":"../../../../src","sources":["v3/detectors/NativeDetector.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,iBAAiB,QAAQ,8BAA8B;AAEhE,SAASC,sBAAsB,EAAEC,oBAAoB,QAAQ,UAAU;AACvE,OAAOC,mBAAmB,MAAM,uBAAuB;AACvD,SAASC,wBAAwB,QAAQ,4BAA4B;AACrE,SAASC,0BAA0B,QAAQ,8BAA8B;AACzE,SAASC,6BAA6B,QAAQ,SAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExD,OAAO,SAASC,cAAcA,CAI5B;EACAC,OAAO;EACPC,QAAQ;EACRC,WAAW;EACXC,UAAU;EACVC;AACgE,CAAC,EAAE;EACnE,MAAMC,uBAAuB,GAAGL,OAAO,CAACM,MAAM,CAACC,wBAAwB,GACnEhB,sBAAsB,GACtBS,OAAO,CAACM,MAAM,CAACE,2BAA2B,GACxCd,wBAAwB,GACxBD,mBAAmB;EAEzBG,6BAA6B,CAACS,uBAAuB,CAAC;EACtDV,0BAA0B,CAACK,OAAO,CAAC;EAEnC,MAAMS,WAAW,GAAGrB,OAAO,CAAC,MAAM;IAChC,OAAOE,iBAAiB,CAACU,OAAO,CAAC,GAC7BA,OAAO,CAACS,WAAW,GACnB,CAACT,OAAO,CAACU,UAAU,CAAC;EAC1B,CAAC,EAAE,CAACV,OAAO,CAAC,CAAC;;EAEb;EACA;EACA;EACA;EACA;EACA;EACA,MAAMW,kBAAkB,GACtBtB,QAAQ,CAACuB,EAAE,KAAK,KAAK,GACjB;IACEC,+BAA+B,EAC7Bb,OAAO,CAACc,iBAAiB,CAACC,sBAAsB;IAClDC,qCAAqC,EACnChB,OAAO,CAACc,iBAAiB,CAACC,sBAAsB;IAClDE,oCAAoC,EAClCjB,OAAO,CAACc,iBAAiB,CAACC;EAC9B,CAAC,GACD;IACEF,+BAA+B,EAC7Bb,OAAO,CAACc,iBAAiB,CAACC;EAC9B,CAAC;EAEP,oBACEjB,IAAA,CAACO,uBAAuB;IACtBH,WAAW,EAAEA,WAAY;IACzBC,UAAU,EAAEA,UAAW;IACvBC,iBAAiB,EAAEA,iBAAkB;IACrCc,aAAa,EAAE;IACf;IAAA;IACAC,2BAA2B,EAAEnB,OAAO,CAACc,iBAAiB,CAACM;IACvD;IAAA;IACAC,qBAAqB,EAAErB,OAAO,CAACc,iBAAiB,CAACM;IACjD;IAAA;IACAE,0BAA0B,EAAEtB,OAAO,CAACc,iBAAiB,CAACM;IACtD;IAAA;IACAJ,qCAAqC,EACnCL,kBAAkB,CAACK;IAErB;IAAA;IACAH,+BAA+B,EAC7BF,kBAAkB,CAACE;IAErB;IAAA;IACAI,oCAAoC,EAClCN,kBAAkB,CAACM;IAErB;IAAA;IACAM,6BAA6B,EAC3BvB,OAAO,CAACc,iBAAiB,CAACU,oBAC3B;IACDC,QAAQ,EAAEC,UAAU,CAACC,eAAgB;IACrClB,WAAW,EAAEA,WAAY;IACzBmB,KAAK,EAAEpC,oBAAoB,CAACqC,QAAS;IAAA5B,QAAA,EACpCA;EAAQ,CACc,CAAC;AAE9B","ignoreList":[]}
|
|
@@ -9,7 +9,8 @@ import { AnimatedNativeDetector, nativeDetectorStyles } from '../common';
|
|
|
9
9
|
import HostGestureDetector from '../HostGestureDetector';
|
|
10
10
|
import { ReanimatedNativeDetector } from '../ReanimatedNativeDetector';
|
|
11
11
|
import { useEnsureGestureHandlerRootView } from '../useEnsureGestureHandlerRootView';
|
|
12
|
-
import {
|
|
12
|
+
import { useGestureRelationsUpdater } from '../useGestureRelationsUpdater';
|
|
13
|
+
import { ensureNativeDetectorComponent } from '../utils';
|
|
13
14
|
import { InterceptingDetectorContext, InterceptingDetectorMode } from './useInterceptingDetectorContext';
|
|
14
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
16
|
export function InterceptingGestureDetector({
|
|
@@ -104,9 +105,7 @@ export function InterceptingGestureDetector({
|
|
|
104
105
|
const reanimatedEvents = useMemo(() => getHandlers('reanimatedEventHandler'), [getHandlers]);
|
|
105
106
|
const reanimatedEventHandler = Reanimated?.useComposedEventHandler(reanimatedEvents);
|
|
106
107
|
ensureNativeDetectorComponent(NativeDetectorComponent);
|
|
107
|
-
|
|
108
|
-
configureRelations(gesture);
|
|
109
|
-
}
|
|
108
|
+
useGestureRelationsUpdater(gesture);
|
|
110
109
|
const handlerTags = useMemo(() => {
|
|
111
110
|
if (gesture) {
|
|
112
111
|
return isComposedGesture(gesture) ? gesture.handlerTags : [gesture.handlerTag];
|