react-native-gesture-handler 2.7.1 → 2.9.0
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/RNGestureHandler.podspec +1 -1
- package/android/build.gradle +53 -46
- package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +3 -3
- package/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +7 -7
- package/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +2 -2
- package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +3 -3
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/FlingGestureHandler.kt +12 -9
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandler.kt +39 -31
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerInteractionController.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerOrchestrator.kt +28 -19
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerRegistry.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureUtils.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/LongPressGestureHandler.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ManualGestureHandler.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/NativeViewGestureHandler.kt +5 -5
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/OnTouchEventListener.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PanGestureHandler.kt +7 -5
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PinchGestureHandler.kt +11 -4
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PointerEventsConfig.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureDetector.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureHandler.kt +7 -2
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ScaleGestureDetector.java +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/TapGestureHandler.kt +3 -3
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ViewConfigurationHelper.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/react}/Extensions.kt +3 -3
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +8 -6
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +1 -5
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +20 -8
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +3 -3
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +40 -15
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +2 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +8 -6
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +0 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +4 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +7 -7
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +5 -5
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +2 -2
- package/android/src/main/jni/CMakeLists.txt +10 -44
- package/android/src/main/jni/cpp-adapter.cpp +16 -13
- package/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +5 -5
- package/ios/Handlers/RNFlingHandler.m +39 -37
- package/ios/Handlers/RNForceTouchHandler.m +19 -17
- package/ios/Handlers/RNLongPressHandler.m +20 -22
- package/ios/Handlers/RNManualHandler.m +23 -8
- package/ios/Handlers/RNNativeViewHandler.mm +92 -88
- package/ios/Handlers/RNPanHandler.m +28 -32
- package/ios/Handlers/RNPinchHandler.m +9 -10
- package/ios/Handlers/RNRotationHandler.m +11 -14
- package/ios/Handlers/RNTapHandler.m +26 -26
- package/ios/RNGestureHandler.h +31 -24
- package/ios/RNGestureHandler.m +278 -273
- package/ios/RNGestureHandlerActionType.h +6 -4
- package/ios/RNGestureHandlerButton.m +11 -12
- package/ios/RNGestureHandlerButtonComponentView.mm +7 -8
- package/ios/RNGestureHandlerButtonManager.m +6 -5
- package/ios/RNGestureHandlerDirection.h +4 -4
- package/ios/RNGestureHandlerEvents.h +3 -4
- package/ios/RNGestureHandlerEvents.m +114 -119
- package/ios/RNGestureHandlerManager.h +1 -2
- package/ios/RNGestureHandlerManager.mm +176 -178
- package/ios/RNGestureHandlerModule.h +1 -2
- package/ios/RNGestureHandlerModule.mm +126 -122
- package/ios/RNGestureHandlerPointerTracker.h +1 -1
- package/ios/RNGestureHandlerPointerTracker.m +40 -37
- package/ios/RNGestureHandlerRegistry.h +3 -1
- package/ios/RNGestureHandlerRegistry.m +24 -22
- package/ios/RNGestureHandlerState.h +6 -6
- package/ios/RNGestureHandlerStateManager.h +1 -1
- package/ios/RNManualActivationRecognizer.m +9 -9
- package/ios/RNRootViewGestureRecognizer.m +36 -39
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.windows.js +156 -0
- package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -0
- package/lib/commonjs/components/DrawerLayout.js +1 -0
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/gestureHandlerRootHOC.js +2 -1
- package/lib/commonjs/gestureHandlerRootHOC.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.js +2 -2
- package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
- package/lib/commonjs/handlers/LongPressGestureHandler.js +3 -1
- package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/TapGestureHandler.js +3 -1
- package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +5 -2
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +4 -0
- package/lib/commonjs/handlers/gestures/GestureDetector.js +87 -38
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/longPressGesture.js +1 -0
- package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/tapGesture.js +1 -0
- package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
- package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +28 -3
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -2
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/ManualGestureHandler.js +15 -0
- package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -2
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -5
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -2
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/interfaces.js.map +1 -1
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/NodeManager.js +4 -1
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
- package/lib/commonjs/web_hammer/PanGestureHandler.js +25 -6
- package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.windows.js +117 -0
- package/lib/module/RNGestureHandlerModule.windows.js.map +1 -0
- package/lib/module/components/DrawerLayout.js +1 -0
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/gestureHandlerRootHOC.js +2 -1
- package/lib/module/gestureHandlerRootHOC.js.map +1 -1
- package/lib/module/getShadowNodeFromRef.js +2 -2
- package/lib/module/getShadowNodeFromRef.js.map +1 -1
- package/lib/module/handlers/LongPressGestureHandler.js +3 -1
- package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/handlers/TapGestureHandler.js +3 -1
- package/lib/module/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +5 -2
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestureHandlerTypesCompat.js +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +89 -39
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/longPressGesture.js +1 -0
- package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/module/handlers/gestures/tapGesture.js +1 -0
- package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
- package/lib/module/jestUtils/jestUtils.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +0 -1
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +28 -3
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js +0 -2
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/ManualGestureHandler.js +15 -0
- package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -2
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +0 -5
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PinchGestureHandler.js +0 -1
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/RotationGestureHandler.js +0 -1
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +0 -2
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/interfaces.js.map +1 -1
- package/lib/module/web/tools/InteractionManager.js.map +1 -1
- package/lib/module/web_hammer/GestureHandler.js.map +1 -1
- package/lib/module/web_hammer/NodeManager.js +4 -1
- package/lib/module/web_hammer/NodeManager.js.map +1 -1
- package/lib/module/web_hammer/PanGestureHandler.js +25 -6
- package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/typescript/RNGestureHandlerModule.macos.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.windows.d.ts +48 -0
- package/lib/typescript/components/DrawerLayout.d.ts +10 -1
- package/lib/typescript/components/Swipeable.d.ts +3 -2
- package/lib/typescript/fabric/RNGestureHandlerButtonNativeComponent.d.ts +1 -1
- package/lib/typescript/fabric/RNGestureHandlerRootViewNativeComponent.d.ts +1 -1
- package/lib/typescript/gestureHandlerRootHOC.d.ts +1 -1
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
- package/lib/typescript/handlers/PanGestureHandler.d.ts +1 -1
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +3 -1
- package/lib/typescript/handlers/gestures/GestureDetector.d.ts +3 -1
- package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +3 -1
- package/lib/typescript/web/interfaces.d.ts +3 -1
- package/lib/typescript/web/tools/NodeManager.d.ts +2 -2
- package/package.json +17 -14
- package/src/RNGestureHandlerModule.macos.ts +2 -2
- package/src/RNGestureHandlerModule.web.ts +2 -2
- package/src/RNGestureHandlerModule.windows.ts +140 -0
- package/src/components/DrawerLayout.tsx +22 -12
- package/src/components/Swipeable.tsx +16 -13
- package/src/components/touchables/TouchableOpacity.tsx +1 -1
- package/src/gestureHandlerRootHOC.tsx +4 -1
- package/src/getShadowNodeFromRef.ts +3 -3
- package/src/handlers/LongPressGestureHandler.ts +3 -1
- package/src/handlers/TapGestureHandler.ts +3 -1
- package/src/handlers/createHandler.tsx +13 -15
- package/src/handlers/gestureHandlerCommon.ts +9 -4
- package/src/handlers/gestureHandlerTypesCompat.ts +34 -17
- package/src/handlers/gestures/GestureDetector.tsx +117 -44
- package/src/handlers/gestures/eventReceiver.ts +2 -1
- package/src/handlers/gestures/gesture.ts +8 -12
- package/src/handlers/gestures/longPressGesture.ts +1 -0
- package/src/handlers/gestures/tapGesture.ts +1 -0
- package/src/jestUtils/jestUtils.ts +3 -4
- package/src/web/detectors/RotationGestureDetector.ts +2 -1
- package/src/web/handlers/FlingGestureHandler.ts +2 -3
- package/src/web/handlers/GestureHandler.ts +30 -11
- package/src/web/handlers/LongPressGestureHandler.ts +0 -3
- package/src/web/handlers/ManualGestureHandler.ts +10 -1
- package/src/web/handlers/NativeViewGestureHandler.ts +0 -2
- package/src/web/handlers/PanGestureHandler.ts +0 -6
- package/src/web/handlers/PinchGestureHandler.ts +0 -2
- package/src/web/handlers/RotationGestureHandler.ts +2 -5
- package/src/web/handlers/TapGestureHandler.ts +0 -3
- package/src/web/interfaces.ts +3 -0
- package/src/web/tools/InteractionManager.ts +2 -3
- package/src/web_hammer/GestureHandler.ts +6 -8
- package/src/web_hammer/NodeManager.ts +3 -1
- package/src/web_hammer/PanGestureHandler.ts +12 -6
- package/android/lib/build.gradle +0 -28
package/package.json
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-gesture-handler",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.0",
|
|
4
4
|
"description": "Experimental implementation of a new declarative API for gesture handling in react-native",
|
|
5
5
|
"scripts": {
|
|
6
|
-
"prepare": "bob build",
|
|
6
|
+
"prepare": "bob build && husky install",
|
|
7
7
|
"test": "jest",
|
|
8
8
|
"build": "yarn tsc -p tsconfig.build.json",
|
|
9
9
|
"precommit": "lint-staged",
|
|
10
10
|
"release": "npm login && release-it",
|
|
11
11
|
"ts-check": "yarn tsc --noEmit",
|
|
12
|
-
"
|
|
12
|
+
"format:js": "prettier --write --list-different './{src,example,FabricExample}/**/*.{js,jsx,ts,tsx}'",
|
|
13
|
+
"format:android": "node ./scripts/format-android.js",
|
|
14
|
+
"format:ios": "find ios/ -iname *.h -o -iname *.m -o -iname *.cpp -o -iname *.mm | xargs clang-format -i",
|
|
15
|
+
"lint:js": "eslint --ext '.js,.ts,.tsx' src/ example/src FabricExample/src && yarn prettier --check './{src,example,FabricExample}/**/*.{js,jsx,ts,tsx}'",
|
|
16
|
+
"lint:js-root": "eslint --ext '.js,.ts,.tsx' src/ && yarn prettier --check './src/**/*.{js,jsx,ts,tsx}'",
|
|
17
|
+
"lint:android": "./android/gradlew -p android spotlessCheck -q"
|
|
13
18
|
},
|
|
14
19
|
"react-native": "src/index.ts",
|
|
15
20
|
"main": "lib/commonjs/index.js",
|
|
@@ -28,8 +33,6 @@
|
|
|
28
33
|
"android/src/main/jni/",
|
|
29
34
|
"android/src/fabric/java",
|
|
30
35
|
"android/src/paper/java",
|
|
31
|
-
"android/lib/build.gradle",
|
|
32
|
-
"android/lib/src/main/java/",
|
|
33
36
|
"android/common/src/main/java/",
|
|
34
37
|
"android/reanimated/src/main/java/",
|
|
35
38
|
"android/noreanimated/src/main/java/",
|
|
@@ -79,26 +82,26 @@
|
|
|
79
82
|
"@types/hammerjs": "^2.0.38",
|
|
80
83
|
"@types/hoist-non-react-statics": "^3.3.1",
|
|
81
84
|
"@types/jest": "^27.0.3",
|
|
82
|
-
"@types/react": "^
|
|
83
|
-
"@types/react-native": "^0.69.6",
|
|
85
|
+
"@types/react": "^18.0.24",
|
|
84
86
|
"@types/react-test-renderer": "^17.0.0",
|
|
85
87
|
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
|
86
88
|
"@typescript-eslint/parser": "^4.33.0",
|
|
87
89
|
"babel-jest": "^26.6.3",
|
|
90
|
+
"clang-format": "^1.8.0",
|
|
88
91
|
"eslint": "^7.15.0",
|
|
89
92
|
"eslint-config-satya164": "^3.1.8",
|
|
90
93
|
"eslint-import-resolver-babel-module": "^5.2.0",
|
|
91
94
|
"eslint-plugin-import": "^2.22.1",
|
|
92
95
|
"eslint-plugin-jest": "^26.0.0",
|
|
93
96
|
"expo": "^35.0.1",
|
|
94
|
-
"husky": "^0.
|
|
97
|
+
"husky": "^8.0.1",
|
|
95
98
|
"jest": "^26.6.3",
|
|
96
99
|
"lint-staged": "^12.3.2",
|
|
97
100
|
"metro-react-native-babel-preset": "^0.64.0",
|
|
98
|
-
"prettier": "^2.
|
|
99
|
-
"react": "
|
|
101
|
+
"prettier": "^2.7.1",
|
|
102
|
+
"react": "18.2.0",
|
|
100
103
|
"react-dom": "^16.12.0",
|
|
101
|
-
"react-native": "
|
|
104
|
+
"react-native": "0.71.0",
|
|
102
105
|
"react-native-builder-bob": "^0.17.1",
|
|
103
106
|
"react-native-reanimated": "^2.3.1",
|
|
104
107
|
"react-native-web": "^0.11.7",
|
|
@@ -111,9 +114,9 @@
|
|
|
111
114
|
"react-native": "*"
|
|
112
115
|
},
|
|
113
116
|
"lint-staged": {
|
|
114
|
-
"./src
|
|
115
|
-
|
|
116
|
-
|
|
117
|
+
"./{src,example,FabricExample}/**/*.{ts,tsx}": "yarn format:js",
|
|
118
|
+
"android/**/*.kt": "yarn format:android",
|
|
119
|
+
"ios/**/*.{h,m,mm,cpp}": "yarn format:ios"
|
|
117
120
|
},
|
|
118
121
|
"release-it": {
|
|
119
122
|
"hooks": {
|
|
@@ -68,7 +68,7 @@ export default {
|
|
|
68
68
|
NodeManager.createGestureHandler(handlerTag, new GestureClass());
|
|
69
69
|
InteractionManager.getInstance().configureInteractions(
|
|
70
70
|
NodeManager.getHandler(handlerTag),
|
|
71
|
-
|
|
71
|
+
config as unknown as Config
|
|
72
72
|
);
|
|
73
73
|
} else {
|
|
74
74
|
if (!(handlerName in HammerGestures)) {
|
|
@@ -84,7 +84,7 @@ export default {
|
|
|
84
84
|
HammerNodeManager.createGestureHandler(handlerTag, new GestureClass());
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
this.updateGestureHandler(handlerTag,
|
|
87
|
+
this.updateGestureHandler(handlerTag, config as unknown as Config);
|
|
88
88
|
},
|
|
89
89
|
attachGestureHandler(
|
|
90
90
|
handlerTag: number,
|
|
@@ -70,7 +70,7 @@ export default {
|
|
|
70
70
|
NodeManager.createGestureHandler(handlerTag, new GestureClass());
|
|
71
71
|
InteractionManager.getInstance().configureInteractions(
|
|
72
72
|
NodeManager.getHandler(handlerTag),
|
|
73
|
-
|
|
73
|
+
config as unknown as Config
|
|
74
74
|
);
|
|
75
75
|
} else {
|
|
76
76
|
if (!(handlerName in HammerGestures)) {
|
|
@@ -86,7 +86,7 @@ export default {
|
|
|
86
86
|
HammerNodeManager.createGestureHandler(handlerTag, new GestureClass());
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
this.updateGestureHandler(handlerTag,
|
|
89
|
+
this.updateGestureHandler(handlerTag, config as unknown as Config);
|
|
90
90
|
},
|
|
91
91
|
attachGestureHandler(
|
|
92
92
|
handlerTag: number,
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import { ActionType } from './ActionType';
|
|
4
|
+
import { isExperimentalWebImplementationEnabled } from './EnableExperimentalWebImplementation';
|
|
5
|
+
|
|
6
|
+
//GestureHandlers
|
|
7
|
+
import InteractionManager from './web/tools/InteractionManager';
|
|
8
|
+
import NodeManager from './web/tools/NodeManager';
|
|
9
|
+
import PanGestureHandler from './web/handlers/PanGestureHandler';
|
|
10
|
+
import TapGestureHandler from './web/handlers/TapGestureHandler';
|
|
11
|
+
import LongPressGestureHandler from './web/handlers/LongPressGestureHandler';
|
|
12
|
+
import PinchGestureHandler from './web/handlers/PinchGestureHandler';
|
|
13
|
+
import RotationGestureHandler from './web/handlers/RotationGestureHandler';
|
|
14
|
+
import FlingGestureHandler from './web/handlers/FlingGestureHandler';
|
|
15
|
+
import NativeViewGestureHandler from './web/handlers/NativeViewGestureHandler';
|
|
16
|
+
import ManualGestureHandler from './web/handlers/ManualGestureHandler';
|
|
17
|
+
|
|
18
|
+
//Hammer Handlers
|
|
19
|
+
import * as HammerNodeManager from './web_hammer/NodeManager';
|
|
20
|
+
import HammerNativeViewGestureHandler from './web_hammer/NativeViewGestureHandler';
|
|
21
|
+
import HammerPanGestureHandler from './web_hammer/PanGestureHandler';
|
|
22
|
+
import HammerTapGestureHandler from './web_hammer/TapGestureHandler';
|
|
23
|
+
import HammerLongPressGestureHandler from './web_hammer/LongPressGestureHandler';
|
|
24
|
+
import HammerPinchGestureHandler from './web_hammer/PinchGestureHandler';
|
|
25
|
+
import HammerRotationGestureHandler from './web_hammer/RotationGestureHandler';
|
|
26
|
+
import HammerFlingGestureHandler from './web_hammer/FlingGestureHandler';
|
|
27
|
+
import { Config } from './web/interfaces';
|
|
28
|
+
|
|
29
|
+
export const Gestures = {
|
|
30
|
+
NativeViewGestureHandler,
|
|
31
|
+
PanGestureHandler,
|
|
32
|
+
TapGestureHandler,
|
|
33
|
+
LongPressGestureHandler,
|
|
34
|
+
PinchGestureHandler,
|
|
35
|
+
RotationGestureHandler,
|
|
36
|
+
FlingGestureHandler,
|
|
37
|
+
ManualGestureHandler,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export const HammerGestures = {
|
|
41
|
+
NativeViewGestureHandler: HammerNativeViewGestureHandler,
|
|
42
|
+
PanGestureHandler: HammerPanGestureHandler,
|
|
43
|
+
TapGestureHandler: HammerTapGestureHandler,
|
|
44
|
+
LongPressGestureHandler: HammerLongPressGestureHandler,
|
|
45
|
+
PinchGestureHandler: HammerPinchGestureHandler,
|
|
46
|
+
RotationGestureHandler: HammerRotationGestureHandler,
|
|
47
|
+
FlingGestureHandler: HammerFlingGestureHandler,
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export default {
|
|
51
|
+
handleSetJSResponder(_tag: number, _blockNativeResponder: boolean) {
|
|
52
|
+
// NO-OP
|
|
53
|
+
},
|
|
54
|
+
handleClearJSResponder() {
|
|
55
|
+
// NO-OP
|
|
56
|
+
},
|
|
57
|
+
createGestureHandler<T>(
|
|
58
|
+
handlerName: keyof typeof Gestures,
|
|
59
|
+
handlerTag: number,
|
|
60
|
+
config: T
|
|
61
|
+
) {
|
|
62
|
+
if (isExperimentalWebImplementationEnabled()) {
|
|
63
|
+
if (!(handlerName in Gestures)) {
|
|
64
|
+
throw new Error(
|
|
65
|
+
`react-native-gesture-handler: ${handlerName} is not supported on web.`
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const GestureClass = Gestures[handlerName];
|
|
70
|
+
NodeManager.createGestureHandler(handlerTag, new GestureClass());
|
|
71
|
+
InteractionManager.getInstance().configureInteractions(
|
|
72
|
+
NodeManager.getHandler(handlerTag),
|
|
73
|
+
config as unknown as Config
|
|
74
|
+
);
|
|
75
|
+
} else {
|
|
76
|
+
if (!(handlerName in HammerGestures)) {
|
|
77
|
+
throw new Error(
|
|
78
|
+
`react-native-gesture-handler: ${handlerName} is not supported on web.`
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// @ts-ignore If it doesn't exist, the error is thrown
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
84
|
+
const GestureClass = HammerGestures[handlerName];
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
86
|
+
HammerNodeManager.createGestureHandler(handlerTag, new GestureClass());
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
this.updateGestureHandler(handlerTag, config as unknown as Config);
|
|
90
|
+
},
|
|
91
|
+
attachGestureHandler(
|
|
92
|
+
handlerTag: number,
|
|
93
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
94
|
+
newView: any,
|
|
95
|
+
_actionType: ActionType,
|
|
96
|
+
propsRef: React.RefObject<unknown>
|
|
97
|
+
) {
|
|
98
|
+
if (
|
|
99
|
+
!(newView instanceof HTMLElement || newView instanceof React.Component)
|
|
100
|
+
) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (isExperimentalWebImplementationEnabled()) {
|
|
105
|
+
//@ts-ignore Types should be HTMLElement or React.Component
|
|
106
|
+
NodeManager.getHandler(handlerTag).init(newView, propsRef);
|
|
107
|
+
} else {
|
|
108
|
+
//@ts-ignore Types should be HTMLElement or React.Component
|
|
109
|
+
HammerNodeManager.getHandler(handlerTag).setView(newView, propsRef);
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
updateGestureHandler(handlerTag: number, newConfig: Config) {
|
|
113
|
+
if (isExperimentalWebImplementationEnabled()) {
|
|
114
|
+
NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);
|
|
115
|
+
|
|
116
|
+
InteractionManager.getInstance().configureInteractions(
|
|
117
|
+
NodeManager.getHandler(handlerTag),
|
|
118
|
+
newConfig
|
|
119
|
+
);
|
|
120
|
+
} else {
|
|
121
|
+
HammerNodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
getGestureHandlerNode(handlerTag: number) {
|
|
125
|
+
if (isExperimentalWebImplementationEnabled()) {
|
|
126
|
+
return NodeManager.getHandler(handlerTag);
|
|
127
|
+
} else {
|
|
128
|
+
return HammerNodeManager.getHandler(handlerTag);
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
dropGestureHandler(handlerTag: number) {
|
|
132
|
+
if (isExperimentalWebImplementationEnabled()) {
|
|
133
|
+
NodeManager.dropGestureHandler(handlerTag);
|
|
134
|
+
} else {
|
|
135
|
+
HammerNodeManager.dropGestureHandler(handlerTag);
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
139
|
+
flushOperations() {},
|
|
140
|
+
};
|
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
import {
|
|
27
27
|
GestureEvent,
|
|
28
28
|
HandlerStateChangeEvent,
|
|
29
|
+
UserSelect,
|
|
29
30
|
} from '../handlers/gestureHandlerCommon';
|
|
30
31
|
import {
|
|
31
32
|
PanGestureHandler,
|
|
@@ -53,6 +54,10 @@ export type DrawerLockMode = 'unlocked' | 'locked-closed' | 'locked-open';
|
|
|
53
54
|
|
|
54
55
|
export type DrawerKeyboardDismissMode = 'none' | 'on-drag';
|
|
55
56
|
|
|
57
|
+
// Animated.AnimatedInterpolation has been converted to a generic type
|
|
58
|
+
// in @types/react-native 0.70. This way we can maintain compatibility
|
|
59
|
+
// with all versions of @types/react-native`
|
|
60
|
+
type AnimatedInterpolation = ReturnType<Animated.Value['interpolate']>;
|
|
56
61
|
export interface DrawerLayoutProps {
|
|
57
62
|
/**
|
|
58
63
|
* This attribute is present in the standard implementation already and is one
|
|
@@ -152,7 +157,14 @@ export interface DrawerLayoutProps {
|
|
|
152
157
|
// implicit `children` prop has been removed in @types/react^18.0.0
|
|
153
158
|
children?:
|
|
154
159
|
| React.ReactNode
|
|
155
|
-
| ((openValue?:
|
|
160
|
+
| ((openValue?: AnimatedInterpolation) => React.ReactNode);
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* @default 'none'
|
|
164
|
+
* Defines which userSelect property should be used.
|
|
165
|
+
* Values: 'none'|'text'|'auto'
|
|
166
|
+
*/
|
|
167
|
+
userSelect?: UserSelect;
|
|
156
168
|
}
|
|
157
169
|
|
|
158
170
|
export type DrawerLayoutState = {
|
|
@@ -216,7 +228,7 @@ export default class DrawerLayout extends Component<
|
|
|
216
228
|
return true;
|
|
217
229
|
}
|
|
218
230
|
|
|
219
|
-
private openValue?:
|
|
231
|
+
private openValue?: AnimatedInterpolation;
|
|
220
232
|
private onGestureEvent?: (
|
|
221
233
|
event: GestureEvent<PanGestureHandlerEventPayload>
|
|
222
234
|
) => void;
|
|
@@ -595,7 +607,7 @@ export default class DrawerLayout extends Component<
|
|
|
595
607
|
};
|
|
596
608
|
}
|
|
597
609
|
|
|
598
|
-
let drawerTranslateX: number |
|
|
610
|
+
let drawerTranslateX: number | AnimatedInterpolation = 0;
|
|
599
611
|
if (drawerSlide) {
|
|
600
612
|
const closedDrawerOffset = fromLeft ? -drawerWidth! : drawerWidth!;
|
|
601
613
|
if (this.state.drawerState !== IDLE) {
|
|
@@ -609,7 +621,7 @@ export default class DrawerLayout extends Component<
|
|
|
609
621
|
}
|
|
610
622
|
}
|
|
611
623
|
const drawerStyles: {
|
|
612
|
-
transform: { translateX: number |
|
|
624
|
+
transform: { translateX: number | AnimatedInterpolation }[];
|
|
613
625
|
flexDirection: 'row-reverse' | 'row';
|
|
614
626
|
} = {
|
|
615
627
|
transform: [{ translateX: drawerTranslateX }],
|
|
@@ -650,18 +662,15 @@ export default class DrawerLayout extends Component<
|
|
|
650
662
|
private setPanGestureRef = (ref: PanGestureHandler) => {
|
|
651
663
|
// TODO(TS): make sure it is OK taken from
|
|
652
664
|
// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065#issuecomment-596081842
|
|
653
|
-
(
|
|
654
|
-
.panGestureHandler as React.MutableRefObject<PanGestureHandler>
|
|
665
|
+
(
|
|
666
|
+
this.panGestureHandler as React.MutableRefObject<PanGestureHandler>
|
|
667
|
+
).current = ref;
|
|
655
668
|
this.props.onGestureRef?.(ref);
|
|
656
669
|
};
|
|
657
670
|
|
|
658
671
|
render() {
|
|
659
|
-
const {
|
|
660
|
-
|
|
661
|
-
drawerLockMode,
|
|
662
|
-
edgeWidth,
|
|
663
|
-
minSwipeDistance,
|
|
664
|
-
} = this.props;
|
|
672
|
+
const { drawerPosition, drawerLockMode, edgeWidth, minSwipeDistance } =
|
|
673
|
+
this.props;
|
|
665
674
|
|
|
666
675
|
const fromLeft = drawerPosition === 'left';
|
|
667
676
|
|
|
@@ -681,6 +690,7 @@ export default class DrawerLayout extends Component<
|
|
|
681
690
|
return (
|
|
682
691
|
<PanGestureHandler
|
|
683
692
|
// @ts-ignore could be fixed in handler types
|
|
693
|
+
userSelect={this.props.userSelect}
|
|
684
694
|
ref={this.setPanGestureRef}
|
|
685
695
|
hitSlop={hitSlop}
|
|
686
696
|
activeOffsetX={gestureOrientation * minSwipeDistance!}
|
|
@@ -36,6 +36,11 @@ type SwipeableExcludes = Exclude<
|
|
|
36
36
|
'onGestureEvent' | 'onHandlerStateChange'
|
|
37
37
|
>;
|
|
38
38
|
|
|
39
|
+
// Animated.AnimatedInterpolation has been converted to a generic type
|
|
40
|
+
// in @types/react-native 0.70. This way we can maintain compatibility
|
|
41
|
+
// with all versions of @types/react-native
|
|
42
|
+
type AnimatedInterpolation = ReturnType<Animated.Value['interpolate']>;
|
|
43
|
+
|
|
39
44
|
export interface SwipeableProps
|
|
40
45
|
extends Pick<PanGestureHandlerProps, SwipeableExcludes> {
|
|
41
46
|
/**
|
|
@@ -150,8 +155,8 @@ export interface SwipeableProps
|
|
|
150
155
|
* To support `rtl` flexbox layouts use `flexDirection` styling.
|
|
151
156
|
* */
|
|
152
157
|
renderLeftActions?: (
|
|
153
|
-
progressAnimatedValue:
|
|
154
|
-
dragAnimatedValue:
|
|
158
|
+
progressAnimatedValue: AnimatedInterpolation,
|
|
159
|
+
dragAnimatedValue: AnimatedInterpolation
|
|
155
160
|
) => React.ReactNode;
|
|
156
161
|
/**
|
|
157
162
|
*
|
|
@@ -163,8 +168,8 @@ export interface SwipeableProps
|
|
|
163
168
|
* To support `rtl` flexbox layouts use `flexDirection` styling.
|
|
164
169
|
* */
|
|
165
170
|
renderRightActions?: (
|
|
166
|
-
progressAnimatedValue:
|
|
167
|
-
dragAnimatedValue:
|
|
171
|
+
progressAnimatedValue: AnimatedInterpolation,
|
|
172
|
+
dragAnimatedValue: AnimatedInterpolation,
|
|
168
173
|
swipeable: Swipeable
|
|
169
174
|
) => React.ReactNode;
|
|
170
175
|
|
|
@@ -242,11 +247,11 @@ export default class Swipeable extends Component<
|
|
|
242
247
|
private onGestureEvent?: (
|
|
243
248
|
event: GestureEvent<PanGestureHandlerEventPayload>
|
|
244
249
|
) => void;
|
|
245
|
-
private transX?:
|
|
246
|
-
private showLeftAction?:
|
|
247
|
-
private leftActionTranslate?:
|
|
248
|
-
private showRightAction?:
|
|
249
|
-
private rightActionTranslate?:
|
|
250
|
+
private transX?: AnimatedInterpolation;
|
|
251
|
+
private showLeftAction?: AnimatedInterpolation | Animated.Value;
|
|
252
|
+
private leftActionTranslate?: AnimatedInterpolation;
|
|
253
|
+
private showRightAction?: AnimatedInterpolation | Animated.Value;
|
|
254
|
+
private rightActionTranslate?: AnimatedInterpolation;
|
|
250
255
|
|
|
251
256
|
private updateAnimatedEvent = (
|
|
252
257
|
props: SwipeableProps,
|
|
@@ -257,10 +262,8 @@ export default class Swipeable extends Component<
|
|
|
257
262
|
const { rightOffset = rowWidth } = state;
|
|
258
263
|
const rightWidth = Math.max(0, rowWidth - rightOffset);
|
|
259
264
|
|
|
260
|
-
const {
|
|
261
|
-
|
|
262
|
-
overshootRight = rightWidth > 0,
|
|
263
|
-
} = props;
|
|
265
|
+
const { overshootLeft = leftWidth > 0, overshootRight = rightWidth > 0 } =
|
|
266
|
+
props;
|
|
264
267
|
|
|
265
268
|
const transX = Animated.add(
|
|
266
269
|
rowTranslation,
|
|
@@ -63,7 +63,7 @@ export default class TouchableOpacity extends Component<
|
|
|
63
63
|
style={[
|
|
64
64
|
style,
|
|
65
65
|
{
|
|
66
|
-
opacity:
|
|
66
|
+
opacity: this.opacity as unknown as number, // TODO: fix this
|
|
67
67
|
},
|
|
68
68
|
]}
|
|
69
69
|
onStateChange={this.onStateChange}>
|
|
@@ -3,7 +3,9 @@ import { StyleSheet, StyleProp, ViewStyle } from 'react-native';
|
|
|
3
3
|
import hoistNonReactStatics from 'hoist-non-react-statics';
|
|
4
4
|
import GestureHandlerRootView from './GestureHandlerRootView';
|
|
5
5
|
|
|
6
|
-
export default function gestureHandlerRootHOC<
|
|
6
|
+
export default function gestureHandlerRootHOC<
|
|
7
|
+
P extends JSX.IntrinsicAttributes
|
|
8
|
+
>(
|
|
7
9
|
Component: React.ComponentType<P>,
|
|
8
10
|
containerStyles?: StyleProp<ViewStyle>
|
|
9
11
|
): React.ComponentType<P> {
|
|
@@ -19,6 +21,7 @@ export default function gestureHandlerRootHOC<P>(
|
|
|
19
21
|
Component.displayName || Component.name
|
|
20
22
|
})`;
|
|
21
23
|
|
|
24
|
+
// @ts-ignore - hoistNonReactStatics uses old version of @types/react
|
|
22
25
|
hoistNonReactStatics(Wrapper, Component);
|
|
23
26
|
|
|
24
27
|
return Wrapper;
|
|
@@ -8,9 +8,9 @@ export function getShadowNodeFromRef(ref: any) {
|
|
|
8
8
|
// load findHostInstance_DEPRECATED lazily because it may not be available before render
|
|
9
9
|
if (findHostInstance_DEPRECATED === undefined) {
|
|
10
10
|
try {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
.findHostInstance_DEPRECATED;
|
|
11
|
+
findHostInstance_DEPRECATED =
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
13
|
+
require('react-native/Libraries/Renderer/shims/ReactFabric').findHostInstance_DEPRECATED;
|
|
14
14
|
} catch (e) {
|
|
15
15
|
findHostInstance_DEPRECATED = (_ref: any) => null;
|
|
16
16
|
}
|
|
@@ -132,15 +132,14 @@ const stateToPropMappings = {
|
|
|
132
132
|
[State.END]: 'onEnded',
|
|
133
133
|
} as const;
|
|
134
134
|
|
|
135
|
-
type CreateHandlerArgs<
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}>;
|
|
135
|
+
type CreateHandlerArgs<HandlerPropsT extends Record<string, unknown>> =
|
|
136
|
+
Readonly<{
|
|
137
|
+
name: string;
|
|
138
|
+
allowedProps: Readonly<Extract<keyof HandlerPropsT, string>[]>;
|
|
139
|
+
config: Readonly<Record<string, unknown>>;
|
|
140
|
+
transformProps?: (props: HandlerPropsT) => HandlerPropsT;
|
|
141
|
+
customNativeProps?: Readonly<string[]>;
|
|
142
|
+
}>;
|
|
144
143
|
|
|
145
144
|
// TODO(TS) fix event types
|
|
146
145
|
type InternalEventHandlers = {
|
|
@@ -313,7 +312,9 @@ export default function createHandler<
|
|
|
313
312
|
|
|
314
313
|
if (Platform.OS === 'web') {
|
|
315
314
|
// typecast due to dynamic resolution, attachGestureHandler should have web version signature in this branch
|
|
316
|
-
(
|
|
315
|
+
(
|
|
316
|
+
RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler
|
|
317
|
+
)(
|
|
317
318
|
this.handlerTag,
|
|
318
319
|
newViewTag,
|
|
319
320
|
ActionType.JS_FUNCTION_OLD_API, // ignored on web
|
|
@@ -403,11 +404,8 @@ export default function createHandler<
|
|
|
403
404
|
onGestureEvent?: BaseGestureHandlerProps<U>['onGestureEvent'];
|
|
404
405
|
onGestureHandlerEvent?: InternalEventHandlers['onGestureHandlerEvent'];
|
|
405
406
|
};
|
|
406
|
-
const {
|
|
407
|
-
|
|
408
|
-
onGestureHandlerEvent,
|
|
409
|
-
}: OnGestureEventHandlers = this.props;
|
|
410
|
-
|
|
407
|
+
const { onGestureEvent, onGestureHandlerEvent }: OnGestureEventHandlers =
|
|
408
|
+
this.props;
|
|
411
409
|
if (onGestureEvent && typeof onGestureEvent !== 'function') {
|
|
412
410
|
// If it's not a method it should be an native Animated.event
|
|
413
411
|
// object. We set it directly as the handler for the view
|
|
@@ -18,6 +18,7 @@ const commonProps = [
|
|
|
18
18
|
'shouldCancelWhenOutside',
|
|
19
19
|
'hitSlop',
|
|
20
20
|
'cancelsTouchesInView',
|
|
21
|
+
'userSelect',
|
|
21
22
|
] as const;
|
|
22
23
|
|
|
23
24
|
const componentInteractionProps = ['waitFor', 'simultaneousHandlers'] as const;
|
|
@@ -62,6 +63,8 @@ export type HitSlop =
|
|
|
62
63
|
| Record<'height' | 'top', number>
|
|
63
64
|
| Record<'height' | 'bottom', number>;
|
|
64
65
|
|
|
66
|
+
export type UserSelect = 'none' | 'auto' | 'text';
|
|
67
|
+
|
|
65
68
|
//TODO(TS) events in handlers
|
|
66
69
|
|
|
67
70
|
export interface GestureEvent<ExtraEventPayloadT = Record<string, unknown>> {
|
|
@@ -90,9 +93,8 @@ export type GestureTouchEvent = {
|
|
|
90
93
|
changedTouches: TouchData[];
|
|
91
94
|
};
|
|
92
95
|
|
|
93
|
-
export type GestureUpdateEvent<
|
|
94
|
-
|
|
95
|
-
> = GestureEventPayload & GestureEventPayloadT;
|
|
96
|
+
export type GestureUpdateEvent<GestureEventPayloadT = Record<string, unknown>> =
|
|
97
|
+
GestureEventPayload & GestureEventPayloadT;
|
|
96
98
|
|
|
97
99
|
export type GestureStateChangeEvent<
|
|
98
100
|
GestureStateChangeEventPayloadT = Record<string, unknown>
|
|
@@ -102,6 +104,7 @@ export type CommonGestureConfig = {
|
|
|
102
104
|
enabled?: boolean;
|
|
103
105
|
shouldCancelWhenOutside?: boolean;
|
|
104
106
|
hitSlop?: HitSlop;
|
|
107
|
+
userSelect?: UserSelect;
|
|
105
108
|
};
|
|
106
109
|
|
|
107
110
|
// Events payloads are types instead of interfaces due to TS limitation.
|
|
@@ -182,7 +185,9 @@ function transformIntoHandlerTags(handlerIDs: any) {
|
|
|
182
185
|
export function findNodeHandle(
|
|
183
186
|
node: null | number | React.Component<any, any> | React.ComponentClass<any>
|
|
184
187
|
): null | number | React.Component<any, any> | React.ComponentClass<any> {
|
|
185
|
-
if (Platform.OS === 'web')
|
|
188
|
+
if (Platform.OS === 'web') {
|
|
189
|
+
return node;
|
|
190
|
+
}
|
|
186
191
|
return findNodeHandleRN(node);
|
|
187
192
|
}
|
|
188
193
|
|
|
@@ -45,33 +45,50 @@ import {
|
|
|
45
45
|
|
|
46
46
|
// events
|
|
47
47
|
export type GestureHandlerGestureEventNativeEvent = GestureEventPayload;
|
|
48
|
-
export type GestureHandlerStateChangeNativeEvent =
|
|
48
|
+
export type GestureHandlerStateChangeNativeEvent =
|
|
49
|
+
HandlerStateChangeEventPayload;
|
|
49
50
|
export type GestureHandlerGestureEvent = GestureEvent;
|
|
50
51
|
export type GestureHandlerStateChangeEvent = HandlerStateChangeEvent;
|
|
51
52
|
// gesture handlers events
|
|
52
|
-
export type NativeViewGestureHandlerGestureEvent =
|
|
53
|
-
|
|
53
|
+
export type NativeViewGestureHandlerGestureEvent =
|
|
54
|
+
GestureEvent<NativeViewGestureHandlerPayload>;
|
|
55
|
+
export type NativeViewGestureHandlerStateChangeEvent =
|
|
56
|
+
HandlerStateChangeEvent<NativeViewGestureHandlerPayload>;
|
|
54
57
|
|
|
55
|
-
export type TapGestureHandlerGestureEvent =
|
|
56
|
-
|
|
58
|
+
export type TapGestureHandlerGestureEvent =
|
|
59
|
+
GestureEvent<TapGestureHandlerEventPayload>;
|
|
60
|
+
export type TapGestureHandlerStateChangeEvent =
|
|
61
|
+
HandlerStateChangeEvent<TapGestureHandlerEventPayload>;
|
|
57
62
|
|
|
58
|
-
export type ForceTouchGestureHandlerGestureEvent =
|
|
59
|
-
|
|
63
|
+
export type ForceTouchGestureHandlerGestureEvent =
|
|
64
|
+
GestureEvent<ForceTouchGestureHandlerEventPayload>;
|
|
65
|
+
export type ForceTouchGestureHandlerStateChangeEvent =
|
|
66
|
+
HandlerStateChangeEvent<ForceTouchGestureHandlerEventPayload>;
|
|
60
67
|
|
|
61
|
-
export type LongPressGestureHandlerGestureEvent =
|
|
62
|
-
|
|
68
|
+
export type LongPressGestureHandlerGestureEvent =
|
|
69
|
+
GestureEvent<LongPressGestureHandlerEventPayload>;
|
|
70
|
+
export type LongPressGestureHandlerStateChangeEvent =
|
|
71
|
+
HandlerStateChangeEvent<LongPressGestureHandlerEventPayload>;
|
|
63
72
|
|
|
64
|
-
export type PanGestureHandlerGestureEvent =
|
|
65
|
-
|
|
73
|
+
export type PanGestureHandlerGestureEvent =
|
|
74
|
+
GestureEvent<PanGestureHandlerEventPayload>;
|
|
75
|
+
export type PanGestureHandlerStateChangeEvent =
|
|
76
|
+
HandlerStateChangeEvent<PanGestureHandlerEventPayload>;
|
|
66
77
|
|
|
67
|
-
export type PinchGestureHandlerGestureEvent =
|
|
68
|
-
|
|
78
|
+
export type PinchGestureHandlerGestureEvent =
|
|
79
|
+
GestureEvent<PinchGestureHandlerEventPayload>;
|
|
80
|
+
export type PinchGestureHandlerStateChangeEvent =
|
|
81
|
+
HandlerStateChangeEvent<PinchGestureHandlerEventPayload>;
|
|
69
82
|
|
|
70
|
-
export type RotationGestureHandlerGestureEvent =
|
|
71
|
-
|
|
83
|
+
export type RotationGestureHandlerGestureEvent =
|
|
84
|
+
GestureEvent<RotationGestureHandlerEventPayload>;
|
|
85
|
+
export type RotationGestureHandlerStateChangeEvent =
|
|
86
|
+
HandlerStateChangeEvent<RotationGestureHandlerEventPayload>;
|
|
72
87
|
|
|
73
|
-
export type FlingGestureHandlerGestureEvent =
|
|
74
|
-
|
|
88
|
+
export type FlingGestureHandlerGestureEvent =
|
|
89
|
+
GestureEvent<FlingGestureHandlerEventPayload>;
|
|
90
|
+
export type FlingGestureHandlerStateChangeEvent =
|
|
91
|
+
HandlerStateChangeEvent<FlingGestureHandlerEventPayload>;
|
|
75
92
|
|
|
76
93
|
// handlers properties
|
|
77
94
|
export type NativeViewGestureHandlerProperties = NativeViewGestureHandlerProps;
|