react-native-gesture-handler 2.32.0 → 2.33.1
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/build.gradle +27 -11
- package/android/gradle.properties +1 -1
- package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerDelegate.java +3 -0
- package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerInterface.java +2 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/FlingGestureHandler.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +41 -36
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +149 -23
- package/android/src/main/java/com/swmansion/gesturehandler/core/HoverGestureHandler.kt +1 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/LongPressGestureHandler.kt +6 -3
- package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +23 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt +4 -7
- package/android/src/main/java/com/swmansion/gesturehandler/core/TapGestureHandler.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/Extensions.kt +3 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +2 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +11 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +8 -6
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +6 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +2 -7
- package/apple/Handlers/RNFlingHandler.m +44 -4
- package/apple/Handlers/RNHoverHandler.m +24 -26
- package/apple/Handlers/RNLongPressHandler.m +4 -0
- package/apple/Handlers/RNPanHandler.m +44 -7
- package/apple/Handlers/RNTapHandler.m +35 -4
- package/apple/RNGHUIKit.h +10 -10
- package/apple/RNGestureHandler.h +2 -0
- package/apple/RNGestureHandler.mm +62 -9
- package/apple/RNGestureHandlerButton.mm +5 -3
- package/apple/RNGestureHandlerButtonComponentView.mm +6 -0
- package/apple/RNGestureHandlerManager.mm +63 -6
- package/apple/RNGestureHandlerModule.mm +20 -0
- package/apple/RNGestureHandlerPointerTracker.m +64 -10
- package/apple/RNGestureHandlerPointerType.h +1 -0
- package/apple/RNManualActivationRecognizer.m +25 -6
- package/lib/commonjs/components/GestureComponents.js +21 -1
- package/lib/commonjs/components/GestureComponents.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerButton.web.js +2 -1
- package/lib/commonjs/components/GestureHandlerButton.web.js.map +1 -1
- package/lib/commonjs/components/Pressable/Pressable.js +28 -3
- package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
- package/lib/commonjs/components/Pressable/index.js.map +1 -1
- package/lib/commonjs/components/ReanimatedDrawerLayout.js +4 -2
- package/lib/commonjs/components/ReanimatedDrawerLayout.js.map +1 -1
- package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeable.js +32 -9
- package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/Text.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableHighlight.js +1 -1
- package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js +1 -0
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.js +6 -2
- package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
- package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +1 -1
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js +66 -11
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +8 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js +7 -2
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +7 -0
- package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +2 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +28 -3
- package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +3 -2
- package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +35 -6
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js +8 -0
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureComposition.js +14 -2
- package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureStateManager.web.js.map +1 -1
- package/lib/commonjs/handlers/gestures/panGesture.js +6 -3
- package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +23 -0
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/commonjs/hostInstance.js +39 -0
- package/lib/commonjs/hostInstance.js.map +1 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/mocks/mocks.js +1 -0
- package/lib/commonjs/mocks/mocks.js.map +1 -1
- package/lib/commonjs/specs/NativeRNGestureHandlerModule.js.map +1 -1
- package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.ts +16 -14
- package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.ts +13 -4
- package/lib/commonjs/web/detectors/RotationGestureDetector.js +1 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +3 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +9 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +8 -9
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +1 -1
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +14 -0
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +5 -1
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/commonjs/web/tools/KeyboardEventManager.js +17 -12
- package/lib/commonjs/web/tools/KeyboardEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/WheelEventManager.js +19 -5
- package/lib/commonjs/web/tools/WheelEventManager.js.map +1 -1
- package/lib/module/components/GestureComponents.js +23 -2
- package/lib/module/components/GestureComponents.js.map +1 -1
- package/lib/module/components/GestureHandlerButton.web.js +2 -1
- package/lib/module/components/GestureHandlerButton.web.js.map +1 -1
- package/lib/module/components/Pressable/Pressable.js +28 -3
- package/lib/module/components/Pressable/Pressable.js.map +1 -1
- package/lib/module/components/Pressable/index.js.map +1 -1
- package/lib/module/components/ReanimatedDrawerLayout.js +4 -2
- package/lib/module/components/ReanimatedDrawerLayout.js.map +1 -1
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js +34 -11
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -1
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/Text.js.map +1 -1
- package/lib/module/components/touchables/TouchableHighlight.js +2 -2
- package/lib/module/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js +1 -0
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/getShadowNodeFromRef.js +7 -2
- package/lib/module/getShadowNodeFromRef.js.map +1 -1
- package/lib/module/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/handlers/createHandler.js +1 -1
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/Wrap.js +67 -12
- package/lib/module/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +9 -2
- package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/index.js +7 -2
- package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +8 -1
- package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +2 -1
- package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js +28 -3
- package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +3 -2
- package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/utils.js +34 -6
- package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
- 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 +14 -2
- package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.web.js.map +1 -1
- package/lib/module/handlers/gestures/panGesture.js +6 -3
- package/lib/module/handlers/gestures/panGesture.js.map +1 -1
- package/lib/module/handlers/gestures/reanimatedWrapper.js +22 -0
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/module/hostInstance.js +32 -0
- package/lib/module/hostInstance.js.map +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/mocks/mocks.js +3 -2
- package/lib/module/mocks/mocks.js.map +1 -1
- package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -1
- package/lib/module/specs/RNGestureHandlerButtonNativeComponent.ts +16 -14
- package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.ts +13 -4
- package/lib/module/web/detectors/RotationGestureDetector.js +1 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js +3 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +9 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +8 -9
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +1 -1
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +14 -0
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerWebDelegate.js +5 -1
- package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/module/web/tools/KeyboardEventManager.js +17 -12
- package/lib/module/web/tools/KeyboardEventManager.js.map +1 -1
- package/lib/module/web/tools/WheelEventManager.js +19 -5
- package/lib/module/web/tools/WheelEventManager.js.map +1 -1
- package/lib/typescript/components/GestureButtons.d.ts +3 -1
- package/lib/typescript/components/GestureButtons.d.ts.map +1 -1
- package/lib/typescript/components/GestureButtonsProps.d.ts +10 -0
- package/lib/typescript/components/GestureButtonsProps.d.ts.map +1 -1
- package/lib/typescript/components/GestureComponents.d.ts +8 -7
- package/lib/typescript/components/GestureComponents.d.ts.map +1 -1
- package/lib/typescript/components/GestureComponents.web.d.ts +12 -4
- package/lib/typescript/components/GestureComponents.web.d.ts.map +1 -1
- package/lib/typescript/components/GestureHandlerButton.web.d.ts +2 -2
- 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/index.d.ts +1 -1
- package/lib/typescript/components/Pressable/index.d.ts.map +1 -1
- package/lib/typescript/components/ReanimatedDrawerLayout.d.ts.map +1 -1
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts.map +1 -1
- package/lib/typescript/components/Swipeable.d.ts.map +1 -1
- package/lib/typescript/components/touchables/TouchableHighlight.d.ts +1 -1
- package/lib/typescript/components/touchables/TouchableHighlight.d.ts.map +1 -1
- package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +1 -1
- package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts.map +1 -1
- package/lib/typescript/components/touchables/TouchableOpacity.d.ts.map +1 -1
- package/lib/typescript/getShadowNodeFromRef.d.ts.map +1 -1
- package/lib/typescript/handlers/PanGestureHandler.d.ts +12 -0
- package/lib/typescript/handlers/PanGestureHandler.d.ts.map +1 -1
- package/lib/typescript/handlers/createHandler.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/Wrap.d.ts +12 -0
- package/lib/typescript/handlers/gestures/GestureDetector/Wrap.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/index.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +5 -4
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/gesture.d.ts +4 -0
- package/lib/typescript/handlers/gestures/gesture.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/gestureComposition.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts +8 -1
- package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/panGesture.d.ts +6 -3
- package/lib/typescript/handlers/gestures/panGesture.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +1 -0
- package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts.map +1 -1
- package/lib/typescript/hostInstance.d.ts +10 -0
- package/lib/typescript/hostInstance.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/mocks/mocks.d.ts +67 -15
- package/lib/typescript/mocks/mocks.d.ts.map +1 -1
- package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +6 -7
- package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts.map +1 -1
- package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +9 -10
- package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts.map +1 -1
- package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +2 -2
- package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/handlers/PanGestureHandler.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/GestureHandlerWebDelegate.d.ts.map +1 -1
- package/lib/typescript/web/tools/KeyboardEventManager.d.ts +2 -1
- package/lib/typescript/web/tools/KeyboardEventManager.d.ts.map +1 -1
- package/lib/typescript/web/tools/WheelEventManager.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/components/GestureButtonsProps.ts +14 -0
- package/src/components/GestureComponents.tsx +38 -7
- package/src/components/GestureHandlerButton.web.tsx +7 -3
- package/src/components/Pressable/Pressable.tsx +33 -4
- package/src/components/Pressable/PressableProps.tsx +1 -1
- package/src/components/Pressable/index.ts +1 -0
- package/src/components/ReanimatedDrawerLayout.tsx +4 -1
- package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +49 -10
- package/src/components/Swipeable.tsx +6 -2
- package/src/components/Text.tsx +3 -3
- package/src/components/touchables/TouchableHighlight.tsx +4 -2
- package/src/components/touchables/TouchableNativeFeedback.android.tsx +8 -2
- package/src/components/touchables/TouchableOpacity.tsx +1 -0
- package/src/getShadowNodeFromRef.ts +11 -4
- package/src/handlers/PanGestureHandler.ts +15 -0
- package/src/handlers/createHandler.tsx +4 -1
- package/src/handlers/gestures/GestureDetector/Wrap.tsx +95 -14
- package/src/handlers/gestures/GestureDetector/attachHandlers.ts +11 -2
- package/src/handlers/gestures/GestureDetector/index.tsx +8 -1
- package/src/handlers/gestures/GestureDetector/types.ts +3 -0
- package/src/handlers/gestures/GestureDetector/updateHandlers.ts +8 -0
- package/src/handlers/gestures/GestureDetector/useDetectorUpdater.ts +4 -1
- package/src/handlers/gestures/GestureDetector/useMountReactions.ts +35 -4
- package/src/handlers/gestures/GestureDetector/useViewRefHandler.ts +5 -2
- package/src/handlers/gestures/GestureDetector/utils.ts +42 -10
- package/src/handlers/gestures/gesture.ts +11 -0
- package/src/handlers/gestures/gestureComposition.ts +15 -2
- package/src/handlers/gestures/gestureStateManager.web.ts +9 -1
- package/src/handlers/gestures/panGesture.ts +6 -3
- package/src/handlers/gestures/reanimatedWrapper.ts +23 -0
- package/src/hostInstance.ts +57 -0
- package/src/index.ts +1 -0
- package/src/mocks/mocks.tsx +6 -2
- package/src/specs/NativeRNGestureHandlerModule.ts +16 -10
- package/src/specs/RNGestureHandlerButtonNativeComponent.ts +16 -14
- package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +13 -4
- package/src/web/detectors/RotationGestureDetector.ts +1 -1
- package/src/web/handlers/LongPressGestureHandler.ts +3 -1
- package/src/web/handlers/NativeViewGestureHandler.ts +11 -2
- package/src/web/handlers/PanGestureHandler.ts +8 -11
- package/src/web/handlers/TapGestureHandler.ts +1 -1
- package/src/web/tools/GestureHandlerOrchestrator.ts +19 -0
- package/src/web/tools/GestureHandlerWebDelegate.ts +6 -1
- package/src/web/tools/KeyboardEventManager.ts +20 -18
- package/src/web/tools/WheelEventManager.ts +15 -5
|
@@ -1,27 +1,29 @@
|
|
|
1
|
-
import codegenNativeComponent from 'react-native
|
|
1
|
+
import { codegenNativeComponent } from 'react-native';
|
|
2
2
|
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
CodegenTypes,
|
|
4
|
+
HostComponent,
|
|
5
|
+
ViewProps,
|
|
6
|
+
ColorValue,
|
|
7
|
+
} from 'react-native';
|
|
8
8
|
|
|
9
9
|
// @ts-ignore - Redefining pointerEvents with WithDefault for codegen, conflicts with ViewProps type but codegen needs it
|
|
10
10
|
interface NativeProps extends ViewProps {
|
|
11
|
-
exclusive?: WithDefault<boolean, true>;
|
|
11
|
+
exclusive?: CodegenTypes.WithDefault<boolean, true>;
|
|
12
12
|
foreground?: boolean;
|
|
13
13
|
borderless?: boolean;
|
|
14
|
-
enabled?: WithDefault<boolean, true>;
|
|
14
|
+
enabled?: CodegenTypes.WithDefault<boolean, true>;
|
|
15
15
|
rippleColor?: ColorValue;
|
|
16
|
-
rippleRadius?: Int32;
|
|
17
|
-
touchSoundDisabled?: WithDefault<boolean, false>;
|
|
18
|
-
borderWidth?: Float;
|
|
16
|
+
rippleRadius?: CodegenTypes.Int32;
|
|
17
|
+
touchSoundDisabled?: CodegenTypes.WithDefault<boolean, false>;
|
|
18
|
+
borderWidth?: CodegenTypes.Float;
|
|
19
19
|
borderColor?: ColorValue;
|
|
20
|
-
borderStyle?: WithDefault<string, 'solid'>;
|
|
21
|
-
pointerEvents?: WithDefault<
|
|
20
|
+
borderStyle?: CodegenTypes.WithDefault<string, 'solid'>;
|
|
21
|
+
pointerEvents?: CodegenTypes.WithDefault<
|
|
22
22
|
'box-none' | 'none' | 'box-only' | 'auto',
|
|
23
23
|
'auto'
|
|
24
24
|
>;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
export default codegenNativeComponent<NativeProps>(
|
|
27
|
+
export default codegenNativeComponent<NativeProps>(
|
|
28
|
+
'RNGestureHandlerButton'
|
|
29
|
+
) as HostComponent<NativeProps>;
|
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
import codegenNativeComponent from 'react-native
|
|
2
|
-
import type { ViewProps } from 'react-native';
|
|
1
|
+
import { codegenNativeComponent } from 'react-native';
|
|
2
|
+
import type { CodegenTypes, HostComponent, ViewProps } from 'react-native';
|
|
3
3
|
|
|
4
4
|
export interface RootViewNativeProps extends ViewProps {
|
|
5
5
|
unstable_forceActive?: boolean;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
// @ts-expect-error WithDefault adds null for codegen, unlike ViewProps.pointerEvents.
|
|
9
|
+
interface NativeProps extends ViewProps {
|
|
10
|
+
pointerEvents?: CodegenTypes.WithDefault<
|
|
11
|
+
'box-none' | 'none' | 'box-only' | 'auto',
|
|
12
|
+
'auto'
|
|
13
|
+
>;
|
|
14
|
+
unstable_forceActive?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default codegenNativeComponent<NativeProps>(
|
|
9
18
|
'RNGestureHandlerRootView'
|
|
10
|
-
)
|
|
19
|
+
) as HostComponent<RootViewNativeProps>;
|
|
@@ -5,6 +5,7 @@ import GestureHandler from './GestureHandler';
|
|
|
5
5
|
|
|
6
6
|
const DEFAULT_MIN_DURATION_MS = 500;
|
|
7
7
|
const DEFAULT_MAX_DIST_DP = 10;
|
|
8
|
+
const DEFAULT_NUMBER_OF_POINTERS = 1;
|
|
8
9
|
const SCALING_FACTOR = 10;
|
|
9
10
|
|
|
10
11
|
export default class LongPressGestureHandler extends GestureHandler {
|
|
@@ -12,7 +13,7 @@ export default class LongPressGestureHandler extends GestureHandler {
|
|
|
12
13
|
private defaultMaxDistSq = DEFAULT_MAX_DIST_DP * SCALING_FACTOR;
|
|
13
14
|
|
|
14
15
|
private maxDistSq = this.defaultMaxDistSq;
|
|
15
|
-
private numberOfPointers =
|
|
16
|
+
private numberOfPointers = DEFAULT_NUMBER_OF_POINTERS;
|
|
16
17
|
private startX = 0;
|
|
17
18
|
private startY = 0;
|
|
18
19
|
|
|
@@ -56,6 +57,7 @@ export default class LongPressGestureHandler extends GestureHandler {
|
|
|
56
57
|
super.resetConfig();
|
|
57
58
|
this.minDurationMs = DEFAULT_MIN_DURATION_MS;
|
|
58
59
|
this.maxDistSq = this.defaultMaxDistSq;
|
|
60
|
+
this.numberOfPointers = DEFAULT_NUMBER_OF_POINTERS;
|
|
59
61
|
}
|
|
60
62
|
|
|
61
63
|
protected onStateChange(_newState: State, _oldState: State): void {
|
|
@@ -20,8 +20,6 @@ export default class NativeViewGestureHandler extends GestureHandler {
|
|
|
20
20
|
public init(ref: number, propsRef: React.RefObject<unknown>): void {
|
|
21
21
|
super.init(ref, propsRef);
|
|
22
22
|
|
|
23
|
-
this.shouldCancelWhenOutside = true;
|
|
24
|
-
|
|
25
23
|
if (Platform.OS !== 'web') {
|
|
26
24
|
return;
|
|
27
25
|
}
|
|
@@ -33,6 +31,9 @@ export default class NativeViewGestureHandler extends GestureHandler {
|
|
|
33
31
|
}
|
|
34
32
|
|
|
35
33
|
public updateGestureConfig({ enabled = true, ...props }: Config): void {
|
|
34
|
+
// Config updates are full replaces, so restore the defaults first - the
|
|
35
|
+
// module never calls `resetConfig` on its own.
|
|
36
|
+
this.resetConfig();
|
|
36
37
|
super.updateGestureConfig({ enabled: enabled, ...props });
|
|
37
38
|
|
|
38
39
|
if (this.config.shouldActivateOnStart !== undefined) {
|
|
@@ -46,6 +47,14 @@ export default class NativeViewGestureHandler extends GestureHandler {
|
|
|
46
47
|
this.restoreViewStyles(view);
|
|
47
48
|
}
|
|
48
49
|
|
|
50
|
+
protected override resetConfig(): void {
|
|
51
|
+
super.resetConfig();
|
|
52
|
+
|
|
53
|
+
this.shouldCancelWhenOutside = true;
|
|
54
|
+
this.shouldActivateOnStart = false;
|
|
55
|
+
this.disallowInterruption = false;
|
|
56
|
+
}
|
|
57
|
+
|
|
49
58
|
private restoreViewStyles(view: HTMLElement) {
|
|
50
59
|
if (!view) {
|
|
51
60
|
return;
|
|
@@ -82,8 +82,7 @@ export default class PanGestureHandler extends GestureHandler {
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
if (this.config.minVelocity !== undefined) {
|
|
85
|
-
this.
|
|
86
|
-
this.minVelocityY = this.config.minVelocity;
|
|
85
|
+
this.minVelocitySq = this.config.minVelocity * this.config.minVelocity;
|
|
87
86
|
}
|
|
88
87
|
|
|
89
88
|
if (this.config.minVelocityX !== undefined) {
|
|
@@ -191,6 +190,7 @@ export default class PanGestureHandler extends GestureHandler {
|
|
|
191
190
|
this.maxPointers = DEFAULT_MAX_POINTERS;
|
|
192
191
|
|
|
193
192
|
this.activateAfterLongPress = 0;
|
|
193
|
+
this.enableTrackpadTwoFingerGesture = false;
|
|
194
194
|
}
|
|
195
195
|
|
|
196
196
|
protected transformNativeEvent() {
|
|
@@ -354,14 +354,13 @@ export default class PanGestureHandler extends GestureHandler {
|
|
|
354
354
|
}
|
|
355
355
|
}
|
|
356
356
|
|
|
357
|
-
private scheduleWheelEnd(
|
|
357
|
+
private scheduleWheelEnd() {
|
|
358
358
|
clearTimeout(this.endWheelTimeout);
|
|
359
359
|
|
|
360
360
|
this.endWheelTimeout = setTimeout(() => {
|
|
361
361
|
if (this.state === State.ACTIVE) {
|
|
362
362
|
this.end();
|
|
363
|
-
this.
|
|
364
|
-
this.state = State.UNDETERMINED;
|
|
363
|
+
this.reset();
|
|
365
364
|
}
|
|
366
365
|
|
|
367
366
|
this.wheelDevice = WheelDevice.UNDETERMINED;
|
|
@@ -383,7 +382,7 @@ export default class PanGestureHandler extends GestureHandler {
|
|
|
383
382
|
: WheelDevice.MOUSE;
|
|
384
383
|
|
|
385
384
|
if (this.wheelDevice === WheelDevice.MOUSE) {
|
|
386
|
-
this.scheduleWheelEnd(
|
|
385
|
+
this.scheduleWheelEnd();
|
|
387
386
|
return;
|
|
388
387
|
}
|
|
389
388
|
|
|
@@ -403,7 +402,7 @@ export default class PanGestureHandler extends GestureHandler {
|
|
|
403
402
|
this.updateVelocity(event.pointerId);
|
|
404
403
|
|
|
405
404
|
this.tryToSendMoveEvent(false, event);
|
|
406
|
-
this.scheduleWheelEnd(
|
|
405
|
+
this.scheduleWheelEnd();
|
|
407
406
|
}
|
|
408
407
|
|
|
409
408
|
private shouldActivate(): boolean {
|
|
@@ -452,8 +451,7 @@ export default class PanGestureHandler extends GestureHandler {
|
|
|
452
451
|
|
|
453
452
|
if (
|
|
454
453
|
this.minVelocityX !== Number.MAX_SAFE_INTEGER &&
|
|
455
|
-
(
|
|
456
|
-
(this.minVelocityX >= 0 && this.minVelocityX <= vx))
|
|
454
|
+
Math.abs(vx) >= Math.abs(this.minVelocityX)
|
|
457
455
|
) {
|
|
458
456
|
return true;
|
|
459
457
|
}
|
|
@@ -461,8 +459,7 @@ export default class PanGestureHandler extends GestureHandler {
|
|
|
461
459
|
const vy: number = this.velocityY;
|
|
462
460
|
if (
|
|
463
461
|
this.minVelocityY !== Number.MAX_SAFE_INTEGER &&
|
|
464
|
-
(
|
|
465
|
-
(this.minVelocityY >= 0 && this.minVelocityY <= vy))
|
|
462
|
+
Math.abs(vy) >= Math.abs(this.minVelocityY)
|
|
466
463
|
) {
|
|
467
464
|
return true;
|
|
468
465
|
}
|
|
@@ -159,7 +159,7 @@ export default class TapGestureHandler extends GestureHandler {
|
|
|
159
159
|
this.tracker.removeFromTracker(event.pointerId);
|
|
160
160
|
|
|
161
161
|
this.offsetX += this.lastX - this.startX;
|
|
162
|
-
this.offsetY += this.lastY
|
|
162
|
+
this.offsetY += this.lastY - this.startY;
|
|
163
163
|
|
|
164
164
|
this.updateLastCoords();
|
|
165
165
|
|
|
@@ -264,7 +264,26 @@ export default class GestureHandlerOrchestrator {
|
|
|
264
264
|
handler.activationIndex = this.activationIndex++;
|
|
265
265
|
}
|
|
266
266
|
|
|
267
|
+
// A handler whose pointer sequence ended before it began (e.g. a press
|
|
268
|
+
// outside a negative hit slop) never reaches a finished state, so
|
|
269
|
+
// `cleanupFinishedHandlers` never drops it and it would block or park every
|
|
270
|
+
// later gesture. Drop such idle entries before a new gesture consults them.
|
|
271
|
+
private dropIdleHandlers(): void {
|
|
272
|
+
for (let i = this.gestureHandlers.length - 1; i >= 0; --i) {
|
|
273
|
+
const handler = this.gestureHandlers[i];
|
|
274
|
+
|
|
275
|
+
if (
|
|
276
|
+
handler.state === State.UNDETERMINED &&
|
|
277
|
+
handler.tracker.trackedPointersCount === 0
|
|
278
|
+
) {
|
|
279
|
+
this.removeHandlerFromOrchestrator(handler);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
267
284
|
public recordHandlerIfNotPresent(handler: IGestureHandler): void {
|
|
285
|
+
this.dropIdleHandlers();
|
|
286
|
+
|
|
268
287
|
if (this.gestureHandlers.includes(handler)) {
|
|
269
288
|
return;
|
|
270
289
|
}
|
|
@@ -12,6 +12,7 @@ import { Config } from '../interfaces';
|
|
|
12
12
|
import { MouseButton } from '../../handlers/gestureHandlerCommon';
|
|
13
13
|
import KeyboardEventManager from './KeyboardEventManager';
|
|
14
14
|
import WheelEventManager from './WheelEventManager';
|
|
15
|
+
import PanGestureHandler from '../handlers/PanGestureHandler';
|
|
15
16
|
|
|
16
17
|
interface DefaultViewStyles {
|
|
17
18
|
userSelect: string;
|
|
@@ -49,6 +50,7 @@ export class GestureHandlerWebDelegate
|
|
|
49
50
|
};
|
|
50
51
|
|
|
51
52
|
const config = handler.config;
|
|
53
|
+
const shouldSendWheelEvents = handler instanceof PanGestureHandler;
|
|
52
54
|
|
|
53
55
|
this.setUserSelect(config.enabled);
|
|
54
56
|
this.setTouchAction(config.enabled);
|
|
@@ -56,7 +58,10 @@ export class GestureHandlerWebDelegate
|
|
|
56
58
|
|
|
57
59
|
this.eventManagers.push(new PointerEventManager(this.view));
|
|
58
60
|
this.eventManagers.push(new KeyboardEventManager(this.view));
|
|
59
|
-
|
|
61
|
+
|
|
62
|
+
if (shouldSendWheelEvents) {
|
|
63
|
+
this.eventManagers.push(new WheelEventManager(this.view));
|
|
64
|
+
}
|
|
60
65
|
|
|
61
66
|
this.eventManagers.forEach((manager) =>
|
|
62
67
|
this.gestureHandler.attachEventManager(manager)
|
|
@@ -3,9 +3,10 @@ import EventManager from './EventManager';
|
|
|
3
3
|
import { PointerType } from '../../PointerType';
|
|
4
4
|
|
|
5
5
|
export default class KeyboardEventManager extends EventManager<HTMLElement> {
|
|
6
|
-
private static activationKeys = ['Enter', ' '];
|
|
7
|
-
private static cancelationKeys = ['Tab'];
|
|
8
|
-
private
|
|
6
|
+
private static activationKeys = new Set(['Enter', ' ']);
|
|
7
|
+
private static cancelationKeys = new Set(['Tab']);
|
|
8
|
+
private keyPointer: string | null = null;
|
|
9
|
+
|
|
9
10
|
private static registeredStaticListeners = false;
|
|
10
11
|
private static instances: Set<KeyboardEventManager> = new Set();
|
|
11
12
|
|
|
@@ -13,8 +14,7 @@ export default class KeyboardEventManager extends EventManager<HTMLElement> {
|
|
|
13
14
|
// We need a global listener, as in some cases, keyUp event gets stop-propagated.
|
|
14
15
|
// Then, if we used only component-level listeners the gesture would never end,
|
|
15
16
|
// causing other gestues to fail.
|
|
16
|
-
|
|
17
|
-
if (this.activationKeys.indexOf(event.key) === -1) {
|
|
17
|
+
if (!this.activationKeys.has(event.key)) {
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -24,30 +24,30 @@ export default class KeyboardEventManager extends EventManager<HTMLElement> {
|
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
private keyDownCallback = (event: KeyboardEvent): void => {
|
|
27
|
-
if (
|
|
28
|
-
KeyboardEventManager.cancelationKeys.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
if (this.keyPointer !== null) {
|
|
28
|
+
if (KeyboardEventManager.cancelationKeys.has(event.key)) {
|
|
29
|
+
this.dispatchEvent(event, EventTypes.CANCEL);
|
|
30
|
+
this.keyPointer = null;
|
|
31
|
+
}
|
|
32
|
+
|
|
32
33
|
return;
|
|
33
34
|
}
|
|
34
35
|
|
|
35
|
-
if (KeyboardEventManager.activationKeys.
|
|
36
|
+
if (!KeyboardEventManager.activationKeys.has(event.key) || event.repeat) {
|
|
36
37
|
return;
|
|
37
38
|
}
|
|
38
39
|
|
|
40
|
+
this.keyPointer = event.key;
|
|
39
41
|
this.dispatchEvent(event, EventTypes.DOWN);
|
|
40
42
|
};
|
|
41
43
|
|
|
42
44
|
private onKeyUp = (event: KeyboardEvent): void => {
|
|
43
|
-
if (
|
|
44
|
-
KeyboardEventManager.activationKeys.indexOf(event.key) === -1 ||
|
|
45
|
-
!this.isPressed
|
|
46
|
-
) {
|
|
45
|
+
if (this.keyPointer !== event.key) {
|
|
47
46
|
return;
|
|
48
47
|
}
|
|
49
48
|
|
|
50
49
|
this.dispatchEvent(event, EventTypes.UP);
|
|
50
|
+
this.keyPointer = null;
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
private dispatchEvent(event: KeyboardEvent, eventType: EventTypes) {
|
|
@@ -59,15 +59,12 @@ export default class KeyboardEventManager extends EventManager<HTMLElement> {
|
|
|
59
59
|
|
|
60
60
|
switch (eventType) {
|
|
61
61
|
case EventTypes.UP:
|
|
62
|
-
this.isPressed = false;
|
|
63
62
|
this.onPointerUp(adaptedEvent);
|
|
64
63
|
break;
|
|
65
64
|
case EventTypes.DOWN:
|
|
66
|
-
this.isPressed = true;
|
|
67
65
|
this.onPointerDown(adaptedEvent);
|
|
68
66
|
break;
|
|
69
67
|
case EventTypes.CANCEL:
|
|
70
|
-
this.isPressed = false;
|
|
71
68
|
this.onPointerCancel(adaptedEvent);
|
|
72
69
|
break;
|
|
73
70
|
}
|
|
@@ -103,6 +100,11 @@ export default class KeyboardEventManager extends EventManager<HTMLElement> {
|
|
|
103
100
|
}
|
|
104
101
|
}
|
|
105
102
|
|
|
103
|
+
public override resetManager(): void {
|
|
104
|
+
super.resetManager();
|
|
105
|
+
this.keyPointer = null;
|
|
106
|
+
}
|
|
107
|
+
|
|
106
108
|
protected mapEvent(
|
|
107
109
|
event: KeyboardEvent,
|
|
108
110
|
eventType: EventTypes
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import EventManager from './EventManager';
|
|
2
2
|
import { AdaptedEvent, EventTypes } from '../interfaces';
|
|
3
3
|
import { PointerType } from '../../PointerType';
|
|
4
|
+
import { calculateViewScale } from '../utils';
|
|
4
5
|
|
|
5
6
|
export default class WheelEventManager extends EventManager<HTMLElement> {
|
|
6
7
|
private wheelDelta = { x: 0, y: 0 };
|
|
@@ -19,7 +20,9 @@ export default class WheelEventManager extends EventManager<HTMLElement> {
|
|
|
19
20
|
|
|
20
21
|
public registerListeners(): void {
|
|
21
22
|
this.view.addEventListener('pointermove', this.resetDelta);
|
|
22
|
-
this.view.addEventListener('wheel', this.wheelCallback
|
|
23
|
+
this.view.addEventListener('wheel', this.wheelCallback, {
|
|
24
|
+
passive: true,
|
|
25
|
+
});
|
|
23
26
|
}
|
|
24
27
|
|
|
25
28
|
public unregisterListeners(): void {
|
|
@@ -28,11 +31,17 @@ export default class WheelEventManager extends EventManager<HTMLElement> {
|
|
|
28
31
|
}
|
|
29
32
|
|
|
30
33
|
protected mapEvent(event: WheelEvent): AdaptedEvent {
|
|
34
|
+
const rect = this.view.getBoundingClientRect();
|
|
35
|
+
const { scaleX, scaleY } = calculateViewScale(this.view);
|
|
36
|
+
|
|
37
|
+
const x = event.clientX + this.wheelDelta.x;
|
|
38
|
+
const y = event.clientY + this.wheelDelta.y;
|
|
39
|
+
|
|
31
40
|
return {
|
|
32
|
-
x
|
|
33
|
-
y
|
|
34
|
-
offsetX:
|
|
35
|
-
offsetY:
|
|
41
|
+
x,
|
|
42
|
+
y,
|
|
43
|
+
offsetX: (x - rect.left) / scaleX,
|
|
44
|
+
offsetY: (y - rect.top) / scaleY,
|
|
36
45
|
pointerId: -1,
|
|
37
46
|
eventType: EventTypes.MOVE,
|
|
38
47
|
pointerType: PointerType.OTHER,
|
|
@@ -44,5 +53,6 @@ export default class WheelEventManager extends EventManager<HTMLElement> {
|
|
|
44
53
|
|
|
45
54
|
public resetManager(): void {
|
|
46
55
|
super.resetManager();
|
|
56
|
+
this.wheelDelta = { x: 0, y: 0 };
|
|
47
57
|
}
|
|
48
58
|
}
|