react-native-gesture-handler 2.17.1 → 2.18.1
Sign up to get free protection for your applications and to get access to all the features.
- package/ReanimatedSwipeable/package.json +6 -0
- package/android/build.gradle +0 -103
- package/android/gradle.properties +0 -7
- package/android/paper/src/main/java/com/swmansion/gesturehandler/NativeRNGestureHandlerModuleSpec.java +22 -10
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +16 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/PinchGestureHandler.kt +7 -8
- package/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureDetector.kt +14 -4
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +3 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +3 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +2 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +8 -7
- package/android/src/main/jni/cpp-adapter.cpp +2 -2
- package/apple/Handlers/RNFlingHandler.m +1 -0
- package/apple/Handlers/RNForceTouchHandler.m +2 -0
- package/apple/Handlers/RNLongPressHandler.m +2 -1
- package/apple/Handlers/RNManualHandler.m +1 -0
- package/apple/Handlers/RNNativeViewHandler.mm +31 -27
- package/apple/Handlers/RNPanHandler.m +1 -0
- package/apple/Handlers/RNPinchHandler.m +1 -0
- package/apple/Handlers/RNRotationHandler.m +1 -0
- package/apple/Handlers/RNTapHandler.m +1 -0
- package/apple/RNGestureHandlerModule.mm +1 -2
- package/apple/RNRootViewGestureRecognizer.m +5 -0
- package/lib/commonjs/Directions.js +2 -2
- package/lib/commonjs/Directions.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +2 -2
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/components/DrawerLayout.js +2 -2
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureButtons.js +3 -3
- package/lib/commonjs/components/GestureButtons.js.map +1 -1
- package/lib/commonjs/components/GestureButtonsProps.js +6 -0
- package/lib/commonjs/components/GestureButtonsProps.js.map +1 -0
- package/lib/commonjs/components/GestureComponents.js +1 -1
- package/lib/commonjs/components/GestureComponents.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.android.js +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.js +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
- package/lib/commonjs/components/Pressable/Pressable.js +334 -0
- package/lib/commonjs/components/Pressable/Pressable.js.map +1 -0
- package/lib/commonjs/components/Pressable/PressableProps.js +6 -0
- package/lib/commonjs/components/Pressable/PressableProps.js.map +1 -0
- package/lib/commonjs/components/Pressable/index.js +24 -0
- package/lib/commonjs/components/Pressable/index.js.map +1 -0
- package/lib/commonjs/components/Pressable/utils.js +136 -0
- package/lib/commonjs/components/Pressable/utils.js.map +1 -0
- package/lib/commonjs/components/ReanimatedSwipeable.js +317 -0
- package/lib/commonjs/components/ReanimatedSwipeable.js.map +1 -0
- package/lib/commonjs/components/Swipeable.js +8 -3
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js +4 -4
- package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchableProps.js +6 -0
- package/lib/commonjs/components/touchables/GenericTouchableProps.js.map +1 -0
- package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js +6 -0
- package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js.map +1 -0
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.js +2 -2
- package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
- package/lib/commonjs/ghQueueMicrotask.js +3 -4
- package/lib/commonjs/ghQueueMicrotask.js.map +1 -1
- package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/GestureHandlerEventPayload.js +2 -0
- package/lib/commonjs/handlers/GestureHandlerEventPayload.js.map +1 -0
- package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +21 -19
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/createNativeWrapper.js +3 -3
- package/lib/commonjs/handlers/createNativeWrapper.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +0 -86
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +9 -9
- package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js +2 -2
- package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +21 -31
- package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +5 -5
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js +7 -7
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureComposition.js +5 -5
- package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureStateManager.js +1 -1
- package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
- package/lib/commonjs/handlers/getNextHandlerTag.js +12 -0
- package/lib/commonjs/handlers/getNextHandlerTag.js.map +1 -0
- package/lib/commonjs/handlers/handlersRegistry.js +0 -6
- package/lib/commonjs/handlers/handlersRegistry.js.map +1 -1
- package/lib/commonjs/handlers/utils.js +91 -0
- package/lib/commonjs/handlers/utils.js.map +1 -0
- package/lib/commonjs/index.js +8 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/init.js +1 -1
- package/lib/commonjs/init.js.map +1 -1
- package/lib/commonjs/jestUtils/jestUtils.js +2 -2
- package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
- package/lib/commonjs/mocks.js +2 -2
- package/lib/commonjs/mocks.js.map +1 -1
- package/lib/commonjs/utils.js +1 -1
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/commonjs/web/Gestures.js +1 -1
- package/lib/commonjs/web/Gestures.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js +4 -4
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +6 -11
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/tools/EventManager.js +2 -2
- package/lib/commonjs/web/tools/EventManager.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +4 -11
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/commonjs/web/tools/LeastSquareSolver.js +18 -18
- package/lib/commonjs/web/tools/LeastSquareSolver.js.map +1 -1
- package/lib/commonjs/web/tools/PointerEventManager.js +2 -2
- package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/PointerTracker.js +1 -1
- package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
- package/lib/commonjs/web/tools/TouchEventManager.js +4 -4
- package/lib/commonjs/web/tools/TouchEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/VelocityTracker.js +6 -6
- package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -1
- package/lib/commonjs/web_hammer/NodeManager.js +2 -0
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
- package/lib/module/Directions.js +2 -2
- package/lib/module/Directions.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +2 -2
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/components/DrawerLayout.js +2 -2
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureButtons.js +3 -3
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/GestureButtonsProps.js +2 -0
- package/lib/module/components/GestureButtonsProps.js.map +1 -0
- package/lib/module/components/GestureComponents.js +1 -1
- package/lib/module/components/GestureComponents.js.map +1 -1
- package/lib/module/components/GestureHandlerButton.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.android.js +1 -1
- package/lib/module/components/GestureHandlerRootView.android.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.js +1 -1
- package/lib/module/components/GestureHandlerRootView.js.map +1 -1
- package/lib/module/components/Pressable/Pressable.js +309 -0
- package/lib/module/components/Pressable/Pressable.js.map +1 -0
- package/lib/module/components/Pressable/PressableProps.js +2 -0
- package/lib/module/components/Pressable/PressableProps.js.map +1 -0
- package/lib/module/components/Pressable/index.js +3 -0
- package/lib/module/components/Pressable/index.js.map +1 -0
- package/lib/module/components/Pressable/utils.js +120 -0
- package/lib/module/components/Pressable/utils.js.map +1 -0
- package/lib/module/components/ReanimatedSwipeable.js +293 -0
- package/lib/module/components/ReanimatedSwipeable.js.map +1 -0
- package/lib/module/components/Swipeable.js +9 -3
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchable.js +4 -4
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchableProps.js +2 -0
- package/lib/module/components/touchables/GenericTouchableProps.js.map +1 -0
- package/lib/module/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedbackProps.js +2 -0
- package/lib/module/components/touchables/TouchableNativeFeedbackProps.js.map +1 -0
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -1
- package/lib/module/getShadowNodeFromRef.js +2 -2
- package/lib/module/getShadowNodeFromRef.js.map +1 -1
- package/lib/module/ghQueueMicrotask.js +3 -4
- package/lib/module/ghQueueMicrotask.js.map +1 -1
- package/lib/module/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/module/handlers/GestureHandlerEventPayload.js +2 -0
- package/lib/module/handlers/GestureHandlerEventPayload.js.map +1 -0
- package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/handlers/createHandler.js +6 -5
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/createNativeWrapper.js +3 -3
- package/lib/module/handlers/createNativeWrapper.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +0 -72
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +4 -4
- package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js +1 -1
- package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/index.js +1 -1
- package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +18 -28
- package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/utils.js +5 -5
- package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/module/handlers/gestures/flingGesture.js.map +1 -1
- package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js +6 -6
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/gestureComposition.js +5 -5
- package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.js +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/module/handlers/gestures/nativeGesture.js.map +1 -1
- package/lib/module/handlers/gestures/panGesture.js.map +1 -1
- package/lib/module/handlers/gestures/pinchGesture.js.map +1 -1
- package/lib/module/handlers/gestures/rotationGesture.js.map +1 -1
- package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
- package/lib/module/handlers/getNextHandlerTag.js +5 -0
- package/lib/module/handlers/getNextHandlerTag.js.map +1 -0
- package/lib/module/handlers/handlersRegistry.js +0 -4
- package/lib/module/handlers/handlersRegistry.js.map +1 -1
- package/lib/module/handlers/utils.js +73 -0
- package/lib/module/handlers/utils.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/init.js +1 -1
- package/lib/module/init.js.map +1 -1
- package/lib/module/jestUtils/jestUtils.js +2 -2
- package/lib/module/jestUtils/jestUtils.js.map +1 -1
- package/lib/module/mocks.js +2 -2
- package/lib/module/mocks.js.map +1 -1
- package/lib/module/utils.js +1 -1
- package/lib/module/utils.js.map +1 -1
- package/lib/module/web/Gestures.js +1 -1
- package/lib/module/web/Gestures.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/module/web/detectors/ScaleGestureDetector.js +4 -4
- package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +6 -11
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/tools/EventManager.js +2 -2
- package/lib/module/web/tools/EventManager.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerWebDelegate.js +4 -11
- package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/module/web/tools/LeastSquareSolver.js +18 -18
- package/lib/module/web/tools/LeastSquareSolver.js.map +1 -1
- package/lib/module/web/tools/PointerEventManager.js +2 -2
- package/lib/module/web/tools/PointerEventManager.js.map +1 -1
- package/lib/module/web/tools/PointerTracker.js +1 -1
- package/lib/module/web/tools/PointerTracker.js.map +1 -1
- package/lib/module/web/tools/TouchEventManager.js +4 -4
- package/lib/module/web/tools/TouchEventManager.js.map +1 -1
- package/lib/module/web/tools/VelocityTracker.js +6 -6
- package/lib/module/web/tools/VelocityTracker.js.map +1 -1
- package/lib/module/web_hammer/NodeManager.js +1 -1
- package/lib/module/web_hammer/NodeManager.js.map +1 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
- package/lib/typescript/components/GestureButtons.d.ts +2 -85
- package/lib/typescript/components/GestureButtonsProps.d.ts +99 -0
- package/lib/typescript/components/GestureHandlerButton.d.ts +1 -1
- package/lib/typescript/components/Pressable/Pressable.d.ts +3 -0
- package/lib/typescript/components/Pressable/PressableProps.d.ts +116 -0
- package/lib/typescript/components/Pressable/index.d.ts +2 -0
- package/lib/typescript/components/Pressable/utils.d.ts +15 -0
- package/lib/typescript/components/ReanimatedSwipeable.d.ts +125 -0
- package/lib/typescript/components/Swipeable.d.ts +5 -0
- package/lib/typescript/components/touchables/GenericTouchable.d.ts +4 -16
- package/lib/typescript/components/touchables/GenericTouchableProps.d.ts +14 -0
- package/lib/typescript/components/touchables/TouchableHighlight.d.ts +1 -1
- package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +2 -9
- package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +9 -0
- package/lib/typescript/components/touchables/TouchableOpacity.d.ts +1 -1
- package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +2 -1
- package/lib/typescript/handlers/FlingGestureHandler.d.ts +2 -6
- package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +1 -10
- package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts +159 -0
- package/lib/typescript/handlers/LongPressGestureHandler.d.ts +2 -35
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +2 -6
- package/lib/typescript/handlers/PanGestureHandler.d.ts +3 -51
- package/lib/typescript/handlers/PinchGestureHandler.d.ts +2 -23
- package/lib/typescript/handlers/RotationGestureHandler.d.ts +2 -23
- package/lib/typescript/handlers/TapGestureHandler.d.ts +2 -6
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +0 -5
- package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +10 -9
- package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +1 -0
- package/lib/typescript/handlers/gestures/flingGesture.d.ts +2 -1
- package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +2 -1
- package/lib/typescript/handlers/gestures/gesture.d.ts +2 -8
- package/lib/typescript/handlers/gestures/longPressGesture.d.ts +2 -1
- package/lib/typescript/handlers/gestures/nativeGesture.d.ts +2 -1
- package/lib/typescript/handlers/gestures/panGesture.d.ts +2 -1
- package/lib/typescript/handlers/gestures/pinchGesture.d.ts +1 -1
- package/lib/typescript/handlers/gestures/rotationGesture.d.ts +1 -1
- package/lib/typescript/handlers/gestures/tapGesture.d.ts +2 -1
- package/lib/typescript/handlers/getNextHandlerTag.d.ts +1 -0
- package/lib/typescript/handlers/handlersRegistry.d.ts +1 -2
- package/lib/typescript/handlers/utils.d.ts +6 -0
- package/lib/typescript/index.d.ts +12 -9
- package/lib/typescript/jestUtils/jestUtils.d.ts +9 -7
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/GestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/TapGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/NodeManager.d.ts +4 -5
- package/package.json +14 -16
- package/src/Directions.ts +2 -2
- package/src/RNGestureHandlerModule.web.ts +2 -2
- package/src/components/DrawerLayout.tsx +7 -9
- package/src/components/GestureButtons.tsx +13 -123
- package/src/components/GestureButtonsProps.ts +115 -0
- package/src/components/GestureComponents.tsx +1 -1
- package/src/components/GestureHandlerButton.tsx +1 -1
- package/src/components/GestureHandlerRootView.android.tsx +1 -1
- package/src/components/GestureHandlerRootView.tsx +1 -1
- package/src/components/Pressable/Pressable.tsx +398 -0
- package/src/components/Pressable/PressableProps.tsx +149 -0
- package/src/components/Pressable/index.ts +2 -0
- package/src/components/Pressable/utils.ts +180 -0
- package/src/components/ReanimatedSwipeable.tsx +629 -0
- package/src/components/Swipeable.tsx +12 -6
- package/src/components/touchables/GenericTouchable.tsx +9 -36
- package/src/components/touchables/GenericTouchableProps.ts +26 -0
- package/src/components/touchables/TouchableHighlight.tsx +2 -4
- package/src/components/touchables/TouchableNativeFeedback.android.tsx +7 -17
- package/src/components/touchables/TouchableNativeFeedbackProps.tsx +12 -0
- package/src/components/touchables/TouchableOpacity.tsx +3 -5
- package/src/components/touchables/TouchableWithoutFeedback.tsx +2 -1
- package/src/getShadowNodeFromRef.ts +2 -2
- package/src/ghQueueMicrotask.ts +7 -4
- package/src/handlers/FlingGestureHandler.ts +1 -6
- package/src/handlers/ForceTouchGestureHandler.ts +1 -12
- package/src/handlers/GestureHandlerEventPayload.ts +184 -0
- package/src/handlers/LongPressGestureHandler.ts +1 -40
- package/src/handlers/NativeViewGestureHandler.ts +1 -7
- package/src/handlers/PanGestureHandler.ts +1 -58
- package/src/handlers/PinchGestureHandler.ts +1 -27
- package/src/handlers/RotationGestureHandler.ts +1 -27
- package/src/handlers/TapGestureHandler.ts +1 -6
- package/src/handlers/createHandler.tsx +6 -11
- package/src/handlers/createNativeWrapper.tsx +3 -3
- package/src/handlers/gestureHandlerCommon.ts +3 -79
- package/src/handlers/gestureHandlerTypesCompat.ts +16 -30
- package/src/handlers/gestures/GestureDetector/Wrap.tsx +1 -1
- package/src/handlers/gestures/GestureDetector/attachHandlers.ts +4 -7
- package/src/handlers/gestures/GestureDetector/dropHandlers.ts +1 -1
- package/src/handlers/gestures/GestureDetector/index.tsx +1 -1
- package/src/handlers/gestures/GestureDetector/updateHandlers.ts +20 -30
- package/src/handlers/gestures/GestureDetector/useDetectorUpdater.ts +1 -1
- package/src/handlers/gestures/GestureDetector/utils.ts +5 -5
- package/src/handlers/gestures/flingGesture.ts +2 -4
- package/src/handlers/gestures/forceTouchGesture.ts +2 -4
- package/src/handlers/gestures/gesture.ts +17 -15
- package/src/handlers/gestures/gestureComposition.ts +5 -5
- package/src/handlers/gestures/gestureStateManager.ts +1 -1
- package/src/handlers/gestures/longPressGesture.ts +2 -4
- package/src/handlers/gestures/nativeGesture.ts +2 -4
- package/src/handlers/gestures/panGesture.ts +2 -4
- package/src/handlers/gestures/pinchGesture.ts +1 -1
- package/src/handlers/gestures/rotationGesture.ts +1 -1
- package/src/handlers/gestures/tapGesture.ts +2 -4
- package/src/handlers/getNextHandlerTag.ts +5 -0
- package/src/handlers/handlersRegistry.ts +0 -6
- package/src/handlers/utils.ts +75 -0
- package/src/index.ts +25 -36
- package/src/init.ts +1 -1
- package/src/jestUtils/jestUtils.ts +12 -10
- package/src/mocks.ts +2 -2
- package/src/utils.ts +1 -1
- package/src/web/Gestures.ts +1 -1
- package/src/web/detectors/RotationGestureDetector.ts +1 -1
- package/src/web/detectors/ScaleGestureDetector.ts +4 -4
- package/src/web/handlers/FlingGestureHandler.ts +1 -1
- package/src/web/handlers/GestureHandler.ts +8 -14
- package/src/web/handlers/NativeViewGestureHandler.ts +3 -3
- package/src/web/handlers/PanGestureHandler.ts +1 -1
- package/src/web/handlers/TapGestureHandler.ts +1 -1
- package/src/web/tools/EventManager.ts +2 -2
- package/src/web/tools/GestureHandlerWebDelegate.ts +3 -8
- package/src/web/tools/LeastSquareSolver.ts +18 -18
- package/src/web/tools/PointerEventManager.ts +2 -2
- package/src/web/tools/PointerTracker.ts +2 -1
- package/src/web/tools/TouchEventManager.ts +4 -4
- package/src/web/tools/VelocityTracker.ts +6 -6
- package/src/web_hammer/NodeManager.ts +2 -11
package/android/build.gradle
CHANGED
@@ -207,106 +207,3 @@ dependencies {
|
|
207
207
|
implementation "androidx.core:core-ktx:1.6.0"
|
208
208
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
209
209
|
}
|
210
|
-
|
211
|
-
def isGHExampleApp() {
|
212
|
-
return project.hasProperty('isGHExampleApp') && project.property('isGHExampleApp') == "true"
|
213
|
-
}
|
214
|
-
|
215
|
-
def getAbsoluteCodegenArtifactsPaperDestination() {
|
216
|
-
if (!project.hasProperty('codegenArtifactsPaperDestination')) {
|
217
|
-
throw new Exception('[react-native-gesture-handler] Please fill codegenArtifactsPaperDestination variable in android/gradle.properties to point to the correct path to generated specs for paper')
|
218
|
-
}
|
219
|
-
|
220
|
-
return "${project.rootDir}/../../${project.property('codegenArtifactsPaperDestination')}"
|
221
|
-
}
|
222
|
-
|
223
|
-
def getAbsoluteCodegenArtifactsSource() {
|
224
|
-
if (!project.hasProperty('codegenArtifactsSource')) {
|
225
|
-
throw new Exception('[react-native-gesture-handler] Please fill codegenArtifactsSource variable in android/gradle.properties to point to the correct path to codegenerated artifacts')
|
226
|
-
}
|
227
|
-
|
228
|
-
return "${project.rootDir}/../../${project.property('codegenArtifactsSource')}"
|
229
|
-
}
|
230
|
-
|
231
|
-
|
232
|
-
tasks.register('copyCodegenArtifacts') {
|
233
|
-
group 'After build tasks'
|
234
|
-
description 'Task which copies codegen artifacts to paper architecture'
|
235
|
-
|
236
|
-
if (!isGHExampleApp() || !isNewArchitectureEnabled()) {
|
237
|
-
return
|
238
|
-
}
|
239
|
-
|
240
|
-
dependsOn tasks.generateCodegenArtifactsFromSchema
|
241
|
-
|
242
|
-
doLast {
|
243
|
-
|
244
|
-
def absoluteCodegenArtifactsPaperDestination = getAbsoluteCodegenArtifactsPaperDestination()
|
245
|
-
def absoluteCodegenArtifactsSource = getAbsoluteCodegenArtifactsSource()
|
246
|
-
|
247
|
-
def existingFiles = fileTree(absoluteCodegenArtifactsPaperDestination).matching {
|
248
|
-
include '**/*.java'
|
249
|
-
}
|
250
|
-
|
251
|
-
def generatedFiles = fileTree(absoluteCodegenArtifactsSource).matching {
|
252
|
-
include '**/*.java'
|
253
|
-
}
|
254
|
-
|
255
|
-
def existingFilesMap = [:]
|
256
|
-
|
257
|
-
existingFiles.forEach { existingFile ->
|
258
|
-
println existingFile
|
259
|
-
existingFilesMap[existingFile.name] = 1
|
260
|
-
}
|
261
|
-
|
262
|
-
generatedFiles.forEach { generatedFile ->
|
263
|
-
if (!existingFilesMap.containsKey(generatedFile.name)) {
|
264
|
-
logger.warn("[react-native-gesture-handler] ${generatedFile.name} not found in paper dir, if it's used on Android you need to copy it manually and implement yourself before using auto-copy feature.")
|
265
|
-
}
|
266
|
-
}
|
267
|
-
|
268
|
-
if (existingFiles.size() == 0) {
|
269
|
-
logger.warn("[react-native-gesture-handler] Paper destination with codegen interfaces is empty. This might be okay if you don't have any interfaces/delegates used on Android, but if that's not the case please check if codegenArtifactsPaperDestination property in android/gradle.properties is correct.")
|
270
|
-
}
|
271
|
-
|
272
|
-
existingFiles.forEach { existingFile ->
|
273
|
-
def generatedFile = new File("${absoluteCodegenArtifactsSource}/${existingFile.name}")
|
274
|
-
|
275
|
-
if (!generatedFile.exists()) {
|
276
|
-
logger.warn("[react-native-gesture-handler] ${existingFile.name} file does not exist in codegen artifacts source destination. Please check if you still need this interface/delagete.")
|
277
|
-
}
|
278
|
-
}
|
279
|
-
|
280
|
-
copy {
|
281
|
-
from absoluteCodegenArtifactsSource
|
282
|
-
include existingFiles.collect { it.name }
|
283
|
-
into absoluteCodegenArtifactsPaperDestination
|
284
|
-
}
|
285
|
-
}
|
286
|
-
}
|
287
|
-
|
288
|
-
if (isGHExampleApp() && isNewArchitectureEnabled() && !project.hasProperty('skipCodegenCopyTask')) {
|
289
|
-
tasks.generateCodegenArtifactsFromSchema.finalizedBy('copyCodegenArtifacts')
|
290
|
-
}
|
291
|
-
|
292
|
-
if (project == rootProject) {
|
293
|
-
tasks.register('checkIntegrityBetweenArchitectures') {
|
294
|
-
group 'Verification tasks'
|
295
|
-
description 'Task to check integrity between fabric and paper architecture in terms of codegen generated interfaces/delegates'
|
296
|
-
|
297
|
-
def absoluteCodegenArtifactsPaperDestination = "../${project.property('codegenArtifactsPaperDestination')}"
|
298
|
-
def absoluteCodegenArtifactsSource = "../${project.property('codegenArtifactsSource')}"
|
299
|
-
|
300
|
-
def existingFiles = fileTree(absoluteCodegenArtifactsPaperDestination).matching {
|
301
|
-
include '**/*.java'
|
302
|
-
}
|
303
|
-
|
304
|
-
existingFiles.forEach { existingFile ->
|
305
|
-
def generatedFile = new File("${absoluteCodegenArtifactsSource}/${existingFile.name}")
|
306
|
-
|
307
|
-
if (existingFile.text != generatedFile.text) {
|
308
|
-
throw new RuntimeException("[react-native-gesture-handler] The source of ${existingFile.name} does not match with the one generated by codegen. Please check if you commited changes produced by copyCodegenArtifacts task.")
|
309
|
-
}
|
310
|
-
}
|
311
|
-
}
|
312
|
-
}
|
@@ -17,10 +17,3 @@ org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemor
|
|
17
17
|
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
18
18
|
# org.gradle.parallel=true
|
19
19
|
RNGH_kotlinVersion=1.6.21
|
20
|
-
|
21
|
-
# Path to codegen output directory with this library view managers' interfaces & delegates. Used by `copyCodegenArtifacts` task that helps to synchronize newly generated files with their Paper counterparts.
|
22
|
-
codegenArtifactsSource=android/build/generated/source/codegen/java/com/facebook/react/viewmanagers
|
23
|
-
|
24
|
-
# Path to directory with view managers' interfaces & delegates used while running on Paper architecture. This property is used as the output path for `copyCodegenArtifacts` task.
|
25
|
-
# Used by copyCodegenArtifacts task that automates copying those interfaces/delegates after codegen is run.
|
26
|
-
codegenArtifactsPaperDestination=android/paper/src/main/java/com/facebook/react/viewmanagers
|
@@ -1,15 +1,27 @@
|
|
1
|
+
|
2
|
+
/**
|
3
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
4
|
+
*
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
6
|
+
* once the code is regenerated.
|
7
|
+
*
|
8
|
+
* @generated by codegen project: GenerateModuleJavaSpec.js
|
9
|
+
*
|
10
|
+
* @nolint
|
11
|
+
*/
|
12
|
+
|
1
13
|
package com.swmansion.gesturehandler;
|
2
14
|
|
3
15
|
import com.facebook.proguard.annotations.DoNotStrip;
|
4
16
|
import com.facebook.react.bridge.ReactApplicationContext;
|
5
17
|
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
6
18
|
import com.facebook.react.bridge.ReactMethod;
|
19
|
+
import com.facebook.react.bridge.ReactModuleWithSpec;
|
7
20
|
import com.facebook.react.bridge.ReadableMap;
|
8
21
|
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
9
22
|
import javax.annotation.Nonnull;
|
10
|
-
import com.facebook.react.bridge.ReactMethod;
|
11
23
|
|
12
|
-
public abstract class NativeRNGestureHandlerModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
|
24
|
+
public abstract class NativeRNGestureHandlerModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule {
|
13
25
|
public static final String NAME = "RNGestureHandlerModule";
|
14
26
|
|
15
27
|
public NativeRNGestureHandlerModuleSpec(ReactApplicationContext reactContext) {
|
@@ -21,35 +33,35 @@ public abstract class NativeRNGestureHandlerModuleSpec extends ReactContextBaseJ
|
|
21
33
|
return NAME;
|
22
34
|
}
|
23
35
|
|
24
|
-
@DoNotStrip
|
25
36
|
@ReactMethod
|
37
|
+
@DoNotStrip
|
26
38
|
public abstract void handleSetJSResponder(double tag, boolean blockNativeResponder);
|
27
39
|
|
28
|
-
@DoNotStrip
|
29
40
|
@ReactMethod
|
41
|
+
@DoNotStrip
|
30
42
|
public abstract void handleClearJSResponder();
|
31
43
|
|
32
|
-
@DoNotStrip
|
33
44
|
@ReactMethod
|
45
|
+
@DoNotStrip
|
34
46
|
public abstract void createGestureHandler(String handlerName, double handlerTag, ReadableMap config);
|
35
47
|
|
36
|
-
@DoNotStrip
|
37
48
|
@ReactMethod
|
49
|
+
@DoNotStrip
|
38
50
|
public abstract void attachGestureHandler(double handlerTag, double newView, double actionType);
|
39
51
|
|
40
|
-
@DoNotStrip
|
41
52
|
@ReactMethod
|
53
|
+
@DoNotStrip
|
42
54
|
public abstract void updateGestureHandler(double handlerTag, ReadableMap newConfig);
|
43
55
|
|
44
|
-
@DoNotStrip
|
45
56
|
@ReactMethod
|
57
|
+
@DoNotStrip
|
46
58
|
public abstract void dropGestureHandler(double handlerTag);
|
47
59
|
|
60
|
+
@ReactMethod(isBlockingSynchronousMethod = true)
|
48
61
|
@DoNotStrip
|
49
|
-
@ReactMethod
|
50
62
|
public abstract boolean install();
|
51
63
|
|
52
|
-
@DoNotStrip
|
53
64
|
@ReactMethod
|
65
|
+
@DoNotStrip
|
54
66
|
public abstract void flushOperations();
|
55
67
|
}
|
package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt
CHANGED
@@ -615,7 +615,7 @@ class GestureHandlerOrchestrator(
|
|
615
615
|
private val matrixTransformCoords = FloatArray(2)
|
616
616
|
private val inverseMatrix = Matrix()
|
617
617
|
private val tempCoords = FloatArray(2)
|
618
|
-
private val handlersComparator = Comparator<GestureHandler
|
618
|
+
private val handlersComparator = Comparator<GestureHandler<*>> { a, b ->
|
619
619
|
return@Comparator if (a.isActive && b.isActive || a.isAwaiting && b.isAwaiting) {
|
620
620
|
// both A and B are either active or awaiting activation, in which case we prefer one that
|
621
621
|
// has activated (or turned into "awaiting" state) earlier
|
@@ -9,6 +9,8 @@ import android.widget.ScrollView
|
|
9
9
|
import com.facebook.react.views.scroll.ReactScrollView
|
10
10
|
import com.facebook.react.views.swiperefresh.ReactSwipeRefreshLayout
|
11
11
|
import com.facebook.react.views.textinput.ReactEditText
|
12
|
+
import com.swmansion.gesturehandler.react.RNGestureHandlerButtonViewManager
|
13
|
+
import com.swmansion.gesturehandler.react.isScreenReaderOn
|
12
14
|
|
13
15
|
class NativeViewGestureHandler : GestureHandler<NativeViewGestureHandler>() {
|
14
16
|
private var shouldActivateOnStart = false
|
@@ -82,6 +84,17 @@ class NativeViewGestureHandler : GestureHandler<NativeViewGestureHandler>() {
|
|
82
84
|
|
83
85
|
override fun onHandle(event: MotionEvent, sourceEvent: MotionEvent) {
|
84
86
|
val view = view!!
|
87
|
+
|
88
|
+
val isTouchExplorationEnabled = view.context.isScreenReaderOn()
|
89
|
+
|
90
|
+
if (view is RNGestureHandlerButtonViewManager.ButtonViewGroup && isTouchExplorationEnabled) {
|
91
|
+
// Fix for: https://github.com/software-mansion/react-native-gesture-handler/issues/2808
|
92
|
+
// When TalkBack is enabled, events are often not being sent to the orchestrator for processing.
|
93
|
+
// Instead, states will be changed directly by an alternative mechanism added in this PR:
|
94
|
+
// https://github.com/software-mansion/react-native-gesture-handler/pull/2234
|
95
|
+
return
|
96
|
+
}
|
97
|
+
|
85
98
|
if (event.actionMasked == MotionEvent.ACTION_UP) {
|
86
99
|
if (state == STATE_UNDETERMINED && !hook.canBegin(event)) {
|
87
100
|
cancel()
|
@@ -106,13 +119,16 @@ class NativeViewGestureHandler : GestureHandler<NativeViewGestureHandler>() {
|
|
106
119
|
view.onTouchEvent(event)
|
107
120
|
activate()
|
108
121
|
}
|
122
|
+
|
109
123
|
tryIntercept(view, event) -> {
|
110
124
|
view.onTouchEvent(event)
|
111
125
|
activate()
|
112
126
|
}
|
127
|
+
|
113
128
|
hook.wantsToHandleEventBeforeActivation() -> {
|
114
129
|
hook.handleEventBeforeActivation(event)
|
115
130
|
}
|
131
|
+
|
116
132
|
state != STATE_BEGAN -> {
|
117
133
|
if (hook.canBegin(event)) {
|
118
134
|
begin()
|
@@ -70,14 +70,13 @@ class PinchGestureHandler : GestureHandler<PinchGestureHandler>() {
|
|
70
70
|
this.focalPointX = point.x
|
71
71
|
this.focalPointY = point.y
|
72
72
|
}
|
73
|
-
|
74
|
-
if (sourceEvent.actionMasked == MotionEvent.
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
fail()
|
73
|
+
|
74
|
+
if (sourceEvent.actionMasked == MotionEvent.ACTION_UP) {
|
75
|
+
if (state == STATE_ACTIVE) {
|
76
|
+
end()
|
77
|
+
} else {
|
78
|
+
fail()
|
79
|
+
}
|
81
80
|
}
|
82
81
|
}
|
83
82
|
|
@@ -111,11 +111,21 @@ class RotationGestureDetector(private val gestureListener: OnRotationGestureList
|
|
111
111
|
updateCurrent(event)
|
112
112
|
gestureListener?.onRotation(this)
|
113
113
|
}
|
114
|
-
MotionEvent.ACTION_POINTER_UP ->
|
114
|
+
MotionEvent.ACTION_POINTER_UP -> {
|
115
115
|
val pointerId = event.getPointerId(event.actionIndex)
|
116
|
-
|
117
|
-
|
118
|
-
|
116
|
+
|
117
|
+
// All key pointers are up
|
118
|
+
if (!isInProgress && pointerId == pointerIds[0]) {
|
119
|
+
gestureListener?.onRotationEnd(this)
|
120
|
+
}
|
121
|
+
|
122
|
+
// One of the key pointers is up
|
123
|
+
if (isInProgress && pointerIds.contains(pointerId)) {
|
124
|
+
if (pointerId == pointerIds[0]) {
|
125
|
+
pointerIds[0] = pointerIds[1]
|
126
|
+
}
|
127
|
+
pointerIds[1] = MotionEvent.INVALID_POINTER_ID
|
128
|
+
isInProgress = false
|
119
129
|
}
|
120
130
|
}
|
121
131
|
MotionEvent.ACTION_UP -> finish()
|
@@ -9,6 +9,7 @@ package com.swmansion.gesturehandler.react
|
|
9
9
|
import androidx.core.util.Pools
|
10
10
|
import com.facebook.react.bridge.Arguments
|
11
11
|
import com.facebook.react.bridge.WritableMap
|
12
|
+
import com.facebook.react.uimanager.UIManagerHelper
|
12
13
|
import com.facebook.react.uimanager.events.Event
|
13
14
|
import com.swmansion.gesturehandler.core.GestureHandler
|
14
15
|
import com.swmansion.gesturehandler.react.eventbuilders.GestureHandlerEventDataBuilder
|
@@ -29,7 +30,8 @@ class RNGestureHandlerEvent private constructor() : Event<RNGestureHandlerEvent>
|
|
29
30
|
dataBuilder: GestureHandlerEventDataBuilder<T>,
|
30
31
|
useNativeAnimatedName: Boolean
|
31
32
|
) {
|
32
|
-
|
33
|
+
val view = handler.view!!
|
34
|
+
super.init(UIManagerHelper.getSurfaceId(view), view.id)
|
33
35
|
this.dataBuilder = dataBuilder
|
34
36
|
this.useTopPrefixedName = useNativeAnimatedName
|
35
37
|
coalescingKey = handler.eventCoalescingKey
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt
CHANGED
@@ -9,6 +9,7 @@ package com.swmansion.gesturehandler.react
|
|
9
9
|
import androidx.core.util.Pools
|
10
10
|
import com.facebook.react.bridge.Arguments
|
11
11
|
import com.facebook.react.bridge.WritableMap
|
12
|
+
import com.facebook.react.uimanager.UIManagerHelper
|
12
13
|
import com.facebook.react.uimanager.events.Event
|
13
14
|
import com.swmansion.gesturehandler.core.GestureHandler
|
14
15
|
import com.swmansion.gesturehandler.react.eventbuilders.GestureHandlerEventDataBuilder
|
@@ -24,7 +25,8 @@ class RNGestureHandlerStateChangeEvent private constructor() : Event<RNGestureHa
|
|
24
25
|
oldState: Int,
|
25
26
|
dataBuilder: GestureHandlerEventDataBuilder<T>,
|
26
27
|
) {
|
27
|
-
|
28
|
+
val view = handler.view!!
|
29
|
+
super.init(UIManagerHelper.getSurfaceId(view), view.id)
|
28
30
|
this.dataBuilder = dataBuilder
|
29
31
|
this.newState = newState
|
30
32
|
this.oldState = oldState
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt
CHANGED
@@ -11,7 +11,8 @@ class RNGestureHandlerTouchEvent private constructor() : Event<RNGestureHandlerT
|
|
11
11
|
private var extraData: WritableMap? = null
|
12
12
|
private var coalescingKey: Short = 0
|
13
13
|
private fun <T : GestureHandler<T>> init(handler: T) {
|
14
|
-
|
14
|
+
val view = handler.view!!
|
15
|
+
super.init(UIManagerHelper.getSurfaceId(view), view.id)
|
15
16
|
extraData = createEventData(handler)
|
16
17
|
coalescingKey = handler.eventCoalescingKey
|
17
18
|
}
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt
CHANGED
@@ -4,6 +4,8 @@ import android.view.View
|
|
4
4
|
import android.view.ViewGroup
|
5
5
|
import com.facebook.react.uimanager.PointerEvents
|
6
6
|
import com.facebook.react.uimanager.ReactPointerEventsView
|
7
|
+
import com.facebook.react.views.scroll.ReactHorizontalScrollView
|
8
|
+
import com.facebook.react.views.scroll.ReactScrollView
|
7
9
|
import com.facebook.react.views.view.ReactViewGroup
|
8
10
|
import com.swmansion.gesturehandler.core.PointerEventsConfig
|
9
11
|
import com.swmansion.gesturehandler.core.ViewConfigurationHelper
|
@@ -40,12 +42,11 @@ class RNViewConfigurationHelper : ViewConfigurationHelper {
|
|
40
42
|
} else parent.getChildAt(index)
|
41
43
|
}
|
42
44
|
|
43
|
-
override fun isViewClippingChildren(view: ViewGroup)
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
} else false
|
45
|
+
override fun isViewClippingChildren(view: ViewGroup) = when {
|
46
|
+
view.clipChildren -> true
|
47
|
+
view is ReactScrollView -> view.overflow != "visible"
|
48
|
+
view is ReactHorizontalScrollView -> view.overflow != "visible"
|
49
|
+
view is ReactViewGroup -> view.overflow == "hidden"
|
50
|
+
else -> false
|
50
51
|
}
|
51
52
|
}
|
@@ -18,8 +18,8 @@ void decorateRuntime(jsi::Runtime &runtime) {
|
|
18
18
|
if (!arguments[0].isObject()) {
|
19
19
|
return jsi::Value::null();
|
20
20
|
}
|
21
|
-
|
22
|
-
|
21
|
+
|
22
|
+
auto shadowNode = shadowNodeFromValue(runtime, arguments[0]);
|
23
23
|
bool isFormsStackingContext = shadowNode->getTraits().check(ShadowNodeTraits::FormsStackingContext);
|
24
24
|
|
25
25
|
return jsi::Value(isFormsStackingContext);
|
@@ -60,6 +60,7 @@
|
|
60
60
|
_lastPoint = [[[touches allObjects] objectAtIndex:0] locationInView:_gestureHandler.recognizer.view];
|
61
61
|
[super touchesCancelled:touches withEvent:event];
|
62
62
|
[_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
|
63
|
+
[self reset];
|
63
64
|
}
|
64
65
|
|
65
66
|
- (void)triggerAction
|
@@ -115,6 +115,7 @@ static const BOOL defaultFeedbackOnActivation = NO;
|
|
115
115
|
{
|
116
116
|
[super touchesCancelled:touches withEvent:event];
|
117
117
|
[_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
|
118
|
+
[self reset];
|
118
119
|
}
|
119
120
|
|
120
121
|
- (void)handleForceWithTouches:(NSSet<RNGHUITouch *> *)touches
|
@@ -184,6 +185,7 @@ static const BOOL defaultFeedbackOnActivation = NO;
|
|
184
185
|
|
185
186
|
- (instancetype)initWithTag:(NSNumber *)tag
|
186
187
|
{
|
188
|
+
RCTLogWarn(@"ForceTouchHandler is not supported on macOS");
|
187
189
|
if ((self = [super initWithTag:tag])) {
|
188
190
|
_recognizer = [NSGestureRecognizer alloc];
|
189
191
|
}
|
@@ -75,7 +75,7 @@
|
|
75
75
|
CGPoint trans = [self translationInView];
|
76
76
|
if ((_gestureHandler.shouldCancelWhenOutside && ![_gestureHandler containsPointInView]) ||
|
77
77
|
(TEST_MAX_IF_NOT_NAN(
|
78
|
-
fabs(trans.y * trans.y + trans.x
|
78
|
+
fabs(trans.y * trans.y + trans.x * trans.x), self.allowableMovement * self.allowableMovement))) {
|
79
79
|
self.enabled = NO;
|
80
80
|
self.enabled = YES;
|
81
81
|
}
|
@@ -91,6 +91,7 @@
|
|
91
91
|
{
|
92
92
|
[super touchesCancelled:touches withEvent:event];
|
93
93
|
[_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
|
94
|
+
[self reset];
|
94
95
|
}
|
95
96
|
|
96
97
|
- (void)reset
|
@@ -21,8 +21,6 @@
|
|
21
21
|
#import <React/RCTScrollView.h>
|
22
22
|
#endif // RCT_NEW_ARCH_ENABLED
|
23
23
|
|
24
|
-
#if !TARGET_OS_OSX
|
25
|
-
|
26
24
|
#pragma mark RNDummyGestureRecognizer
|
27
25
|
|
28
26
|
@implementation RNDummyGestureRecognizer {
|
@@ -37,6 +35,7 @@
|
|
37
35
|
return self;
|
38
36
|
}
|
39
37
|
|
38
|
+
#if !TARGET_OS_OSX
|
40
39
|
- (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
|
41
40
|
{
|
42
41
|
[_gestureHandler setCurrentPointerType:event];
|
@@ -62,6 +61,30 @@
|
|
62
61
|
[self reset];
|
63
62
|
}
|
64
63
|
|
64
|
+
#else
|
65
|
+
- (void)mouseDown:(NSEvent *)event
|
66
|
+
{
|
67
|
+
[_gestureHandler setCurrentPointerTypeToMouse];
|
68
|
+
|
69
|
+
self.state = NSGestureRecognizerStateBegan;
|
70
|
+
[_gestureHandler.pointerTracker touchesBegan:[NSSet setWithObject:event] withEvent:event];
|
71
|
+
}
|
72
|
+
|
73
|
+
- (void)mouseDragged:(NSEvent *)event
|
74
|
+
{
|
75
|
+
self.state = NSGestureRecognizerStateChanged;
|
76
|
+
[_gestureHandler.pointerTracker touchesMoved:[NSSet setWithObject:event] withEvent:event];
|
77
|
+
}
|
78
|
+
|
79
|
+
- (void)mouseUp:(NSEvent *)event
|
80
|
+
{
|
81
|
+
self.state = NSGestureRecognizerStateEnded;
|
82
|
+
[_gestureHandler.pointerTracker touchesEnded:[NSSet setWithObject:event] withEvent:event];
|
83
|
+
[self reset];
|
84
|
+
}
|
85
|
+
|
86
|
+
#endif
|
87
|
+
|
65
88
|
- (void)reset
|
66
89
|
{
|
67
90
|
[_gestureHandler.pointerTracker reset];
|
@@ -93,6 +116,8 @@
|
|
93
116
|
_disallowInterruption = [RCTConvert BOOL:config[@"disallowInterruption"]];
|
94
117
|
}
|
95
118
|
|
119
|
+
#if !TARGET_OS_OSX
|
120
|
+
|
96
121
|
- (void)bindToView:(UIView *)view
|
97
122
|
{
|
98
123
|
// For UIControl based views (UIButton, UISwitch) we provide special handling that would allow
|
@@ -197,35 +222,14 @@
|
|
197
222
|
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO withPointerType:_pointerType]];
|
198
223
|
}
|
199
224
|
|
200
|
-
@end
|
201
|
-
|
202
225
|
#else
|
203
226
|
|
204
|
-
|
205
|
-
|
206
|
-
@implementation RNDummyGestureRecognizer
|
207
|
-
|
208
|
-
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler
|
227
|
+
- (RNGestureHandlerEventExtraData *)eventExtraData:(RNDummyGestureRecognizer *)recognizer
|
209
228
|
{
|
210
|
-
|
211
|
-
|
229
|
+
return [RNGestureHandlerEventExtraData forPointerInside:[self containsPointInView]
|
230
|
+
withPointerType:RNGestureHandlerMouse];
|
212
231
|
}
|
213
232
|
|
214
|
-
|
215
|
-
|
216
|
-
#pragma mark RNNativeViewGestureHandler
|
217
|
-
|
218
|
-
@implementation RNNativeViewGestureHandler
|
219
|
-
|
220
|
-
- (instancetype)initWithTag:(NSNumber *)tag
|
221
|
-
{
|
222
|
-
RCTLogWarn(@"NativeViewGestureHandler is not supported on macOS");
|
223
|
-
if ((self = [super initWithTag:tag])) {
|
224
|
-
_recognizer = [NSGestureRecognizer alloc];
|
225
|
-
}
|
226
|
-
return self;
|
227
|
-
}
|
233
|
+
#endif
|
228
234
|
|
229
235
|
@end
|
230
|
-
|
231
|
-
#endif
|
@@ -99,9 +99,8 @@ void decorateRuntime(jsi::Runtime &runtime)
|
|
99
99
|
if (!arguments[0].isObject()) {
|
100
100
|
return jsi::Value::null();
|
101
101
|
}
|
102
|
-
auto shadowNode = arguments[0]
|
102
|
+
auto shadowNode = shadowNodeFromValue(runtime, arguments[0]);
|
103
103
|
bool isFormsStackingContext = shadowNode->getTraits().check(ShadowNodeTraits::FormsStackingContext);
|
104
|
-
|
105
104
|
return jsi::Value(isFormsStackingContext);
|
106
105
|
});
|
107
106
|
runtime.global().setProperty(runtime, "isFormsStackingContext", std::move(isFormsStackingContext));
|
@@ -113,6 +113,11 @@
|
|
113
113
|
{
|
114
114
|
[super rightMouseDown:event];
|
115
115
|
[self interactionsBegan:[NSSet setWithObject:event] withEvent:event];
|
116
|
+
|
117
|
+
// This line fixes issue in which handlers couldn't react to mouse clicks after right click.
|
118
|
+
// Right click opens context menu, which prevents RootView from receiving rightMouseUp. This leads
|
119
|
+
// to a situation where RootView is left in Possible state, instead of Failed, thus blocking other handlers.
|
120
|
+
self.state = NSGestureRecognizerStateFailed;
|
116
121
|
}
|
117
122
|
|
118
123
|
- (void)mouseDragged:(NSEvent *)event
|
@@ -7,14 +7,14 @@ exports.DiagonalDirections = exports.Directions = void 0;
|
|
7
7
|
const RIGHT = 1;
|
8
8
|
const LEFT = 2;
|
9
9
|
const UP = 4;
|
10
|
-
const DOWN = 8; //
|
10
|
+
const DOWN = 8; // Public interface
|
11
11
|
|
12
12
|
const Directions = {
|
13
13
|
RIGHT: RIGHT,
|
14
14
|
LEFT: LEFT,
|
15
15
|
UP: UP,
|
16
16
|
DOWN: DOWN
|
17
|
-
}; //
|
17
|
+
}; // Internal interface
|
18
18
|
|
19
19
|
exports.Directions = Directions;
|
20
20
|
const DiagonalDirections = {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["Directions.ts"],"names":["RIGHT","LEFT","UP","DOWN","Directions","DiagonalDirections","UP_RIGHT","DOWN_RIGHT","UP_LEFT","DOWN_LEFT"],"mappings":";;;;;;AAAA,MAAMA,KAAK,GAAG,CAAd;AACA,MAAMC,IAAI,GAAG,CAAb;AACA,MAAMC,EAAE,GAAG,CAAX;AACA,MAAMC,IAAI,GAAG,CAAb,C,CAEA;;AACO,MAAMC,UAAU,GAAG;AACxBJ,EAAAA,KAAK,EAAEA,KADiB;AAExBC,EAAAA,IAAI,EAAEA,IAFkB;AAGxBC,EAAAA,EAAE,EAAEA,EAHoB;AAIxBC,EAAAA,IAAI,EAAEA;AAJkB,CAAnB,C,CAOP;;;AACO,MAAME,kBAAkB,GAAG;AAChCC,EAAAA,QAAQ,EAAEJ,EAAE,GAAGF,KADiB;AAEhCO,EAAAA,UAAU,EAAEJ,IAAI,GAAGH,KAFa;AAGhCQ,EAAAA,OAAO,EAAEN,EAAE,GAAGD,IAHkB;AAIhCQ,EAAAA,SAAS,EAAEN,IAAI,GAAGF;AAJc,CAA3B,C,CAOP","sourcesContent":["const RIGHT = 1;\nconst LEFT = 2;\nconst UP = 4;\nconst DOWN = 8;\n\n//
|
1
|
+
{"version":3,"sources":["Directions.ts"],"names":["RIGHT","LEFT","UP","DOWN","Directions","DiagonalDirections","UP_RIGHT","DOWN_RIGHT","UP_LEFT","DOWN_LEFT"],"mappings":";;;;;;AAAA,MAAMA,KAAK,GAAG,CAAd;AACA,MAAMC,IAAI,GAAG,CAAb;AACA,MAAMC,EAAE,GAAG,CAAX;AACA,MAAMC,IAAI,GAAG,CAAb,C,CAEA;;AACO,MAAMC,UAAU,GAAG;AACxBJ,EAAAA,KAAK,EAAEA,KADiB;AAExBC,EAAAA,IAAI,EAAEA,IAFkB;AAGxBC,EAAAA,EAAE,EAAEA,EAHoB;AAIxBC,EAAAA,IAAI,EAAEA;AAJkB,CAAnB,C,CAOP;;;AACO,MAAME,kBAAkB,GAAG;AAChCC,EAAAA,QAAQ,EAAEJ,EAAE,GAAGF,KADiB;AAEhCO,EAAAA,UAAU,EAAEJ,IAAI,GAAGH,KAFa;AAGhCQ,EAAAA,OAAO,EAAEN,EAAE,GAAGD,IAHkB;AAIhCQ,EAAAA,SAAS,EAAEN,IAAI,GAAGF;AAJc,CAA3B,C,CAOP","sourcesContent":["const RIGHT = 1;\nconst LEFT = 2;\nconst UP = 4;\nconst DOWN = 8;\n\n// Public interface\nexport const Directions = {\n RIGHT: RIGHT,\n LEFT: LEFT,\n UP: UP,\n DOWN: DOWN,\n} as const;\n\n// Internal interface\nexport const DiagonalDirections = {\n UP_RIGHT: UP | RIGHT,\n DOWN_RIGHT: DOWN | RIGHT,\n UP_LEFT: UP | LEFT,\n DOWN_LEFT: DOWN | LEFT,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\nexport type Directions = typeof Directions[keyof typeof Directions];\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type DiagonalDirections =\n typeof DiagonalDirections[keyof typeof DiagonalDirections];\n"]}
|
@@ -67,10 +67,10 @@ var _default = {
|
|
67
67
|
}
|
68
68
|
|
69
69
|
if ((0, _EnableNewWebImplementation.isNewWebImplementationEnabled)()) {
|
70
|
-
|
70
|
+
// @ts-ignore Types should be HTMLElement or React.Component
|
71
71
|
_NodeManager.default.getHandler(handlerTag).init(newView, propsRef);
|
72
72
|
} else {
|
73
|
-
|
73
|
+
// @ts-ignore Types should be HTMLElement or React.Component
|
74
74
|
HammerNodeManager.getHandler(handlerTag).setView(newView, propsRef);
|
75
75
|
}
|
76
76
|
},
|