react-native-gesture-handler 2.1.2 → 2.3.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/LICENSE +1 -1
- package/README.md +8 -3
- package/RNGestureHandler.podspec +27 -3
- package/android/build.gradle +82 -9
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +47 -12
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +50 -14
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +7 -4
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.kt +8 -8
- package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.kt +6 -4
- package/android/lib/src/main/java/com/swmansion/gesturehandler/ScaleGestureDetector.java +558 -0
- package/android/src/fabric/java/com/swmansion/gesturehandler/RNGestureHandlerComponentsRegistry.java +29 -0
- package/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +12 -0
- package/android/src/main/AndroidManifest.xml +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +29 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +29 -10
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +119 -55
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +9 -4
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +17 -2
- package/android/src/main/jni/Android.mk +53 -0
- package/android/src/main/jni/OnLoad.cpp +9 -0
- package/android/src/main/jni/RNGestureHandlerComponentsRegistry.cpp +71 -0
- package/android/src/main/jni/RNGestureHandlerComponentsRegistry.h +34 -0
- package/android/src/main/jni/cpp-adapter.cpp +41 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.java +47 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerInterface.java +22 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerDelegate.java +25 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerInterface.java +16 -0
- package/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +13 -0
- package/ios/Handlers/RNFlingHandler.m +2 -0
- package/ios/Handlers/RNPanHandler.m +2 -0
- package/ios/Handlers/RNPinchHandler.m +2 -0
- package/ios/Handlers/RNRotationHandler.m +2 -0
- package/ios/RNGestureHandler.h +3 -8
- package/ios/RNGestureHandler.m +2 -10
- package/ios/RNGestureHandlerActionType.h +8 -0
- package/ios/RNGestureHandlerButtonComponentView.h +17 -0
- package/ios/RNGestureHandlerButtonComponentView.mm +48 -0
- package/ios/RNGestureHandlerButtonManager.h +5 -0
- package/ios/RNGestureHandlerButtonManager.m +30 -0
- package/ios/RNGestureHandlerManager.h +2 -4
- package/ios/{RNGestureHandlerManager.m → RNGestureHandlerManager.mm} +92 -20
- package/ios/{RNGestureHandlerModule.m → RNGestureHandlerModule.mm} +91 -36
- package/ios/RNGestureHandlerRegistry.h +1 -2
- package/ios/RNGestureHandlerRegistry.m +2 -11
- package/ios/RNGestureHandlerRootViewComponentView.mm +21 -0
- package/lib/commonjs/ActionType.js +15 -0
- package/lib/commonjs/ActionType.js.map +1 -0
- package/lib/commonjs/GestureHandlerRootView.android.js +6 -6
- package/lib/commonjs/GestureHandlerRootView.android.js.map +1 -1
- package/lib/commonjs/GestureHandlerRootView.js +2 -3
- package/lib/commonjs/GestureHandlerRootView.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.js +4 -2
- package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/components/DrawerLayout.js +2 -2
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerButton.js +5 -2
- package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js +22 -20
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/fabric/RNGestureHandlerButtonNativeComponent.js +21 -0
- package/lib/commonjs/fabric/RNGestureHandlerButtonNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/RNGestureHandlerRootViewNativeComponent.js +21 -0
- package/lib/commonjs/fabric/RNGestureHandlerRootViewNativeComponent.js.map +1 -0
- package/lib/commonjs/getShadowNodeFromRef.js +24 -0
- package/lib/commonjs/getShadowNodeFromRef.js.map +1 -0
- package/lib/commonjs/getShadowNodeFromRef.web.js +15 -0
- package/lib/commonjs/getShadowNodeFromRef.web.js.map +1 -0
- package/lib/commonjs/handlers/FlingGestureHandler.js +4 -2
- package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js +8 -4
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/LongPressGestureHandler.js +4 -2
- package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/NativeViewGestureHandler.js +4 -2
- package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PanGestureHandler.js +4 -2
- package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PinchGestureHandler.js +4 -2
- package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/RotationGestureHandler.js +4 -2
- package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/TapGestureHandler.js +4 -2
- package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +72 -8
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/createNativeWrapper.js +6 -2
- package/lib/commonjs/handlers/createNativeWrapper.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector.js +84 -32
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/eventReceiver.js +25 -8
- package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js +16 -1
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureStateManager.js +7 -4
- package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +4 -1
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/commonjs/handlers/handlersRegistry.js +42 -6
- package/lib/commonjs/handlers/handlersRegistry.js.map +1 -1
- package/lib/commonjs/index.js +14 -106
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/init.js +10 -0
- package/lib/commonjs/init.js.map +1 -1
- package/lib/commonjs/jestUtils.js +375 -0
- package/lib/commonjs/jestUtils.js.map +1 -0
- package/lib/commonjs/utils.js +38 -0
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/ActionType.js +7 -0
- package/lib/module/ActionType.js.map +1 -0
- package/lib/module/GestureHandlerRootView.android.js +5 -6
- package/lib/module/GestureHandlerRootView.android.js.map +1 -1
- package/lib/module/GestureHandlerRootView.js +2 -3
- package/lib/module/GestureHandlerRootView.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.js +3 -2
- package/lib/module/RNGestureHandlerModule.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +1 -1
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/components/DrawerLayout.js +2 -2
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureHandlerButton.js +4 -2
- package/lib/module/components/GestureHandlerButton.js.map +1 -1
- package/lib/module/components/Swipeable.js +22 -20
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/fabric/RNGestureHandlerButtonNativeComponent.js +9 -0
- package/lib/module/fabric/RNGestureHandlerButtonNativeComponent.js.map +1 -0
- package/lib/module/fabric/RNGestureHandlerRootViewNativeComponent.js +9 -0
- package/lib/module/fabric/RNGestureHandlerRootViewNativeComponent.js.map +1 -0
- package/lib/module/getShadowNodeFromRef.js +17 -0
- package/lib/module/getShadowNodeFromRef.js.map +1 -0
- package/lib/module/getShadowNodeFromRef.web.js +8 -0
- package/lib/module/getShadowNodeFromRef.web.js.map +1 -0
- package/lib/module/handlers/FlingGestureHandler.js +2 -1
- package/lib/module/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/handlers/ForceTouchGestureHandler.js +5 -3
- package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/module/handlers/LongPressGestureHandler.js +2 -1
- package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/handlers/NativeViewGestureHandler.js +2 -1
- package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/handlers/PanGestureHandler.js +2 -1
- package/lib/module/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/handlers/PinchGestureHandler.js +2 -1
- package/lib/module/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/handlers/RotationGestureHandler.js +2 -1
- package/lib/module/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/handlers/TapGestureHandler.js +2 -1
- package/lib/module/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/handlers/createHandler.js +72 -9
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/createNativeWrapper.js +6 -2
- package/lib/module/handlers/createNativeWrapper.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +79 -32
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/eventReceiver.js +25 -7
- package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js +16 -1
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.js +6 -4
- package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/module/handlers/gestures/panGesture.js.map +1 -1
- package/lib/module/handlers/gestures/pinchGesture.js.map +1 -1
- package/lib/module/handlers/gestures/reanimatedWrapper.js +2 -1
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/module/handlers/handlersRegistry.js +34 -6
- package/lib/module/handlers/handlersRegistry.js.map +1 -1
- package/lib/module/index.js +1 -11
- package/lib/module/index.js.map +1 -1
- package/lib/module/init.js +6 -0
- package/lib/module/init.js.map +1 -1
- package/lib/module/jestUtils.js +350 -0
- package/lib/module/jestUtils.js.map +1 -0
- package/lib/module/utils.js +28 -0
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/ActionType.d.ts +7 -0
- package/lib/typescript/GestureHandlerRootView.android.d.ts +5 -2
- package/lib/typescript/GestureHandlerRootView.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.d.ts +3 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +2 -1
- package/lib/typescript/components/GestureHandlerButton.d.ts +2 -2
- package/lib/typescript/components/Swipeable.d.ts +12 -4
- package/lib/typescript/getShadowNodeFromRef.d.ts +1 -0
- package/lib/typescript/getShadowNodeFromRef.web.d.ts +1 -0
- package/lib/typescript/handlers/FlingGestureHandler.d.ts +1 -0
- package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +2 -1
- package/lib/typescript/handlers/LongPressGestureHandler.d.ts +3 -2
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -0
- package/lib/typescript/handlers/PanGestureHandler.d.ts +3 -2
- package/lib/typescript/handlers/PinchGestureHandler.d.ts +1 -0
- package/lib/typescript/handlers/RotationGestureHandler.d.ts +1 -0
- package/lib/typescript/handlers/TapGestureHandler.d.ts +1 -0
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +2 -4
- package/lib/typescript/handlers/gestures/GestureDetector.d.ts +4 -1
- package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +1 -2
- package/lib/typescript/handlers/gestures/gesture.d.ts +5 -0
- package/lib/typescript/handlers/gestures/panGesture.d.ts +1 -2
- package/lib/typescript/handlers/gestures/pinchGesture.d.ts +1 -2
- package/lib/typescript/handlers/handlersRegistry.d.ts +11 -3
- package/lib/typescript/index.d.ts +15 -11
- package/lib/typescript/jestUtils.d.ts +28 -0
- package/lib/typescript/utils.d.ts +6 -0
- package/lib/typescript/web/constants.d.ts +0 -1
- package/package.json +39 -16
- package/src/ActionType.ts +9 -0
- package/src/GestureHandlerRootView.android.tsx +14 -14
- package/src/GestureHandlerRootView.tsx +4 -4
- package/src/RNGestureHandlerModule.ts +11 -6
- package/src/RNGestureHandlerModule.web.ts +2 -1
- package/src/components/DrawerLayout.tsx +8 -2
- package/src/components/GestureHandlerButton.tsx +7 -4
- package/src/components/Swipeable.tsx +28 -22
- package/src/fabric/RNGestureHandlerButtonNativeComponent.js +27 -0
- package/src/fabric/RNGestureHandlerRootViewNativeComponent.js +19 -0
- package/src/getShadowNodeFromRef.ts +19 -0
- package/src/getShadowNodeFromRef.web.ts +7 -0
- package/src/handlers/FlingGestureHandler.ts +3 -1
- package/src/handlers/ForceTouchGestureHandler.ts +8 -2
- package/src/handlers/LongPressGestureHandler.ts +5 -3
- package/src/handlers/NativeViewGestureHandler.ts +3 -1
- package/src/handlers/PanGestureHandler.ts +5 -3
- package/src/handlers/PinchGestureHandler.ts +3 -1
- package/src/handlers/RotationGestureHandler.ts +3 -1
- package/src/handlers/TapGestureHandler.ts +3 -1
- package/src/handlers/createHandler.ts +80 -5
- package/src/handlers/createNativeWrapper.tsx +7 -1
- package/src/handlers/gestureHandlerCommon.ts +2 -5
- package/src/handlers/gestures/GestureDetector.tsx +110 -37
- package/src/handlers/gestures/eventReceiver.ts +23 -19
- package/src/handlers/gestures/forceTouchGesture.ts +1 -1
- package/src/handlers/gestures/gesture.ts +21 -1
- package/src/handlers/gestures/gestureStateManager.ts +9 -12
- package/src/handlers/gestures/panGesture.ts +1 -1
- package/src/handlers/gestures/pinchGesture.ts +1 -1
- package/src/handlers/gestures/reanimatedWrapper.ts +4 -1
- package/src/handlers/handlersRegistry.ts +44 -6
- package/src/index.ts +15 -11
- package/src/init.ts +6 -0
- package/src/jestUtils.ts +506 -0
- package/src/utils.ts +38 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.kt +0 -18
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.kt +0 -21
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.kt +0 -17
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#include <jni.h>
|
|
2
|
+
#include <jsi/jsi.h>
|
|
3
|
+
|
|
4
|
+
#include <react/renderer/uimanager/primitives.h>
|
|
5
|
+
|
|
6
|
+
using namespace facebook;
|
|
7
|
+
using namespace react;
|
|
8
|
+
|
|
9
|
+
void decorateRuntime(jsi::Runtime &runtime)
|
|
10
|
+
{
|
|
11
|
+
auto isFormsStackingContext = jsi::Function::createFromHostFunction(
|
|
12
|
+
runtime,
|
|
13
|
+
jsi::PropNameID::forAscii(runtime, "isFormsStackingContext"),
|
|
14
|
+
1,
|
|
15
|
+
[](jsi::Runtime &runtime,
|
|
16
|
+
const jsi::Value &thisValue,
|
|
17
|
+
const jsi::Value *arguments,
|
|
18
|
+
size_t count) -> jsi::Value
|
|
19
|
+
{
|
|
20
|
+
if (!arguments[0].isObject())
|
|
21
|
+
{
|
|
22
|
+
return jsi::Value::null();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
auto shadowNode = arguments[0].asObject(runtime).getHostObject<ShadowNodeWrapper>(runtime)->shadowNode;
|
|
26
|
+
bool isFormsStackingContext = shadowNode->getTraits().check(ShadowNodeTraits::FormsStackingContext);
|
|
27
|
+
|
|
28
|
+
return jsi::Value(isFormsStackingContext);
|
|
29
|
+
});
|
|
30
|
+
runtime.global().setProperty(runtime, "isFormsStackingContext", std::move(isFormsStackingContext));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
extern "C" JNIEXPORT void JNICALL
|
|
34
|
+
Java_com_swmansion_gesturehandler_react_RNGestureHandlerModule_decorateRuntime(JNIEnv *env, jobject clazz, jlong jsiPtr)
|
|
35
|
+
{
|
|
36
|
+
jsi::Runtime *runtime = reinterpret_cast<jsi::Runtime *>(jsiPtr);
|
|
37
|
+
if (runtime)
|
|
38
|
+
{
|
|
39
|
+
decorateRuntime(*runtime);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaDelegate.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import androidx.annotation.Nullable;
|
|
14
|
+
import com.facebook.react.bridge.ColorPropConverter;
|
|
15
|
+
import com.facebook.react.uimanager.BaseViewManagerDelegate;
|
|
16
|
+
import com.facebook.react.uimanager.BaseViewManagerInterface;
|
|
17
|
+
|
|
18
|
+
public class RNGestureHandlerButtonManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNGestureHandlerButtonManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
|
|
19
|
+
public RNGestureHandlerButtonManagerDelegate(U viewManager) {
|
|
20
|
+
super(viewManager);
|
|
21
|
+
}
|
|
22
|
+
@Override
|
|
23
|
+
public void setProperty(T view, String propName, @Nullable Object value) {
|
|
24
|
+
switch (propName) {
|
|
25
|
+
case "exclusive":
|
|
26
|
+
mViewManager.setExclusive(view, value == null ? false : (boolean) value);
|
|
27
|
+
break;
|
|
28
|
+
case "foreground":
|
|
29
|
+
mViewManager.setForeground(view, value == null ? false : (boolean) value);
|
|
30
|
+
break;
|
|
31
|
+
case "borderless":
|
|
32
|
+
mViewManager.setBorderless(view, value == null ? false : (boolean) value);
|
|
33
|
+
break;
|
|
34
|
+
case "enabled":
|
|
35
|
+
mViewManager.setEnabled(view, value == null ? false : (boolean) value);
|
|
36
|
+
break;
|
|
37
|
+
case "rippleColor":
|
|
38
|
+
mViewManager.setRippleColor(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
39
|
+
break;
|
|
40
|
+
case "rippleRadius":
|
|
41
|
+
mViewManager.setRippleRadius(view, value == null ? 0 : ((Double) value).intValue());
|
|
42
|
+
break;
|
|
43
|
+
default:
|
|
44
|
+
super.setProperty(view, propName, value);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaInterface.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import androidx.annotation.Nullable;
|
|
14
|
+
|
|
15
|
+
public interface RNGestureHandlerButtonManagerInterface<T extends View> {
|
|
16
|
+
void setExclusive(T view, boolean value);
|
|
17
|
+
void setForeground(T view, boolean value);
|
|
18
|
+
void setBorderless(T view, boolean value);
|
|
19
|
+
void setEnabled(T view, boolean value);
|
|
20
|
+
void setRippleColor(T view, @Nullable Integer value);
|
|
21
|
+
void setRippleRadius(T view, int value);
|
|
22
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaDelegate.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import androidx.annotation.Nullable;
|
|
14
|
+
import com.facebook.react.uimanager.BaseViewManagerDelegate;
|
|
15
|
+
import com.facebook.react.uimanager.BaseViewManagerInterface;
|
|
16
|
+
|
|
17
|
+
public class RNGestureHandlerRootViewManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNGestureHandlerRootViewManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
|
|
18
|
+
public RNGestureHandlerRootViewManagerDelegate(U viewManager) {
|
|
19
|
+
super(viewManager);
|
|
20
|
+
}
|
|
21
|
+
@Override
|
|
22
|
+
public void setProperty(T view, String propName, @Nullable Object value) {
|
|
23
|
+
super.setProperty(view, propName, value);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaInterface.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
|
|
14
|
+
public interface RNGestureHandlerRootViewManagerInterface<T extends View> {
|
|
15
|
+
// No props
|
|
16
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
package com.swmansion.gesturehandler
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactContext
|
|
4
|
+
import com.facebook.react.uimanager.UIManagerModule
|
|
5
|
+
import com.facebook.react.uimanager.events.Event
|
|
6
|
+
|
|
7
|
+
fun ReactContext.dispatchEvent(event: Event<*>) {
|
|
8
|
+
try {
|
|
9
|
+
this.getNativeModule(UIManagerModule::class.java)!!.eventDispatcher.dispatchEvent(event)
|
|
10
|
+
} catch (e: NullPointerException) {
|
|
11
|
+
throw Exception("Couldn't get an instance of UIManagerModule. Gesture Handler is unable to send an event.", e)
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -72,7 +72,9 @@
|
|
|
72
72
|
[super resetConfig];
|
|
73
73
|
UISwipeGestureRecognizer *recognizer = (UISwipeGestureRecognizer *)_recognizer;
|
|
74
74
|
recognizer.direction = UISwipeGestureRecognizerDirectionRight;
|
|
75
|
+
#if !TARGET_OS_TV
|
|
75
76
|
recognizer.numberOfTouchesRequired = 1;
|
|
77
|
+
#endif
|
|
76
78
|
}
|
|
77
79
|
|
|
78
80
|
- (void)configure:(NSDictionary *)config
|
|
@@ -236,8 +236,10 @@
|
|
|
236
236
|
recognizer.allowedScrollTypesMask = 0;
|
|
237
237
|
}
|
|
238
238
|
#endif
|
|
239
|
+
#if !TARGET_OS_TV
|
|
239
240
|
recognizer.minimumNumberOfTouches = 1;
|
|
240
241
|
recognizer.maximumNumberOfTouches = NSUIntegerMax;
|
|
242
|
+
#endif
|
|
241
243
|
recognizer.minDistSq = NAN;
|
|
242
244
|
recognizer.minVelocitySq = NAN;
|
|
243
245
|
}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
#import "RNPinchHandler.h"
|
|
12
12
|
|
|
13
|
+
#if !TARGET_OS_TV
|
|
13
14
|
@interface RNBetterPinchRecognizer : UIPinchGestureRecognizer
|
|
14
15
|
|
|
15
16
|
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
|
@@ -67,6 +68,7 @@
|
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
@end
|
|
71
|
+
#endif
|
|
70
72
|
|
|
71
73
|
@implementation RNPinchGestureHandler
|
|
72
74
|
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
#import "RNRotationHandler.h"
|
|
10
10
|
|
|
11
|
+
#if !TARGET_OS_TV
|
|
11
12
|
@interface RNBetterRotationRecognizer : UIRotationGestureRecognizer
|
|
12
13
|
|
|
13
14
|
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
|
@@ -66,6 +67,7 @@
|
|
|
66
67
|
}
|
|
67
68
|
|
|
68
69
|
@end
|
|
70
|
+
#endif
|
|
69
71
|
|
|
70
72
|
@implementation RNRotationGestureHandler
|
|
71
73
|
|
package/ios/RNGestureHandler.h
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#import "RNGestureHandlerActionType.h"
|
|
1
2
|
#import "RNGestureHandlerState.h"
|
|
2
3
|
#import "RNGestureHandlerDirection.h"
|
|
3
4
|
#import "RNGestureHandlerEvents.h"
|
|
@@ -25,13 +26,7 @@ if (value != nil) { recognizer.prop = [RCTConvert type:value]; }\
|
|
|
25
26
|
|
|
26
27
|
@protocol RNGestureHandlerEventEmitter
|
|
27
28
|
|
|
28
|
-
- (void)
|
|
29
|
-
|
|
30
|
-
- (void)sendStateChangeEvent:(nonnull RNGestureHandlerStateChange *)event;
|
|
31
|
-
|
|
32
|
-
- (void)sendTouchDeviceEvent:(nonnull RNGestureHandlerEvent *)event;
|
|
33
|
-
|
|
34
|
-
- (void)sendStateChangeDeviceEvent:(nonnull RNGestureHandlerStateChange *)event;
|
|
29
|
+
- (void)sendStateChangeEvent:(nonnull RNGestureHandlerStateChange *)event withActionType:(RNGestureHandlerActionType)actionType;
|
|
35
30
|
|
|
36
31
|
@end
|
|
37
32
|
|
|
@@ -60,7 +55,7 @@ if (value != nil) { recognizer.prop = [RCTConvert type:value]; }\
|
|
|
60
55
|
@property (nonatomic, readonly, nullable) UIGestureRecognizer *recognizer;
|
|
61
56
|
@property (nonatomic, readonly, nullable) RNGestureHandlerPointerTracker *pointerTracker;
|
|
62
57
|
@property (nonatomic) BOOL enabled;
|
|
63
|
-
@property (nonatomic)
|
|
58
|
+
@property (nonatomic) RNGestureHandlerActionType actionType;
|
|
64
59
|
@property (nonatomic) BOOL shouldCancelWhenOutside;
|
|
65
60
|
@property (nonatomic) BOOL needsPointerData;
|
|
66
61
|
@property (nonatomic) BOOL manualActivation;
|
package/ios/RNGestureHandler.m
CHANGED
|
@@ -236,11 +236,7 @@ static NSHashTable<RNGestureHandler *> *allGestureHandlers;
|
|
|
236
236
|
|
|
237
237
|
- (void)sendStateChangeEvent:(RNGestureHandlerStateChange *)event
|
|
238
238
|
{
|
|
239
|
-
|
|
240
|
-
[self.emitter sendStateChangeDeviceEvent:event];
|
|
241
|
-
} else {
|
|
242
|
-
[self.emitter sendStateChangeEvent:event];
|
|
243
|
-
}
|
|
239
|
+
[self.emitter sendStateChangeEvent:event withActionType:self.actionType];
|
|
244
240
|
}
|
|
245
241
|
|
|
246
242
|
- (void)sendTouchEventInState:(RNGestureHandlerState)state
|
|
@@ -252,11 +248,7 @@ static NSHashTable<RNGestureHandler *> *allGestureHandlers;
|
|
|
252
248
|
withNumberOfTouches:_pointerTracker.trackedPointersCount];
|
|
253
249
|
id event = [[RNGestureHandlerEvent alloc] initWithReactTag:reactTag handlerTag:_tag state:state extraData:extraData coalescingKey:[_tag intValue]];
|
|
254
250
|
|
|
255
|
-
|
|
256
|
-
[self.emitter sendStateChangeDeviceEvent:event];
|
|
257
|
-
} else {
|
|
258
|
-
[self.emitter sendStateChangeEvent:event];
|
|
259
|
-
}
|
|
251
|
+
[self.emitter sendStateChangeEvent:event withActionType:self.actionType];
|
|
260
252
|
}
|
|
261
253
|
|
|
262
254
|
- (RNGestureHandlerState)recognizerState
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#import <Foundation/Foundation.h>
|
|
2
|
+
|
|
3
|
+
typedef NS_ENUM(NSInteger, RNGestureHandlerActionType) {
|
|
4
|
+
RNGestureHandlerActionTypeReanimatedWorklet = 1, // Reanimated worklet
|
|
5
|
+
RNGestureHandlerActionTypeNativeAnimatedEvent, // Animated.event with useNativeDriver: true
|
|
6
|
+
RNGestureHandlerActionTypeJSFunctionOldAPI, // JS function or Animated.event with useNativeDriver: false using old RNGH API
|
|
7
|
+
RNGestureHandlerActionTypeJSFunctionNewAPI, // JS function or Animated.event with useNativeDriver: false using new RNGH API
|
|
8
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#ifdef RN_FABRIC_ENABLED
|
|
2
|
+
|
|
3
|
+
#import <UIKit/UIKit.h>
|
|
4
|
+
|
|
5
|
+
#import <React/RCTViewComponentView.h>
|
|
6
|
+
|
|
7
|
+
#import "RNGestureHandlerButton.h"
|
|
8
|
+
|
|
9
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
10
|
+
|
|
11
|
+
@interface RNGestureHandlerButtonComponentView : RCTViewComponentView
|
|
12
|
+
|
|
13
|
+
@end
|
|
14
|
+
|
|
15
|
+
NS_ASSUME_NONNULL_END
|
|
16
|
+
|
|
17
|
+
#endif // RN_FABRIC_ENABLED
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#ifdef RN_FABRIC_ENABLED
|
|
2
|
+
|
|
3
|
+
#import "RNGestureHandlerButtonComponentView.h"
|
|
4
|
+
|
|
5
|
+
#import <React/RCTConversions.h>
|
|
6
|
+
|
|
7
|
+
#import <react/renderer/components/rngesturehandler/ComponentDescriptors.h>
|
|
8
|
+
#import <react/renderer/components/rngesturehandler/EventEmitters.h>
|
|
9
|
+
#import <react/renderer/components/rngesturehandler/Props.h>
|
|
10
|
+
#import <react/renderer/components/rngesturehandler/RCTComponentViewHelpers.h>
|
|
11
|
+
|
|
12
|
+
#import "RCTFabricComponentsPlugins.h"
|
|
13
|
+
#import "RNGestureHandlerButton.h"
|
|
14
|
+
|
|
15
|
+
using namespace facebook::react;
|
|
16
|
+
|
|
17
|
+
@interface RNGestureHandlerButtonComponentView () <RCTRNGestureHandlerButtonViewProtocol>
|
|
18
|
+
@end
|
|
19
|
+
|
|
20
|
+
@implementation RNGestureHandlerButtonComponentView
|
|
21
|
+
|
|
22
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
23
|
+
{
|
|
24
|
+
if (self = [super initWithFrame:frame]) {
|
|
25
|
+
static const auto defaultProps = std::make_shared<const RNGestureHandlerButtonProps>();
|
|
26
|
+
_props = defaultProps;
|
|
27
|
+
|
|
28
|
+
self.contentView = [[RNGestureHandlerButton alloc] initWithFrame:self.bounds];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return self;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
#pragma mark - RCTComponentViewProtocol
|
|
35
|
+
|
|
36
|
+
+ (ComponentDescriptorProvider)componentDescriptorProvider
|
|
37
|
+
{
|
|
38
|
+
return concreteComponentDescriptorProvider<RNGestureHandlerButtonComponentDescriptor>();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@end
|
|
42
|
+
|
|
43
|
+
Class<RCTComponentViewProtocol> RNGestureHandlerButtonCls(void)
|
|
44
|
+
{
|
|
45
|
+
return RNGestureHandlerButtonComponentView.class;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
#endif // RN_FABRIC_ENABLED
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#import "RNGestureHandlerButton.h"
|
|
2
|
+
#import "RNGestureHandlerButtonManager.h"
|
|
3
|
+
|
|
4
|
+
@implementation RNGestureHandlerButtonManager
|
|
5
|
+
|
|
6
|
+
RCT_EXPORT_MODULE(RNGestureHandlerButton)
|
|
7
|
+
|
|
8
|
+
RCT_EXPORT_VIEW_PROPERTY(enabled, BOOL)
|
|
9
|
+
#if !TARGET_OS_TV
|
|
10
|
+
RCT_CUSTOM_VIEW_PROPERTY(exclusive, BOOL, RNGestureHandlerButton)
|
|
11
|
+
{
|
|
12
|
+
[view setExclusiveTouch: json == nil ? YES : [RCTConvert BOOL: json]];
|
|
13
|
+
}
|
|
14
|
+
#endif
|
|
15
|
+
RCT_CUSTOM_VIEW_PROPERTY(hitSlop, UIEdgeInsets, RNGestureHandlerButton)
|
|
16
|
+
{
|
|
17
|
+
if (json) {
|
|
18
|
+
UIEdgeInsets hitSlopInsets = [RCTConvert UIEdgeInsets:json];
|
|
19
|
+
view.hitTestEdgeInsets = UIEdgeInsetsMake(-hitSlopInsets.top, -hitSlopInsets.left, -hitSlopInsets.bottom, -hitSlopInsets.right);
|
|
20
|
+
} else {
|
|
21
|
+
view.hitTestEdgeInsets = defaultView.hitTestEdgeInsets;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
- (UIView *)view
|
|
26
|
+
{
|
|
27
|
+
return [RNGestureHandlerButton new];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@end
|
|
@@ -17,10 +17,8 @@
|
|
|
17
17
|
config:(nonnull NSDictionary *)config;
|
|
18
18
|
|
|
19
19
|
- (void)attachGestureHandler:(nonnull NSNumber *)handlerTag
|
|
20
|
-
toViewWithTag:(nonnull NSNumber *)viewTag
|
|
21
|
-
|
|
22
|
-
- (void)attachGestureHandlerForDeviceEvents:(nonnull NSNumber *)handlerTag
|
|
23
|
-
toViewWithTag:(nonnull NSNumber *)viewTag;
|
|
20
|
+
toViewWithTag:(nonnull NSNumber *)viewTag
|
|
21
|
+
withActionType:(RNGestureHandlerActionType)actionType;
|
|
24
22
|
|
|
25
23
|
- (void)updateGestureHandler:(nonnull NSNumber *)handlerTag config:(nonnull NSDictionary *)config;
|
|
26
24
|
|
|
@@ -14,11 +14,16 @@
|
|
|
14
14
|
#import "RCTRootContentView.h"
|
|
15
15
|
#endif
|
|
16
16
|
|
|
17
|
+
#import "RNGestureHandlerActionType.h"
|
|
17
18
|
#import "RNGestureHandlerState.h"
|
|
18
19
|
#import "RNGestureHandler.h"
|
|
19
20
|
#import "RNGestureHandlerRegistry.h"
|
|
20
21
|
#import "RNRootViewGestureRecognizer.h"
|
|
21
22
|
|
|
23
|
+
#ifdef RN_FABRIC_ENABLED
|
|
24
|
+
#import <React/RCTViewComponentView.h>
|
|
25
|
+
#endif // RN_FABRIC_ENABLED
|
|
26
|
+
|
|
22
27
|
#import "Handlers/RNPanHandler.h"
|
|
23
28
|
#import "Handlers/RNTapHandler.h"
|
|
24
29
|
#import "Handlers/RNFlingHandler.h"
|
|
@@ -94,21 +99,30 @@
|
|
|
94
99
|
|
|
95
100
|
- (void)attachGestureHandler:(nonnull NSNumber *)handlerTag
|
|
96
101
|
toViewWithTag:(nonnull NSNumber *)viewTag
|
|
102
|
+
withActionType:(RNGestureHandlerActionType)actionType
|
|
97
103
|
{
|
|
98
104
|
UIView *view = [_uiManager viewForReactTag:viewTag];
|
|
105
|
+
|
|
106
|
+
#ifdef RN_FABRIC_ENABLED
|
|
107
|
+
if (view == nil) {
|
|
108
|
+
// Happens when the view with given tag has been flattened.
|
|
109
|
+
// We cannot attach gesture handler to a non-existent view.
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// I think it should be moved to RNNativeViewHandler, but that would require
|
|
114
|
+
// additional logic for setting contentView.reactTag, this works for now
|
|
115
|
+
if ([view isKindOfClass:[RCTViewComponentView class]]) {
|
|
116
|
+
RCTViewComponentView *componentView = (RCTViewComponentView *)view;
|
|
117
|
+
if (componentView.contentView != nil) {
|
|
118
|
+
view = componentView.contentView;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
view.reactTag = viewTag; // necessary for RNReanimated eventHash (e.g. "42onGestureHandlerEvent"), also will be returned as event.target
|
|
123
|
+
#endif // RN_FABRIC_ENABLED
|
|
99
124
|
|
|
100
|
-
[_registry attachHandlerWithTag:handlerTag toView:view];
|
|
101
|
-
|
|
102
|
-
// register view if not already there
|
|
103
|
-
[self registerViewWithGestureRecognizerAttachedIfNeeded:view];
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
- (void)attachGestureHandlerForDeviceEvents:(nonnull NSNumber *)handlerTag
|
|
107
|
-
toViewWithTag:(nonnull NSNumber *)viewTag
|
|
108
|
-
{
|
|
109
|
-
UIView *view = [_uiManager viewForReactTag:viewTag];
|
|
110
|
-
|
|
111
|
-
[_registry attachHandlerWithTagForDeviceEvents:handlerTag toView:view];
|
|
125
|
+
[_registry attachHandlerWithTag:handlerTag toView:view withActionType:actionType];
|
|
112
126
|
|
|
113
127
|
// register view if not already there
|
|
114
128
|
[self registerViewWithGestureRecognizerAttachedIfNeeded:view];
|
|
@@ -196,24 +210,82 @@
|
|
|
196
210
|
|
|
197
211
|
#pragma mark Events
|
|
198
212
|
|
|
199
|
-
- (void)
|
|
213
|
+
- (void)sendStateChangeEvent:(RNGestureHandlerStateChange *)event withActionType:(RNGestureHandlerActionType)actionType
|
|
200
214
|
{
|
|
201
|
-
|
|
215
|
+
switch (actionType) {
|
|
216
|
+
case RNGestureHandlerActionTypeReanimatedWorklet:
|
|
217
|
+
[self sendStateChangeEventForReanimated:event];
|
|
218
|
+
break;
|
|
219
|
+
|
|
220
|
+
case RNGestureHandlerActionTypeNativeAnimatedEvent:
|
|
221
|
+
if ([event.eventName isEqualToString:@"onGestureHandlerEvent"]) {
|
|
222
|
+
[self sendStateChangeEventForNativeAnimatedEvent:event];
|
|
223
|
+
} else {
|
|
224
|
+
// Although onGestureEvent prop is an Animated.event with useNativeDriver: true,
|
|
225
|
+
// onHandlerStateChange prop is still a regular JS function.
|
|
226
|
+
// Also, Animated.event is only supported with old API.
|
|
227
|
+
[self sendStateChangeEventForJSFunctionOldAPI:event];
|
|
228
|
+
}
|
|
229
|
+
break;
|
|
230
|
+
|
|
231
|
+
case RNGestureHandlerActionTypeJSFunctionOldAPI:
|
|
232
|
+
[self sendStateChangeEventForJSFunctionOldAPI:event];
|
|
233
|
+
break;
|
|
234
|
+
|
|
235
|
+
case RNGestureHandlerActionTypeJSFunctionNewAPI:
|
|
236
|
+
[self sendStateChangeEventForJSFunctionNewAPI:event];
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
202
239
|
}
|
|
203
240
|
|
|
204
|
-
- (void)
|
|
241
|
+
- (void)sendStateChangeEventForReanimated:(RNGestureHandlerStateChange *)event
|
|
205
242
|
{
|
|
206
|
-
|
|
243
|
+
// Delivers the event to Reanimated.
|
|
244
|
+
#ifdef RN_FABRIC_ENABLED
|
|
245
|
+
// TODO: send event directly to Reanimated
|
|
246
|
+
// This is already supported in Reanimated with Fabric but let's wait until the official release.
|
|
247
|
+
// [_reanimatedModule eventDispatcherWillDispatchEvent:event];
|
|
248
|
+
#else
|
|
249
|
+
// In the old architecture, Reanimated overwrites RCTEventDispatcher
|
|
250
|
+
// with REAEventDispatcher and intercepts all direct events.
|
|
251
|
+
[self sendStateChangeEventForDirectEvent:event];
|
|
252
|
+
#endif // RN_FABRIC_ENABLED
|
|
207
253
|
}
|
|
208
254
|
|
|
209
|
-
- (void)
|
|
255
|
+
- (void)sendStateChangeEventForNativeAnimatedEvent:(RNGestureHandlerStateChange *)event
|
|
210
256
|
{
|
|
211
|
-
|
|
212
|
-
[
|
|
257
|
+
// Delivers the event to NativeAnimatedModule.
|
|
258
|
+
// Currently, NativeAnimated[Turbo]Module is RCTEventDispatcherObserver so we can
|
|
259
|
+
// simply send a direct event which is handled by the observer but ignored on JS side.
|
|
260
|
+
// TODO: send event directly to NativeAnimated[Turbo]Module
|
|
261
|
+
[self sendStateChangeEventForDirectEvent:event];
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
- (void)sendStateChangeEventForJSFunctionOldAPI:(RNGestureHandlerStateChange *)event
|
|
265
|
+
{
|
|
266
|
+
// Delivers the event to JS (old RNGH API).
|
|
267
|
+
#ifdef RN_FABRIC_ENABLED
|
|
268
|
+
[self sendStateChangeEventForDeviceEvent:event];
|
|
269
|
+
#else
|
|
270
|
+
[self sendStateChangeEventForDirectEvent:event];
|
|
271
|
+
#endif // RN_FABRIC_ENABLED
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
- (void)sendStateChangeEventForJSFunctionNewAPI:(RNGestureHandlerStateChange *)event
|
|
275
|
+
{
|
|
276
|
+
// Delivers the event to JS (new RNGH API).
|
|
277
|
+
[self sendStateChangeEventForDeviceEvent:event];
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
- (void)sendStateChangeEventForDirectEvent:(RNGestureHandlerStateChange *)event
|
|
281
|
+
{
|
|
282
|
+
// Delivers the event to JS as a direct event.
|
|
283
|
+
[_eventDispatcher sendEvent:event];
|
|
213
284
|
}
|
|
214
285
|
|
|
215
|
-
- (void)
|
|
286
|
+
- (void)sendStateChangeEventForDeviceEvent:(RNGestureHandlerStateChange *)event
|
|
216
287
|
{
|
|
288
|
+
// Delivers the event to JS as a device event.
|
|
217
289
|
NSMutableDictionary *body = [[event arguments] objectAtIndex:2];
|
|
218
290
|
[_eventDispatcher sendDeviceEventWithName:@"onGestureHandlerStateChange" body:body];
|
|
219
291
|
}
|