react-native-gesture-handler 2.5.0 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +1 -0
- package/RNGestureHandler.podspec +17 -5
- package/android/build.gradle +71 -15
- package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +2 -1
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +30 -9
- package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +5 -2
- package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +2 -1
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +2 -1
- package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +3 -2
- package/android/src/fabric/java/com/swmansion/gesturehandler/RNGestureHandlerComponentsRegistry.java +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +0 -8
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +7 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +1 -1
- package/android/src/main/jni/CMakeLists.txt +59 -0
- package/ios/RNGestureHandlerButtonComponentView.mm +1 -1
- package/ios/RNGestureHandlerManager.mm +0 -5
- package/ios/RNGestureHandlerRootViewComponentView.mm +1 -1
- package/lib/commonjs/EnableExperimentalWebImplementation.js +24 -0
- package/lib/commonjs/EnableExperimentalWebImplementation.js.map +1 -0
- package/lib/commonjs/RNGestureHandlerModule.macos.js +87 -30
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +87 -25
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNRenderer.js +16 -0
- package/lib/commonjs/RNRenderer.js.map +1 -0
- package/lib/commonjs/RNRenderer.web.js +11 -0
- package/lib/commonjs/RNRenderer.web.js.map +1 -0
- package/lib/commonjs/components/DrawerLayout.js +3 -1
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureButtons.js +42 -9
- package/lib/commonjs/components/GestureButtons.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.js +41 -4
- package/lib/commonjs/components/GestureComponents.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.web.js +7 -2
- package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js +3 -1
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js +2 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +8 -1
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector.js +67 -12
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +7 -0
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/commonjs/index.js +14 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/web/constants.js +3 -51
- package/lib/commonjs/web/constants.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js +169 -0
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -0
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js +167 -0
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -0
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +154 -0
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/GestureHandler.js +538 -0
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +147 -0
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +116 -0
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/PanGestureHandler.js +451 -0
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +171 -0
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +187 -0
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/TapGestureHandler.js +296 -0
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -0
- package/lib/commonjs/web/interfaces.js +34 -0
- package/lib/commonjs/web/interfaces.js.map +1 -0
- package/lib/commonjs/web/tools/EventManager.js +169 -0
- package/lib/commonjs/web/tools/EventManager.js.map +1 -0
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +283 -0
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -0
- package/lib/commonjs/web/tools/InteractionManager.js +102 -0
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -0
- package/lib/commonjs/web/tools/NodeManager.js +48 -0
- package/lib/commonjs/web/tools/NodeManager.js.map +1 -0
- package/lib/commonjs/web/tools/PointerTracker.js +132 -0
- package/lib/commonjs/web/tools/PointerTracker.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/DiscreteGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/DiscreteGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/DraggingGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/DraggingGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/Errors.js +0 -0
- package/lib/commonjs/{web → web_hammer}/Errors.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/FlingGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/FlingGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/GestureHandler.js +83 -42
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/IndiscreteGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/IndiscreteGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/LongPressGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/LongPressGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/NativeViewGestureHandler.js +4 -0
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/NodeManager.js +0 -0
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/PanGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/PanGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/PinchGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/PinchGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/PressGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/PressGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/RotationGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/RotationGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/TapGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/TapGestureHandler.js.map +0 -0
- package/lib/commonjs/web_hammer/constants.js +64 -0
- package/lib/commonjs/web_hammer/constants.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/utils.js +0 -0
- package/lib/commonjs/{web → web_hammer}/utils.js.map +0 -0
- package/lib/module/EnableExperimentalWebImplementation.js +15 -0
- package/lib/module/EnableExperimentalWebImplementation.js.map +1 -0
- package/lib/module/RNGestureHandlerModule.macos.js +74 -29
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +73 -24
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNRenderer.js +4 -0
- package/lib/module/RNRenderer.js.map +1 -0
- package/lib/module/RNRenderer.web.js +4 -0
- package/lib/module/RNRenderer.web.js.map +1 -0
- package/lib/module/components/DrawerLayout.js +3 -1
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureButtons.js +43 -9
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/GestureComponents.js +39 -4
- package/lib/module/components/GestureComponents.js.map +1 -1
- package/lib/module/components/GestureComponents.web.js +6 -2
- package/lib/module/components/GestureComponents.web.js.map +1 -1
- package/lib/module/components/Swipeable.js +3 -1
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchable.js +2 -1
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/module/handlers/createHandler.js +9 -2
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +64 -11
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/reanimatedWrapper.js +7 -0
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/web/constants.js +1 -36
- package/lib/module/web/constants.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js +159 -0
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -0
- package/lib/module/web/detectors/ScaleGestureDetector.js +156 -0
- package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -0
- package/lib/module/web/handlers/FlingGestureHandler.js +139 -0
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/GestureHandler.js +521 -0
- package/lib/module/web/handlers/GestureHandler.js.map +1 -0
- package/lib/module/web/handlers/LongPressGestureHandler.js +133 -0
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/NativeViewGestureHandler.js +103 -0
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/PanGestureHandler.js +434 -0
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/PinchGestureHandler.js +155 -0
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/RotationGestureHandler.js +171 -0
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/TapGestureHandler.js +281 -0
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -0
- package/lib/module/web/interfaces.js +26 -0
- package/lib/module/web/interfaces.js.map +1 -0
- package/lib/module/web/tools/EventManager.js +160 -0
- package/lib/module/web/tools/EventManager.js.map +1 -0
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +270 -0
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -0
- package/lib/module/web/tools/InteractionManager.js +93 -0
- package/lib/module/web/tools/InteractionManager.js.map +1 -0
- package/lib/module/web/tools/NodeManager.js +39 -0
- package/lib/module/web/tools/NodeManager.js.map +1 -0
- package/lib/module/web/tools/PointerTracker.js +122 -0
- package/lib/module/web/tools/PointerTracker.js.map +1 -0
- package/lib/module/{web → web_hammer}/DiscreteGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/DiscreteGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/DraggingGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/DraggingGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/Errors.js +0 -0
- package/lib/module/{web → web_hammer}/Errors.js.map +0 -0
- package/lib/module/{web → web_hammer}/FlingGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/FlingGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/GestureHandler.js +83 -42
- package/lib/module/web_hammer/GestureHandler.js.map +1 -0
- package/lib/module/{web → web_hammer}/IndiscreteGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/IndiscreteGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/LongPressGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/LongPressGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/NativeViewGestureHandler.js +4 -0
- package/lib/module/web_hammer/NativeViewGestureHandler.js.map +1 -0
- package/lib/module/{web → web_hammer}/NodeManager.js +0 -0
- package/lib/module/web_hammer/NodeManager.js.map +1 -0
- package/lib/module/{web → web_hammer}/PanGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/PanGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/PinchGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/PinchGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/PressGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/PressGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/RotationGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/RotationGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/TapGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/TapGestureHandler.js.map +0 -0
- package/lib/module/web_hammer/constants.js +43 -0
- package/lib/module/web_hammer/constants.js.map +1 -0
- package/lib/module/{web → web_hammer}/utils.js +0 -0
- package/lib/module/{web → web_hammer}/utils.js.map +0 -0
- package/lib/typescript/EnableExperimentalWebImplementation.d.ts +2 -0
- package/lib/typescript/RNGestureHandlerModule.macos.d.ts +28 -18
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +29 -18
- package/lib/typescript/RNRenderer.d.ts +1 -0
- package/lib/typescript/RNRenderer.web.d.ts +3 -0
- package/lib/typescript/components/DrawerLayout.d.ts +1 -1
- package/lib/typescript/components/GestureButtons.d.ts +16 -0
- package/lib/typescript/components/GestureComponents.d.ts +7 -3
- package/lib/typescript/components/GestureComponents.web.d.ts +1 -0
- package/lib/typescript/components/Swipeable.d.ts +1 -1
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/web/constants.d.ts +1 -33
- package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +30 -0
- package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +30 -0
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +31 -0
- package/lib/typescript/web/handlers/GestureHandler.d.ts +84 -0
- package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +33 -0
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +16 -0
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts +68 -0
- package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +30 -0
- package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +30 -0
- package/lib/typescript/web/handlers/TapGestureHandler.d.ts +49 -0
- package/lib/typescript/web/interfaces.d.ts +97 -0
- package/lib/typescript/web/tools/EventManager.d.ts +28 -0
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +28 -0
- package/lib/typescript/web/tools/InteractionManager.d.ts +13 -0
- package/lib/typescript/web/tools/NodeManager.d.ts +11 -0
- package/lib/typescript/web/tools/PointerTracker.d.ts +28 -0
- package/lib/typescript/{web → web_hammer}/DiscreteGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/DraggingGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/Errors.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/FlingGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/GestureHandler.d.ts +6 -0
- package/lib/typescript/{web → web_hammer}/IndiscreteGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/LongPressGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/NativeViewGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/NodeManager.d.ts +8 -0
- package/lib/typescript/{web → web_hammer}/PanGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/PinchGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/PressGestureHandler.d.ts +2 -0
- package/lib/typescript/{web → web_hammer}/RotationGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/TapGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/constants.d.ts +39 -0
- package/lib/typescript/{web → web_hammer}/utils.d.ts +0 -0
- package/package.json +1 -1
- package/src/EnableExperimentalWebImplementation.ts +18 -0
- package/src/RNGestureHandlerModule.macos.ts +81 -29
- package/src/RNGestureHandlerModule.web.ts +89 -26
- package/src/RNRenderer.ts +3 -0
- package/src/RNRenderer.web.ts +3 -0
- package/src/components/DrawerLayout.tsx +3 -4
- package/src/components/GestureButtons.tsx +57 -0
- package/src/components/GestureComponents.tsx +66 -6
- package/src/components/GestureComponents.web.tsx +5 -0
- package/src/components/Swipeable.tsx +3 -1
- package/src/components/touchables/GenericTouchable.tsx +1 -0
- package/src/handlers/createHandler.tsx +13 -2
- package/src/handlers/gestures/GestureDetector.tsx +78 -12
- package/src/handlers/gestures/reanimatedWrapper.ts +7 -0
- package/src/index.ts +3 -0
- package/src/web/constants.ts +1 -41
- package/src/web/detectors/RotationGestureDetector.ts +199 -0
- package/src/web/detectors/ScaleGestureDetector.ts +208 -0
- package/src/web/handlers/FlingGestureHandler.ts +146 -0
- package/src/web/handlers/GestureHandler.ts +572 -0
- package/src/web/handlers/LongPressGestureHandler.ts +122 -0
- package/src/web/handlers/NativeViewGestureHandler.ts +109 -0
- package/src/web/handlers/PanGestureHandler.ts +488 -0
- package/src/web/handlers/PinchGestureHandler.ts +162 -0
- package/src/web/handlers/RotationGestureHandler.ts +181 -0
- package/src/web/handlers/TapGestureHandler.ts +275 -0
- package/src/web/interfaces.ts +114 -0
- package/src/web/tools/EventManager.ts +186 -0
- package/src/web/tools/GestureHandlerOrchestrator.ts +329 -0
- package/src/web/tools/InteractionManager.ts +108 -0
- package/src/web/tools/NodeManager.ts +43 -0
- package/src/web/tools/PointerTracker.ts +130 -0
- package/src/{web → web_hammer}/DiscreteGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/DraggingGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/Errors.ts +0 -0
- package/src/{web → web_hammer}/FlingGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/GestureHandler.ts +102 -55
- package/src/{web → web_hammer}/IndiscreteGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/LongPressGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/NativeViewGestureHandler.ts +4 -0
- package/src/{web → web_hammer}/NodeManager.ts +6 -3
- package/src/{web → web_hammer}/PanGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/PinchGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/PressGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/RotationGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/TapGestureHandler.ts +0 -0
- package/src/web_hammer/constants.ts +48 -0
- package/src/{web → web_hammer}/utils.ts +0 -0
- package/android/src/main/jni/Android.mk +0 -52
- package/android/src/main/jni/OnLoad.cpp +0 -9
- package/android/src/main/jni/RNGestureHandlerComponentsRegistry.cpp +0 -71
- package/android/src/main/jni/RNGestureHandlerComponentsRegistry.h +0 -34
- package/lib/commonjs/web/GestureHandler.js.map +0 -1
- package/lib/commonjs/web/NativeViewGestureHandler.js.map +0 -1
- package/lib/commonjs/web/NodeManager.js.map +0 -1
- package/lib/module/web/GestureHandler.js.map +0 -1
- package/lib/module/web/NativeViewGestureHandler.js.map +0 -1
- package/lib/module/web/NodeManager.js.map +0 -1
- package/lib/typescript/web/NodeManager.d.ts +0 -8
package/README.md
CHANGED
package/RNGestureHandler.podspec
CHANGED
@@ -1,6 +1,21 @@
|
|
1
1
|
require "json"
|
2
2
|
|
3
|
-
fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED']
|
3
|
+
fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1'
|
4
|
+
|
5
|
+
isUserApp = File.exists?(File.join(__dir__, "..", "..", "node_modules", "react-native", "package.json"))
|
6
|
+
if isUserApp
|
7
|
+
libInstances = %x[find ../../ -name "package.json" | grep "/react-native-gesture-handler/package.json" | grep -v "/.yarn/"]
|
8
|
+
libInstancesArray = libInstances.split("\n")
|
9
|
+
if libInstancesArray.length() > 1
|
10
|
+
parsedLocation = ''
|
11
|
+
for location in libInstancesArray
|
12
|
+
location['../../'] = '- '
|
13
|
+
location['/package.json'] = ''
|
14
|
+
parsedLocation += location + "\n"
|
15
|
+
end
|
16
|
+
raise "[Gesture Handler] Multiple versions of Gesture Handler were detected. Only one instance of react-native-gesture-handler can be installed in a project. You need to resolve the conflict manually. Check out the documentation: https://docs.swmansion.com/react-native-gesture-handler/docs/troubleshooting#multiple-versions-of-reanimated-were-detected \n\nConflict between: \n" + parsedLocation
|
17
|
+
end
|
18
|
+
end
|
4
19
|
|
5
20
|
Pod::Spec.new do |s|
|
6
21
|
# NPM package specification
|
@@ -17,9 +32,6 @@ Pod::Spec.new do |s|
|
|
17
32
|
s.requires_arc = true
|
18
33
|
|
19
34
|
if fabric_enabled
|
20
|
-
# folly_version must match the version used in React Native
|
21
|
-
# See folly_version in react-native/React/FBReactNativeSpec/FBReactNativeSpec.podspec
|
22
|
-
folly_version = '2021.06.28.00-v2'
|
23
35
|
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
|
24
36
|
|
25
37
|
s.pod_target_xcconfig = {
|
@@ -32,7 +44,7 @@ Pod::Spec.new do |s|
|
|
32
44
|
s.dependency "React"
|
33
45
|
s.dependency "React-RCTFabric" # This is for fabric component
|
34
46
|
s.dependency "React-Codegen"
|
35
|
-
s.dependency "RCT-Folly"
|
47
|
+
s.dependency "RCT-Folly"
|
36
48
|
s.dependency "RCTRequired"
|
37
49
|
s.dependency "RCTTypeSafety"
|
38
50
|
s.dependency "ReactCommon/turbomodule/core"
|
package/android/build.gradle
CHANGED
@@ -21,7 +21,7 @@ def isNewArchitectureEnabled() {
|
|
21
21
|
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
|
22
22
|
}
|
23
23
|
|
24
|
-
def findNodeModulePath(baseDir, packageName) {
|
24
|
+
static def findNodeModulePath(baseDir, packageName) {
|
25
25
|
def basePath = baseDir.toPath().normalize()
|
26
26
|
// Node's module resolution algorithm searches up to the root directory,
|
27
27
|
// after which the base path will be null
|
@@ -35,6 +35,13 @@ def findNodeModulePath(baseDir, packageName) {
|
|
35
35
|
return null
|
36
36
|
}
|
37
37
|
|
38
|
+
def findNodeModulePath(packageName) {
|
39
|
+
// Don't start in the project dir, as its path ends with node_modules/react-native-gesture-handler/android
|
40
|
+
// we want to go two levels up, so we end up in the first_node modules and eventually
|
41
|
+
// search upwards if the package is not found there
|
42
|
+
return findNodeModulePath(projectDir.toPath().parent.parent.toFile(), packageName)
|
43
|
+
}
|
44
|
+
|
38
45
|
if (isNewArchitectureEnabled()) {
|
39
46
|
apply plugin: 'com.facebook.react'
|
40
47
|
}
|
@@ -59,6 +66,45 @@ def shouldUseCommonInterfaceFromReanimated() {
|
|
59
66
|
}
|
60
67
|
}
|
61
68
|
|
69
|
+
def reactNativeArchitectures() {
|
70
|
+
def value = project.getProperties().get("reactNativeArchitectures")
|
71
|
+
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
|
72
|
+
}
|
73
|
+
|
74
|
+
def shouldAssertNoMultipleInstances() {
|
75
|
+
if (rootProject.hasProperty("disableMultipleInstancesCheck")) {
|
76
|
+
return rootProject.property("disableMultipleInstancesCheck") != "true"
|
77
|
+
} else {
|
78
|
+
return true
|
79
|
+
}
|
80
|
+
}
|
81
|
+
|
82
|
+
def noMultipleInstancesAssertion() {
|
83
|
+
Set<File> files = fileTree(rootDir.parent) {
|
84
|
+
include "node_modules/**/react-native-gesture-handler/package.json"
|
85
|
+
exclude "**/.yarn/**"
|
86
|
+
}.files
|
87
|
+
|
88
|
+
if (files.size() > 1) {
|
89
|
+
String parsedLocation = files.stream().map({ File file -> "- " + file.toString().replace("/package.json", "") }).collect().join("\n")
|
90
|
+
String exceptionMessage = "\n[Gesture Handler] Multiple instances of Gesture Handler were detected. Only one instance of react-native-gesture-handler can be installed in a project. You need to resolve the conflict manually. Check out the documentation: https://docs.swmansion.com/react-native-gesture-handler/docs/troubleshooting#multiple-instances-of-gesture-handler-were-detected \n\nConflict between: \n" + parsedLocation + "\n";
|
91
|
+
throw new Exception(exceptionMessage);
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
def REACT_NATIVE_DIR = findNodeModulePath("react-native")
|
96
|
+
|
97
|
+
def assertionTask = task assertNoMultipleInstances {
|
98
|
+
onlyIf { shouldAssertNoMultipleInstances() }
|
99
|
+
doFirst {
|
100
|
+
noMultipleInstancesAssertion()
|
101
|
+
}
|
102
|
+
}
|
103
|
+
|
104
|
+
tasks.preBuild {
|
105
|
+
dependsOn assertionTask
|
106
|
+
}
|
107
|
+
|
62
108
|
repositories {
|
63
109
|
mavenCentral()
|
64
110
|
}
|
@@ -84,17 +130,12 @@ android {
|
|
84
130
|
if (isNewArchitectureEnabled()) {
|
85
131
|
var appProject = rootProject.allprojects.find {it.plugins.hasPlugin('com.android.application')}
|
86
132
|
externalNativeBuild {
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
"REACT_ANDROID_DIR=${findNodeModulePath(appProject.rootDir, "react-native") ?: "../node_modules/react-native/"}/ReactAndroid",
|
94
|
-
"REACT_ANDROID_BUILD_DIR=${findNodeModulePath(appProject.rootDir, "react-native") ?: "../node_modules/react-native/"}/ReactAndroid/build"
|
95
|
-
cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1"
|
96
|
-
cppFlags "-std=c++17"
|
97
|
-
targets "rngesturehandler_modules"
|
133
|
+
cmake {
|
134
|
+
cppFlags "-O2 -frtti -fexceptions -Wall -Wno-unused-variable -fstack-protector-all"
|
135
|
+
arguments "-DAPP_BUILD_DIR=${appProject.buildDir}",
|
136
|
+
"-DREACT_NATIVE_DIR=${REACT_NATIVE_DIR}",
|
137
|
+
"-DANDROID_STL=c++_shared"
|
138
|
+
abiFilters (*reactNativeArchitectures())
|
98
139
|
}
|
99
140
|
}
|
100
141
|
}
|
@@ -107,8 +148,8 @@ android {
|
|
107
148
|
|
108
149
|
if (isNewArchitectureEnabled()) {
|
109
150
|
externalNativeBuild {
|
110
|
-
|
111
|
-
path "src/main/jni/
|
151
|
+
cmake {
|
152
|
+
path "src/main/jni/CMakeLists.txt"
|
112
153
|
}
|
113
154
|
}
|
114
155
|
}
|
@@ -116,7 +157,7 @@ android {
|
|
116
157
|
packagingOptions {
|
117
158
|
// For some reason gradle only complains about the duplicated version of libreact_render libraries
|
118
159
|
// while there are more libraries copied in intermediates folder of the lib build directory, we exclude
|
119
|
-
// only the ones that make the build fail (ideally we should only include
|
160
|
+
// only the ones that make the build fail (ideally we should only include libgesturehandler but we
|
120
161
|
// are only allowed to specify exclude patterns)
|
121
162
|
exclude "**/libreact_render*.so"
|
122
163
|
}
|
@@ -178,4 +219,19 @@ if (isNewArchitectureEnabled()) {
|
|
178
219
|
libraryName = "rngesturehandler"
|
179
220
|
codegenJavaPackageName = "com.swmansion.gesturehandler"
|
180
221
|
}
|
222
|
+
|
223
|
+
// Resolves "LOCAL_SRC_FILES points to a missing file, Check that libfb.so exists or that its path is correct".
|
224
|
+
tasks.whenTaskAdded { task ->
|
225
|
+
if (task.name.contains("configureCMakeDebug")) {
|
226
|
+
rootProject.getTasksByName("packageReactNdkDebugLibs", true).forEach {
|
227
|
+
task.dependsOn(it)
|
228
|
+
}
|
229
|
+
}
|
230
|
+
// We want to add a dependency for both configureCMakeRelease and configureCMakeRelWithDebInfo
|
231
|
+
if (task.name.contains("configureCMakeRel")) {
|
232
|
+
rootProject.getTasksByName("packageReactNdkReleaseLibs", true).forEach {
|
233
|
+
task.dependsOn(it)
|
234
|
+
}
|
235
|
+
}
|
236
|
+
}
|
181
237
|
}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
package com.swmansion.gesturehandler
|
2
2
|
|
3
3
|
import android.os.Handler
|
4
|
+
import android.os.Looper
|
4
5
|
import android.view.MotionEvent
|
5
6
|
|
6
7
|
class FlingGestureHandler : GestureHandler<FlingGestureHandler>() {
|
@@ -27,7 +28,7 @@ class FlingGestureHandler : GestureHandler<FlingGestureHandler>() {
|
|
27
28
|
begin()
|
28
29
|
maxNumberOfPointersSimultaneously = 1
|
29
30
|
if (handler == null) {
|
30
|
-
handler = Handler() // lazy delegate?
|
31
|
+
handler = Handler(Looper.getMainLooper()) // lazy delegate?
|
31
32
|
} else {
|
32
33
|
handler!!.removeCallbacksAndMessages(null)
|
33
34
|
}
|
package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt
CHANGED
@@ -5,6 +5,7 @@ import android.graphics.PointF
|
|
5
5
|
import android.view.MotionEvent
|
6
6
|
import android.view.View
|
7
7
|
import android.view.ViewGroup
|
8
|
+
import android.widget.EditText
|
8
9
|
import java.util.*
|
9
10
|
|
10
11
|
class GestureHandlerOrchestrator(
|
@@ -128,6 +129,13 @@ class GestureHandlerOrchestrator(
|
|
128
129
|
if (newState == GestureHandler.STATE_END) {
|
129
130
|
// gesture has ended, we need to kill the awaiting handler
|
130
131
|
otherHandler.cancel()
|
132
|
+
if (otherHandler.state == GestureHandler.STATE_END) {
|
133
|
+
// Handle edge case, where discrete gestures end immediately after activation thus
|
134
|
+
// their state is set to END and when the gesture they are waiting for activates they
|
135
|
+
// should be cancelled, however `cancel` was never sent as gestures were already in the END state.
|
136
|
+
// Send synthetic BEGAN -> CANCELLED to properly handle JS logic
|
137
|
+
otherHandler.dispatchStateChange(GestureHandler.STATE_CANCELLED, GestureHandler.STATE_BEGAN)
|
138
|
+
}
|
131
139
|
otherHandler.isAwaiting = false
|
132
140
|
} else {
|
133
141
|
// gesture has failed recognition, we may try activating
|
@@ -142,9 +150,12 @@ class GestureHandlerOrchestrator(
|
|
142
150
|
} else if (prevState == GestureHandler.STATE_ACTIVE || prevState == GestureHandler.STATE_END) {
|
143
151
|
if (handler.isActive) {
|
144
152
|
handler.dispatchStateChange(newState, prevState)
|
145
|
-
} else if (prevState == GestureHandler.STATE_ACTIVE) {
|
146
|
-
//
|
147
|
-
// before the other would not send state change event upon ending
|
153
|
+
} else if (prevState == GestureHandler.STATE_ACTIVE && (newState == GestureHandler.STATE_CANCELLED || newState == GestureHandler.STATE_FAILED)) {
|
154
|
+
// Handle edge case where handler awaiting for another one tries to activate but finishes
|
155
|
+
// before the other would not send state change event upon ending. Note that we only want
|
156
|
+
// to do this if the newState is either CANCELLED or FAILED, if it is END we still want to
|
157
|
+
// wait for the other handler to finish as in that case synthetic events will be sent by the
|
158
|
+
// makeActive method.
|
148
159
|
handler.dispatchStateChange(newState, GestureHandler.STATE_BEGAN)
|
149
160
|
}
|
150
161
|
} else if (prevState != GestureHandler.STATE_UNDETERMINED || newState != GestureHandler.STATE_CANCELLED) {
|
@@ -474,14 +485,24 @@ class GestureHandlerOrchestrator(
|
|
474
485
|
}
|
475
486
|
PointerEventsConfig.BOX_NONE -> {
|
476
487
|
// This view can't be the target, but its children might
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
488
|
+
when (view) {
|
489
|
+
is ViewGroup -> {
|
490
|
+
extractGestureHandlers(view, coords, pointerId).also { found ->
|
491
|
+
// A child view is handling touch, also extract handlers attached to this view
|
492
|
+
if (found) {
|
493
|
+
recordViewHandlersForPointer(view, coords, pointerId)
|
494
|
+
}
|
482
495
|
}
|
483
496
|
}
|
484
|
-
|
497
|
+
// When <TextInput> has editable set to `false` getPointerEventsConfigForView returns
|
498
|
+
// `BOX_NONE` as it's `isEnabled` property is false. In this case we still want to extract
|
499
|
+
// handlers attached to the text input, as it makes sense that gestures would work on a
|
500
|
+
// non-editable TextInput.
|
501
|
+
is EditText -> {
|
502
|
+
recordViewHandlersForPointer(view, coords, pointerId)
|
503
|
+
}
|
504
|
+
else -> false
|
505
|
+
}
|
485
506
|
}
|
486
507
|
PointerEventsConfig.AUTO -> {
|
487
508
|
// Either this view or one of its children is the target
|
@@ -2,6 +2,7 @@ package com.swmansion.gesturehandler
|
|
2
2
|
|
3
3
|
import android.content.Context
|
4
4
|
import android.os.Handler
|
5
|
+
import android.os.Looper
|
5
6
|
import android.os.SystemClock
|
6
7
|
import android.view.MotionEvent
|
7
8
|
|
@@ -19,7 +20,9 @@ class LongPressGestureHandler(context: Context) : GestureHandler<LongPressGestur
|
|
19
20
|
|
20
21
|
init {
|
21
22
|
setShouldCancelWhenOutside(true)
|
22
|
-
|
23
|
+
|
24
|
+
val defaultMaxDist = DEFAULT_MAX_DIST_DP * context.resources.displayMetrics.density
|
25
|
+
defaultMaxDistSq = defaultMaxDist * defaultMaxDist
|
23
26
|
maxDistSq = defaultMaxDistSq
|
24
27
|
}
|
25
28
|
|
@@ -41,7 +44,7 @@ class LongPressGestureHandler(context: Context) : GestureHandler<LongPressGestur
|
|
41
44
|
begin()
|
42
45
|
startX = event.rawX
|
43
46
|
startY = event.rawY
|
44
|
-
handler = Handler()
|
47
|
+
handler = Handler(Looper.getMainLooper())
|
45
48
|
if (minDurationMs > 0) {
|
46
49
|
handler!!.postDelayed({ activate() }, minDurationMs)
|
47
50
|
} else if (minDurationMs == 0L) {
|
@@ -9,7 +9,8 @@ import com.facebook.react.views.textinput.ReactEditText
|
|
9
9
|
|
10
10
|
class NativeViewGestureHandler : GestureHandler<NativeViewGestureHandler>() {
|
11
11
|
private var shouldActivateOnStart = false
|
12
|
-
|
12
|
+
var disallowInterruption = false
|
13
|
+
private set
|
13
14
|
|
14
15
|
private var hook: NativeViewGestureHandlerHook = defaultHook
|
15
16
|
|
@@ -2,6 +2,7 @@ package com.swmansion.gesturehandler
|
|
2
2
|
|
3
3
|
import android.content.Context
|
4
4
|
import android.os.Handler
|
5
|
+
import android.os.Looper
|
5
6
|
import android.view.MotionEvent
|
6
7
|
import android.view.VelocityTracker
|
7
8
|
import android.view.ViewConfiguration
|
@@ -233,7 +234,7 @@ class PanGestureHandler(context: Context?) : GestureHandler<PanGestureHandler>()
|
|
233
234
|
|
234
235
|
if (activateAfterLongPress > 0) {
|
235
236
|
if (handler == null) {
|
236
|
-
handler = Handler()
|
237
|
+
handler = Handler(Looper.getMainLooper())
|
237
238
|
}
|
238
239
|
handler!!.postDelayed(activateDelayed, activateAfterLongPress)
|
239
240
|
}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
package com.swmansion.gesturehandler
|
2
2
|
|
3
3
|
import android.os.Handler
|
4
|
+
import android.os.Looper
|
4
5
|
import android.view.MotionEvent
|
5
6
|
import com.swmansion.gesturehandler.GestureUtils.getLastPointerX
|
6
7
|
import com.swmansion.gesturehandler.GestureUtils.getLastPointerY
|
@@ -70,7 +71,7 @@ class TapGestureHandler : GestureHandler<TapGestureHandler>() {
|
|
70
71
|
|
71
72
|
private fun startTap() {
|
72
73
|
if (handler == null) {
|
73
|
-
handler = Handler() // TODO: lazy init (handle else branch correctly)
|
74
|
+
handler = Handler(Looper.getMainLooper()) // TODO: lazy init (handle else branch correctly)
|
74
75
|
} else {
|
75
76
|
handler!!.removeCallbacksAndMessages(null)
|
76
77
|
}
|
@@ -79,7 +80,7 @@ class TapGestureHandler : GestureHandler<TapGestureHandler>() {
|
|
79
80
|
|
80
81
|
private fun endTap() {
|
81
82
|
if (handler == null) {
|
82
|
-
handler = Handler()
|
83
|
+
handler = Handler(Looper.getMainLooper())
|
83
84
|
} else {
|
84
85
|
handler!!.removeCallbacksAndMessages(null)
|
85
86
|
}
|
package/android/src/fabric/java/com/swmansion/gesturehandler/RNGestureHandlerComponentsRegistry.java
CHANGED
@@ -9,7 +9,7 @@ import com.facebook.soloader.SoLoader;
|
|
9
9
|
public class RNGestureHandlerComponentsRegistry {
|
10
10
|
static {
|
11
11
|
SoLoader.loadLibrary("fabricjni");
|
12
|
-
SoLoader.loadLibrary("
|
12
|
+
SoLoader.loadLibrary("gesturehandler");
|
13
13
|
}
|
14
14
|
|
15
15
|
@DoNotStrip private final HybridData mHybridData;
|
@@ -4,7 +4,6 @@ import com.facebook.react.ReactPackage
|
|
4
4
|
import com.facebook.react.bridge.NativeModule
|
5
5
|
import com.facebook.react.bridge.ReactApplicationContext
|
6
6
|
import com.facebook.react.uimanager.ViewManager
|
7
|
-
import com.facebook.soloader.SoLoader
|
8
7
|
import com.swmansion.gesturehandler.BuildConfig
|
9
8
|
import com.swmansion.gesturehandler.react.RNGestureHandlerModule
|
10
9
|
import com.swmansion.gesturehandler.react.RNGestureHandlerRootViewManager
|
@@ -12,13 +11,6 @@ import com.swmansion.gesturehandler.react.RNGestureHandlerButtonViewManager
|
|
12
11
|
|
13
12
|
class RNGestureHandlerPackage : ReactPackage {
|
14
13
|
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
|
15
|
-
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
|
16
|
-
// For Fabric, we load c++ native library here, this triggers gesture handler's
|
17
|
-
// Fabric component registration which is necessary in order to avoid asking users
|
18
|
-
// to manually add init calls in their application code.
|
19
|
-
// This should no longer be needed if RN's autolink mechanism has Fabric support
|
20
|
-
SoLoader.loadLibrary("rngesturehandler_modules")
|
21
|
-
}
|
22
14
|
return listOf<NativeModule>(RNGestureHandlerModule(reactContext))
|
23
15
|
}
|
24
16
|
|
@@ -4,6 +4,7 @@ import android.util.SparseArray
|
|
4
4
|
import com.facebook.react.bridge.ReadableMap
|
5
5
|
import com.swmansion.gesturehandler.GestureHandler
|
6
6
|
import com.swmansion.gesturehandler.GestureHandlerInteractionController
|
7
|
+
import com.swmansion.gesturehandler.NativeViewGestureHandler
|
7
8
|
|
8
9
|
class RNGestureHandlerInteractionManager : GestureHandlerInteractionController {
|
9
10
|
private val waitForRelations = SparseArray<IntArray>()
|
@@ -42,8 +43,13 @@ class RNGestureHandlerInteractionManager : GestureHandlerInteractionController {
|
|
42
43
|
otherHandler: GestureHandler<*>,
|
43
44
|
) = false
|
44
45
|
|
45
|
-
override fun shouldHandlerBeCancelledBy(handler: GestureHandler<*>, otherHandler: GestureHandler<*>)
|
46
|
+
override fun shouldHandlerBeCancelledBy(handler: GestureHandler<*>, otherHandler: GestureHandler<*>): Boolean {
|
47
|
+
if (otherHandler is NativeViewGestureHandler) {
|
48
|
+
return otherHandler.disallowInterruption
|
49
|
+
}
|
46
50
|
|
51
|
+
return false
|
52
|
+
}
|
47
53
|
override fun shouldRecognizeSimultaneously(
|
48
54
|
handler: GestureHandler<*>,
|
49
55
|
otherHandler: GestureHandler<*>,
|
@@ -425,7 +425,7 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?)
|
|
425
425
|
@ReactMethod(isBlockingSynchronousMethod = true)
|
426
426
|
fun install(): Boolean {
|
427
427
|
return try {
|
428
|
-
SoLoader.loadLibrary("
|
428
|
+
SoLoader.loadLibrary("gesturehandler")
|
429
429
|
val jsContext = reactApplicationContext.javaScriptContextHolder
|
430
430
|
decorateRuntime(jsContext.get())
|
431
431
|
true
|
@@ -0,0 +1,59 @@
|
|
1
|
+
project(GestureHandler)
|
2
|
+
cmake_minimum_required(VERSION 3.9.0)
|
3
|
+
|
4
|
+
set(CMAKE_VERBOSE_MAKEFILE ON)
|
5
|
+
set(CMAKE_CXX_STANDARD 17)
|
6
|
+
set(CMAKE_CXX_FLAGS "-DFOLLY_NO_CONFIG=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_MOBILE=1 -DFOLLY_HAVE_RECVMMSG=1 -DFOLLY_HAVE_PTHREAD=1")
|
7
|
+
|
8
|
+
add_library(gesturehandler
|
9
|
+
SHARED
|
10
|
+
cpp-adapter.cpp
|
11
|
+
)
|
12
|
+
|
13
|
+
set(REACT_ANDROID_DIR "${REACT_NATIVE_DIR}/ReactAndroid")
|
14
|
+
set(REACT_COMMON_DIR "${REACT_NATIVE_DIR}/ReactCommon")
|
15
|
+
set(REACT_NDK_EXPORT_DIR "${APP_BUILD_DIR}/react-ndk/exported")
|
16
|
+
|
17
|
+
# copied from react-native/ReactAndroid/cmake-utils/Android-prebuilt.cmake
|
18
|
+
|
19
|
+
## jsi
|
20
|
+
add_library(jsi SHARED IMPORTED GLOBAL)
|
21
|
+
set_target_properties(jsi
|
22
|
+
PROPERTIES
|
23
|
+
IMPORTED_LOCATION
|
24
|
+
${REACT_NDK_EXPORT_DIR}/${ANDROID_ABI}/libjsi.so)
|
25
|
+
target_include_directories(jsi INTERFACE ${REACT_COMMON_DIR}/jsi)
|
26
|
+
|
27
|
+
## react_render_core
|
28
|
+
add_library(react_render_core SHARED IMPORTED GLOBAL)
|
29
|
+
set_target_properties(react_render_core
|
30
|
+
PROPERTIES
|
31
|
+
IMPORTED_LOCATION
|
32
|
+
${REACT_NDK_EXPORT_DIR}/${ANDROID_ABI}/libreact_render_core.so)
|
33
|
+
target_include_directories(react_render_core
|
34
|
+
INTERFACE
|
35
|
+
${REACT_COMMON_DIR}
|
36
|
+
${REACT_COMMON_DIR}/react/renderer/core)
|
37
|
+
|
38
|
+
## react_render_uimanager
|
39
|
+
add_library(react_render_uimanager SHARED IMPORTED GLOBAL)
|
40
|
+
set_target_properties(react_render_uimanager
|
41
|
+
PROPERTIES
|
42
|
+
IMPORTED_LOCATION
|
43
|
+
${REACT_NDK_EXPORT_DIR}/${ANDROID_ABI}/libreact_render_uimanager.so)
|
44
|
+
target_include_directories(react_render_uimanager INTERFACE ${REACT_COMMON_DIR}/react/renderer/uimanager)
|
45
|
+
|
46
|
+
target_include_directories(
|
47
|
+
gesturehandler
|
48
|
+
PRIVATE
|
49
|
+
"${REACT_ANDROID_DIR}/build/third-party-ndk/boost/boost_1_76_0"
|
50
|
+
"${REACT_ANDROID_DIR}/build/third-party-ndk/double-conversion"
|
51
|
+
"${REACT_ANDROID_DIR}/build/third-party-ndk/folly"
|
52
|
+
)
|
53
|
+
|
54
|
+
target_link_libraries(
|
55
|
+
gesturehandler
|
56
|
+
jsi
|
57
|
+
react_render_uimanager
|
58
|
+
react_render_core
|
59
|
+
)
|
@@ -3,13 +3,13 @@
|
|
3
3
|
#import "RNGestureHandlerButtonComponentView.h"
|
4
4
|
|
5
5
|
#import <React/RCTConversions.h>
|
6
|
+
#import <React/RCTFabricComponentsPlugins.h>
|
6
7
|
|
7
8
|
#import <react/renderer/components/rngesturehandler/ComponentDescriptors.h>
|
8
9
|
#import <react/renderer/components/rngesturehandler/EventEmitters.h>
|
9
10
|
#import <react/renderer/components/rngesturehandler/Props.h>
|
10
11
|
#import <react/renderer/components/rngesturehandler/RCTComponentViewHelpers.h>
|
11
12
|
|
12
|
-
#import "RCTFabricComponentsPlugins.h"
|
13
13
|
#import "RNGestureHandlerButton.h"
|
14
14
|
|
15
15
|
using namespace facebook::react;
|
@@ -6,12 +6,7 @@
|
|
6
6
|
#import <React/RCTRootView.h>
|
7
7
|
#import <React/RCTUIManager.h>
|
8
8
|
#import <React/RCTEventDispatcher.h>
|
9
|
-
|
10
|
-
#if __has_include(<React/RCTRootContentView.h>)
|
11
9
|
#import <React/RCTRootContentView.h>
|
12
|
-
#else
|
13
|
-
#import "RCTRootContentView.h"
|
14
|
-
#endif
|
15
10
|
|
16
11
|
#import "RNGestureHandlerActionType.h"
|
17
12
|
#import "RNGestureHandlerState.h"
|
@@ -0,0 +1,24 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.enableExperimentalWebImplementation = enableExperimentalWebImplementation;
|
7
|
+
exports.isExperimentalWebImplementationEnabled = isExperimentalWebImplementationEnabled;
|
8
|
+
let EXPERIMENTAL_WEB_IMPLEMENTATION = false;
|
9
|
+
let getWasCalled = false;
|
10
|
+
|
11
|
+
function enableExperimentalWebImplementation(shouldEnable = true) {
|
12
|
+
if (getWasCalled) {
|
13
|
+
console.error('Some parts of this application have already started using old gesture handler implementation. No changes will be applied. You can try enabling new implementation earlier.');
|
14
|
+
return;
|
15
|
+
}
|
16
|
+
|
17
|
+
EXPERIMENTAL_WEB_IMPLEMENTATION = shouldEnable;
|
18
|
+
}
|
19
|
+
|
20
|
+
function isExperimentalWebImplementationEnabled() {
|
21
|
+
getWasCalled = true;
|
22
|
+
return EXPERIMENTAL_WEB_IMPLEMENTATION;
|
23
|
+
}
|
24
|
+
//# sourceMappingURL=EnableExperimentalWebImplementation.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["EnableExperimentalWebImplementation.ts"],"names":["EXPERIMENTAL_WEB_IMPLEMENTATION","getWasCalled","enableExperimentalWebImplementation","shouldEnable","console","error","isExperimentalWebImplementationEnabled"],"mappings":";;;;;;;AAAA,IAAIA,+BAA+B,GAAG,KAAtC;AACA,IAAIC,YAAY,GAAG,KAAnB;;AAEO,SAASC,mCAAT,CAA6CC,YAAY,GAAG,IAA5D,EAAwE;AAC7E,MAAIF,YAAJ,EAAkB;AAChBG,IAAAA,OAAO,CAACC,KAAR,CACE,4KADF;AAGA;AACD;;AAEDL,EAAAA,+BAA+B,GAAGG,YAAlC;AACD;;AAEM,SAASG,sCAAT,GAA2D;AAChEL,EAAAA,YAAY,GAAG,IAAf;AACA,SAAOD,+BAAP;AACD","sourcesContent":["let EXPERIMENTAL_WEB_IMPLEMENTATION = false;\nlet getWasCalled = false;\n\nexport function enableExperimentalWebImplementation(shouldEnable = true): void {\n if (getWasCalled) {\n console.error(\n 'Some parts of this application have already started using old gesture handler implementation. No changes will be applied. You can try enabling new implementation earlier.'\n );\n return;\n }\n\n EXPERIMENTAL_WEB_IMPLEMENTATION = shouldEnable;\n}\n\nexport function isExperimentalWebImplementationEnabled(): boolean {\n getWasCalled = true;\n return EXPERIMENTAL_WEB_IMPLEMENTATION;\n}\n"]}
|