react-native-gesture-handler 2.8.0 → 2.10.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 +2 -2
- package/android/build.gradle +107 -65
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +2 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +39 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +9 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +14 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +5 -1
- package/android/src/main/jni/CMakeLists.txt +10 -44
- package/android/src/main/jni/cpp-adapter.cpp +16 -13
- 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 +2 -3
- package/ios/Handlers/RNNativeViewHandler.mm +96 -92
- 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.h +2 -2
- package/ios/RNGestureHandlerButtonComponentView.mm +2 -2
- 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 +9 -9
- package/ios/RNGestureHandlerModule.h +1 -2
- package/ios/RNGestureHandlerModule.mm +142 -138
- 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/RNGestureHandlerRootViewComponentView.mm +2 -2
- package/ios/RNGestureHandlerState.h +6 -6
- package/ios/RNGestureHandlerStateManager.h +1 -1
- package/ios/RNManualActivationRecognizer.m +9 -9
- package/ios/RNRootViewGestureRecognizer.m +39 -42
- package/lib/commonjs/EnableNewWebImplementation.js +35 -0
- package/lib/commonjs/EnableNewWebImplementation.js.map +1 -0
- package/lib/commonjs/GestureHandlerRootViewContext.js +15 -0
- package/lib/commonjs/GestureHandlerRootViewContext.js.map +1 -0
- package/lib/commonjs/RNGestureHandlerModule.macos.js +6 -6
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +6 -6
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.windows.js +6 -6
- package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -1
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.web.js +6 -5
- package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerButton.js +3 -5
- package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
- package/lib/commonjs/{GestureHandlerRootView.android.js → components/GestureHandlerRootView.android.js} +8 -7
- package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -0
- package/lib/commonjs/{GestureHandlerRootView.js → components/GestureHandlerRootView.js} +8 -2
- package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -0
- package/lib/commonjs/{GestureHandlerRootView.web.js → components/GestureHandlerRootView.web.js} +7 -1
- package/lib/commonjs/components/GestureHandlerRootView.web.js.map +1 -0
- package/lib/commonjs/components/Swipeable.js +17 -3
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/{gestureHandlerRootHOC.js → components/gestureHandlerRootHOC.js} +2 -1
- package/lib/commonjs/components/gestureHandlerRootHOC.js.map +1 -0
- 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 +21 -13
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +5 -4
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector.js +89 -37
- package/lib/commonjs/handlers/gestures/GestureDetector.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/reanimatedWrapper.js +22 -19
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.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/index.js +16 -4
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils.js +0 -6
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -5
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +3 -0
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/ManualGestureHandler.js +0 -5
- package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -6
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +2 -12
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -5
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -6
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -7
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/tools/CircularBuffer.js +59 -0
- package/lib/commonjs/web/tools/CircularBuffer.js.map +1 -0
- package/lib/commonjs/web/tools/LeastSquareSolver.js +204 -0
- package/lib/commonjs/web/tools/LeastSquareSolver.js.map +1 -0
- package/lib/commonjs/web/tools/PointerEventManager.js +27 -0
- package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/PointerTracker.js +11 -7
- package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
- package/lib/commonjs/web/tools/VelocityTracker.js +111 -0
- package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -0
- package/lib/commonjs/web_hammer/GestureHandler.js +1 -1
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
- package/lib/module/EnableNewWebImplementation.js +22 -0
- package/lib/module/EnableNewWebImplementation.js.map +1 -0
- package/lib/module/GestureHandlerRootViewContext.js +3 -0
- package/lib/module/GestureHandlerRootViewContext.js.map +1 -0
- package/lib/module/RNGestureHandlerModule.macos.js +6 -6
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +6 -6
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.windows.js +6 -6
- package/lib/module/RNGestureHandlerModule.windows.js.map +1 -1
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureComponents.web.js +5 -6
- package/lib/module/components/GestureComponents.web.js.map +1 -1
- package/lib/module/components/GestureHandlerButton.js +1 -4
- package/lib/module/components/GestureHandlerButton.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.android.js +14 -0
- package/lib/module/components/GestureHandlerRootView.android.js.map +1 -0
- package/lib/module/{GestureHandlerRootView.js → components/GestureHandlerRootView.js} +5 -2
- package/lib/module/components/GestureHandlerRootView.js.map +1 -0
- package/lib/module/components/GestureHandlerRootView.web.js +9 -0
- package/lib/module/components/GestureHandlerRootView.web.js.map +1 -0
- package/lib/module/components/Swipeable.js +17 -3
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/{gestureHandlerRootHOC.js → components/gestureHandlerRootHOC.js} +2 -1
- package/lib/module/components/gestureHandlerRootHOC.js.map +1 -0
- 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 +20 -13
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +5 -4
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +89 -38
- package/lib/module/handlers/gestures/GestureDetector.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/reanimatedWrapper.js +19 -16
- package/lib/module/handlers/gestures/reanimatedWrapper.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/index.js +4 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils.js +0 -4
- package/lib/module/utils.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +0 -5
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +3 -0
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js +0 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/ManualGestureHandler.js +0 -5
- package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -6
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +2 -9
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PinchGestureHandler.js +0 -5
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/RotationGestureHandler.js +0 -6
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +0 -7
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/tools/CircularBuffer.js +50 -0
- package/lib/module/web/tools/CircularBuffer.js.map +1 -0
- package/lib/module/web/tools/LeastSquareSolver.js +195 -0
- package/lib/module/web/tools/LeastSquareSolver.js.map +1 -0
- package/lib/module/web/tools/PointerEventManager.js +27 -0
- package/lib/module/web/tools/PointerEventManager.js.map +1 -1
- package/lib/module/web/tools/PointerTracker.js +8 -7
- package/lib/module/web/tools/PointerTracker.js.map +1 -1
- package/lib/module/web/tools/VelocityTracker.js +98 -0
- package/lib/module/web/tools/VelocityTracker.js.map +1 -0
- package/lib/module/web_hammer/GestureHandler.js +1 -1
- package/lib/module/web_hammer/GestureHandler.js.map +1 -1
- package/lib/typescript/EnableNewWebImplementation.d.ts +3 -0
- package/lib/typescript/GestureHandlerRootViewContext.d.ts +3 -0
- package/lib/typescript/components/DrawerLayout.d.ts +3 -1
- package/lib/typescript/components/GestureComponents.web.d.ts +1 -1
- package/lib/typescript/components/Swipeable.d.ts +14 -2
- package/lib/typescript/components/gestureHandlerRootHOC.d.ts +3 -0
- package/lib/typescript/index.d.ts +4 -4
- package/lib/typescript/{fabric → specs}/RNGestureHandlerButtonNativeComponent.d.ts +1 -1
- package/lib/typescript/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.d.ts +1 -1
- package/lib/typescript/utils.d.ts +0 -1
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/TapGestureHandler.d.ts +0 -1
- package/lib/typescript/web/tools/CircularBuffer.d.ts +11 -0
- package/lib/typescript/web/tools/LeastSquareSolver.d.ts +12 -0
- package/lib/typescript/web/tools/PointerEventManager.d.ts +2 -0
- package/lib/typescript/web/tools/PointerTracker.d.ts +1 -0
- package/lib/typescript/web/tools/VelocityTracker.d.ts +13 -0
- package/package.json +6 -7
- package/src/EnableNewWebImplementation.ts +35 -0
- package/src/GestureHandlerRootViewContext.ts +3 -0
- package/src/RNGestureHandlerModule.macos.ts +6 -6
- package/src/RNGestureHandlerModule.web.ts +6 -6
- package/src/RNGestureHandlerModule.windows.ts +6 -6
- package/src/components/DrawerLayout.tsx +8 -4
- package/src/components/GestureComponents.web.tsx +5 -6
- package/src/components/GestureHandlerButton.tsx +2 -7
- package/src/components/GestureHandlerRootView.android.tsx +24 -0
- package/src/{GestureHandlerRootView.tsx → components/GestureHandlerRootView.tsx} +7 -2
- package/src/{GestureHandlerRootView.web.tsx → components/GestureHandlerRootView.web.tsx} +6 -1
- package/src/components/Swipeable.tsx +43 -12
- package/src/{gestureHandlerRootHOC.tsx → components/gestureHandlerRootHOC.tsx} +4 -1
- package/src/handlers/LongPressGestureHandler.ts +3 -1
- package/src/handlers/TapGestureHandler.ts +3 -1
- package/src/handlers/createHandler.tsx +20 -9
- package/src/handlers/gestureHandlerCommon.ts +5 -6
- package/src/handlers/gestures/GestureDetector.tsx +99 -36
- package/src/handlers/gestures/longPressGesture.ts +1 -0
- package/src/handlers/gestures/reanimatedWrapper.ts +21 -20
- package/src/handlers/gestures/tapGesture.ts +1 -0
- package/src/index.ts +7 -3
- package/src/utils.ts +0 -5
- package/src/web/handlers/FlingGestureHandler.ts +0 -5
- package/src/web/handlers/GestureHandler.ts +3 -0
- package/src/web/handlers/LongPressGestureHandler.ts +0 -1
- package/src/web/handlers/ManualGestureHandler.ts +0 -5
- package/src/web/handlers/NativeViewGestureHandler.ts +0 -6
- package/src/web/handlers/PanGestureHandler.ts +2 -9
- package/src/web/handlers/PinchGestureHandler.ts +0 -5
- package/src/web/handlers/RotationGestureHandler.ts +0 -7
- package/src/web/handlers/TapGestureHandler.ts +0 -7
- package/src/web/tools/CircularBuffer.ts +42 -0
- package/src/web/tools/LeastSquareSolver.ts +182 -0
- package/src/web/tools/PointerEventManager.ts +29 -0
- package/src/web/tools/PointerTracker.ts +7 -7
- package/src/web/tools/VelocityTracker.ts +98 -0
- package/src/web_hammer/GestureHandler.ts +1 -1
- package/lib/commonjs/EnableExperimentalWebImplementation.js +0 -31
- package/lib/commonjs/EnableExperimentalWebImplementation.js.map +0 -1
- package/lib/commonjs/GestureHandlerRootView.android.js.map +0 -1
- package/lib/commonjs/GestureHandlerRootView.js.map +0 -1
- package/lib/commonjs/GestureHandlerRootView.web.js.map +0 -1
- package/lib/commonjs/gestureHandlerRootHOC.js.map +0 -1
- package/lib/module/EnableExperimentalWebImplementation.js +0 -20
- package/lib/module/EnableExperimentalWebImplementation.js.map +0 -1
- package/lib/module/GestureHandlerRootView.android.js +0 -14
- package/lib/module/GestureHandlerRootView.android.js.map +0 -1
- package/lib/module/GestureHandlerRootView.js.map +0 -1
- package/lib/module/GestureHandlerRootView.web.js +0 -6
- package/lib/module/GestureHandlerRootView.web.js.map +0 -1
- package/lib/module/gestureHandlerRootHOC.js.map +0 -1
- package/lib/typescript/EnableExperimentalWebImplementation.d.ts +0 -2
- package/lib/typescript/gestureHandlerRootHOC.d.ts +0 -3
- package/src/EnableExperimentalWebImplementation.ts +0 -27
- package/src/GestureHandlerRootView.android.tsx +0 -24
- /package/lib/commonjs/{fabric → specs}/RNGestureHandlerButtonNativeComponent.js +0 -0
- /package/lib/commonjs/{fabric → specs}/RNGestureHandlerButtonNativeComponent.js.map +0 -0
- /package/lib/commonjs/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.js +0 -0
- /package/lib/commonjs/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.js.map +0 -0
- /package/lib/module/{fabric → specs}/RNGestureHandlerButtonNativeComponent.js +0 -0
- /package/lib/module/{fabric → specs}/RNGestureHandlerButtonNativeComponent.js.map +0 -0
- /package/lib/module/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.js +0 -0
- /package/lib/module/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.js.map +0 -0
- /package/lib/typescript/{GestureHandlerRootView.android.d.ts → components/GestureHandlerRootView.android.d.ts} +0 -0
- /package/lib/typescript/{GestureHandlerRootView.d.ts → components/GestureHandlerRootView.d.ts} +0 -0
- /package/lib/typescript/{GestureHandlerRootView.web.d.ts → components/GestureHandlerRootView.web.d.ts} +0 -0
- /package/src/{fabric → specs}/RNGestureHandlerButtonNativeComponent.ts +0 -0
- /package/src/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.ts +0 -0
@@ -26,19 +26,17 @@
|
|
26
26
|
@property (nonatomic) CGFloat failOffsetYEnd;
|
27
27
|
@property (nonatomic) CGFloat activateAfterLongPress;
|
28
28
|
|
29
|
-
|
30
|
-
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
29
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
|
31
30
|
|
32
31
|
@end
|
33
32
|
|
34
|
-
|
35
33
|
@implementation RNBetterPanGestureRecognizer {
|
36
34
|
__weak RNGestureHandler *_gestureHandler;
|
37
35
|
NSUInteger _realMinimumNumberOfTouches;
|
38
36
|
BOOL _hasCustomActivationCriteria;
|
39
37
|
}
|
40
38
|
|
41
|
-
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler
|
39
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler
|
42
40
|
{
|
43
41
|
if ((self = [super initWithTarget:gestureHandler action:@selector(handleGesture:)])) {
|
44
42
|
_gestureHandler = gestureHandler;
|
@@ -96,9 +94,9 @@
|
|
96
94
|
}
|
97
95
|
#endif
|
98
96
|
[super touchesBegan:touches withEvent:event];
|
99
|
-
[self triggerAction];
|
100
97
|
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
101
|
-
|
98
|
+
[self triggerAction];
|
99
|
+
|
102
100
|
if (!isnan(_activateAfterLongPress)) {
|
103
101
|
[self performSelector:@selector(activateAfterLongPress) withObject:nil afterDelay:_activateAfterLongPress];
|
104
102
|
}
|
@@ -108,7 +106,7 @@
|
|
108
106
|
{
|
109
107
|
[super touchesMoved:touches withEvent:event];
|
110
108
|
[_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
|
111
|
-
|
109
|
+
|
112
110
|
if (self.state == UIGestureRecognizerStatePossible && [self shouldFailUnderCustomCriteria]) {
|
113
111
|
self.state = UIGestureRecognizerStateFailed;
|
114
112
|
return;
|
@@ -119,14 +117,14 @@
|
|
119
117
|
// then UIGestureRecognizer's sate machine will only transition to
|
120
118
|
// UIGestureRecognizerStateCancelled even if you set the state to
|
121
119
|
// UIGestureRecognizerStateFailed here. Making the behavior explicit.
|
122
|
-
self.state = (self.state == UIGestureRecognizerStatePossible)
|
123
|
-
|
124
|
-
: UIGestureRecognizerStateCancelled;
|
120
|
+
self.state = (self.state == UIGestureRecognizerStatePossible) ? UIGestureRecognizerStateFailed
|
121
|
+
: UIGestureRecognizerStateCancelled;
|
125
122
|
[self reset];
|
126
123
|
return;
|
127
124
|
}
|
128
125
|
}
|
129
|
-
if (_hasCustomActivationCriteria && self.state == UIGestureRecognizerStatePossible &&
|
126
|
+
if (_hasCustomActivationCriteria && self.state == UIGestureRecognizerStatePossible &&
|
127
|
+
[self shouldActivateUnderCustomCriteria]) {
|
130
128
|
#if !TARGET_OS_TV
|
131
129
|
super.minimumNumberOfTouches = _realMinimumNumberOfTouches;
|
132
130
|
if ([self numberOfTouches] >= _realMinimumNumberOfTouches) {
|
@@ -160,10 +158,9 @@
|
|
160
158
|
|
161
159
|
- (void)updateHasCustomActivationCriteria
|
162
160
|
{
|
163
|
-
_hasCustomActivationCriteria = !isnan(_minDistSq)
|
164
|
-
|
165
|
-
|
166
|
-
|| !isnan(_activeOffsetYStart) || !isnan(_activeOffsetYEnd);
|
161
|
+
_hasCustomActivationCriteria = !isnan(_minDistSq) || !isnan(_minVelocityX) || !isnan(_minVelocityY) ||
|
162
|
+
!isnan(_minVelocitySq) || !isnan(_activeOffsetXStart) || !isnan(_activeOffsetXEnd) ||
|
163
|
+
!isnan(_activeOffsetYStart) || !isnan(_activeOffsetYEnd);
|
167
164
|
}
|
168
165
|
|
169
166
|
- (BOOL)shouldFailUnderCustomCriteria
|
@@ -174,7 +171,7 @@
|
|
174
171
|
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(activateAfterLongPress) object:nil];
|
175
172
|
return YES;
|
176
173
|
}
|
177
|
-
|
174
|
+
|
178
175
|
if (!isnan(_failOffsetXStart) && trans.x < _failOffsetXStart) {
|
179
176
|
return YES;
|
180
177
|
}
|
@@ -205,11 +202,11 @@
|
|
205
202
|
if (!isnan(_activeOffsetYEnd) && trans.y > _activeOffsetYEnd) {
|
206
203
|
return YES;
|
207
204
|
}
|
208
|
-
|
205
|
+
|
209
206
|
if (TEST_MIN_IF_NOT_NAN(VEC_LEN_SQ(trans), _minDistSq)) {
|
210
207
|
return YES;
|
211
208
|
}
|
212
|
-
|
209
|
+
|
213
210
|
CGPoint velocity = [self velocityInView:self.view];
|
214
211
|
if (TEST_MIN_IF_NOT_NAN(velocity.x, _minVelocityX)) {
|
215
212
|
return YES;
|
@@ -220,7 +217,7 @@
|
|
220
217
|
if (TEST_MIN_IF_NOT_NAN(VEC_LEN_SQ(velocity), _minVelocitySq)) {
|
221
218
|
return YES;
|
222
219
|
}
|
223
|
-
|
220
|
+
|
224
221
|
return NO;
|
225
222
|
}
|
226
223
|
|
@@ -269,7 +266,7 @@
|
|
269
266
|
{
|
270
267
|
[super configure:config];
|
271
268
|
RNBetterPanGestureRecognizer *recognizer = (RNBetterPanGestureRecognizer *)_recognizer;
|
272
|
-
|
269
|
+
|
273
270
|
APPLY_FLOAT_PROP(minVelocityX);
|
274
271
|
APPLY_FLOAT_PROP(minVelocityY);
|
275
272
|
APPLY_FLOAT_PROP(activeOffsetXStart);
|
@@ -284,7 +281,7 @@
|
|
284
281
|
#if !TARGET_OS_TV && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130400
|
285
282
|
if (@available(iOS 13.4, *)) {
|
286
283
|
bool enableTrackpadTwoFingerGesture = [RCTConvert BOOL:config[@"enableTrackpadTwoFingerGesture"]];
|
287
|
-
if(enableTrackpadTwoFingerGesture){
|
284
|
+
if (enableTrackpadTwoFingerGesture) {
|
288
285
|
recognizer.allowedScrollTypesMask = UIScrollTypeMaskAll;
|
289
286
|
}
|
290
287
|
}
|
@@ -292,19 +289,19 @@
|
|
292
289
|
APPLY_NAMED_INT_PROP(minimumNumberOfTouches, @"minPointers");
|
293
290
|
APPLY_NAMED_INT_PROP(maximumNumberOfTouches, @"maxPointers");
|
294
291
|
#endif
|
295
|
-
|
292
|
+
|
296
293
|
id prop = config[@"minDist"];
|
297
294
|
if (prop != nil) {
|
298
295
|
CGFloat dist = [RCTConvert CGFloat:prop];
|
299
296
|
recognizer.minDistSq = dist * dist;
|
300
297
|
}
|
301
|
-
|
298
|
+
|
302
299
|
prop = config[@"minVelocity"];
|
303
300
|
if (prop != nil) {
|
304
301
|
CGFloat velocity = [RCTConvert CGFloat:prop];
|
305
302
|
recognizer.minVelocitySq = velocity * velocity;
|
306
303
|
}
|
307
|
-
|
304
|
+
|
308
305
|
prop = config[@"activateAfterLongPress"];
|
309
306
|
if (prop != nil) {
|
310
307
|
recognizer.activateAfterLongPress = [RCTConvert CGFloat:prop] / 1000.0;
|
@@ -313,23 +310,22 @@
|
|
313
310
|
[recognizer updateHasCustomActivationCriteria];
|
314
311
|
}
|
315
312
|
|
316
|
-
- (BOOL)
|
313
|
+
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
|
317
314
|
{
|
318
315
|
RNGestureHandlerState savedState = _lastState;
|
319
316
|
BOOL shouldBegin = [super gestureRecognizerShouldBegin:gestureRecognizer];
|
320
317
|
_lastState = savedState;
|
321
|
-
|
318
|
+
|
322
319
|
return shouldBegin;
|
323
320
|
}
|
324
321
|
|
325
322
|
- (RNGestureHandlerEventExtraData *)eventExtraData:(UIPanGestureRecognizer *)recognizer
|
326
323
|
{
|
327
|
-
return [RNGestureHandlerEventExtraData
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
withNumberOfTouches:recognizer.numberOfTouches];
|
324
|
+
return [RNGestureHandlerEventExtraData forPan:[recognizer locationInView:recognizer.view]
|
325
|
+
withAbsolutePosition:[recognizer locationInView:recognizer.view.window]
|
326
|
+
withTranslation:[recognizer translationInView:recognizer.view.window]
|
327
|
+
withVelocity:[recognizer velocityInView:recognizer.view.window]
|
328
|
+
withNumberOfTouches:recognizer.numberOfTouches];
|
333
329
|
}
|
334
330
|
|
335
331
|
@end
|
@@ -13,7 +13,7 @@
|
|
13
13
|
#if !TARGET_OS_TV
|
14
14
|
@interface RNBetterPinchRecognizer : UIPinchGestureRecognizer
|
15
15
|
|
16
|
-
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
16
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
|
17
17
|
|
18
18
|
@end
|
19
19
|
|
@@ -74,22 +74,21 @@
|
|
74
74
|
|
75
75
|
- (instancetype)initWithTag:(NSNumber *)tag
|
76
76
|
{
|
77
|
-
|
77
|
+
if ((self = [super initWithTag:tag])) {
|
78
78
|
#if !TARGET_OS_TV
|
79
|
-
|
79
|
+
_recognizer = [[RNBetterPinchRecognizer alloc] initWithGestureHandler:self];
|
80
80
|
#endif
|
81
|
-
|
82
|
-
|
81
|
+
}
|
82
|
+
return self;
|
83
83
|
}
|
84
84
|
|
85
85
|
#if !TARGET_OS_TV
|
86
86
|
- (RNGestureHandlerEventExtraData *)eventExtraData:(UIPinchGestureRecognizer *)recognizer
|
87
87
|
{
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
withNumberOfTouches:recognizer.numberOfTouches];
|
88
|
+
return [RNGestureHandlerEventExtraData forPinch:recognizer.scale
|
89
|
+
withFocalPoint:[recognizer locationInView:recognizer.view]
|
90
|
+
withVelocity:recognizer.velocity
|
91
|
+
withNumberOfTouches:recognizer.numberOfTouches];
|
93
92
|
}
|
94
93
|
#endif
|
95
94
|
|
@@ -11,7 +11,7 @@
|
|
11
11
|
#if !TARGET_OS_TV
|
12
12
|
@interface RNBetterRotationRecognizer : UIRotationGestureRecognizer
|
13
13
|
|
14
|
-
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
14
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
|
15
15
|
|
16
16
|
@end
|
17
17
|
|
@@ -35,7 +35,6 @@
|
|
35
35
|
[_gestureHandler handleGesture:recognizer];
|
36
36
|
}
|
37
37
|
|
38
|
-
|
39
38
|
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
40
39
|
{
|
41
40
|
[super touchesBegan:touches withEvent:event];
|
@@ -73,24 +72,22 @@
|
|
73
72
|
|
74
73
|
- (instancetype)initWithTag:(NSNumber *)tag
|
75
74
|
{
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
75
|
+
if ((self = [super initWithTag:tag])) {
|
76
|
+
#if !TARGET_OS_TV
|
77
|
+
_recognizer = [[RNBetterRotationRecognizer alloc] initWithGestureHandler:self];
|
78
|
+
#endif
|
79
|
+
}
|
80
|
+
return self;
|
82
81
|
}
|
83
82
|
|
84
83
|
#if !TARGET_OS_TV
|
85
84
|
- (RNGestureHandlerEventExtraData *)eventExtraData:(UIRotationGestureRecognizer *)recognizer
|
86
85
|
{
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
withNumberOfTouches:recognizer.numberOfTouches];
|
86
|
+
return [RNGestureHandlerEventExtraData forRotation:recognizer.rotation
|
87
|
+
withAnchorPoint:[recognizer locationInView:recognizer.view]
|
88
|
+
withVelocity:recognizer.velocity
|
89
|
+
withNumberOfTouches:recognizer.numberOfTouches];
|
92
90
|
}
|
93
91
|
#endif
|
94
92
|
|
95
93
|
@end
|
96
|
-
|
@@ -12,8 +12,8 @@
|
|
12
12
|
|
13
13
|
#import <React/RCTConvert.h>
|
14
14
|
|
15
|
-
// RNBetterTapGestureRecognizer extends UIGestureRecognizer instead of UITapGestureRecognizer
|
16
|
-
// because the latter does not allow for parameters like maxDelay, maxDuration, minPointers,
|
15
|
+
// RNBetterTapGestureRecognizer extends UIGestureRecognizer instead of UITapGestureRecognizer
|
16
|
+
// because the latter does not allow for parameters like maxDelay, maxDuration, minPointers,
|
17
17
|
// maxDelta to be configured. Using our custom implementation of tap recognizer we are able
|
18
18
|
// to support these.
|
19
19
|
|
@@ -27,7 +27,7 @@
|
|
27
27
|
@property (nonatomic) CGFloat maxDeltaY;
|
28
28
|
@property (nonatomic) NSInteger minPointers;
|
29
29
|
|
30
|
-
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
30
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
|
31
31
|
|
32
32
|
@end
|
33
33
|
|
@@ -43,7 +43,7 @@ static const NSInteger defaultMinPointers = 1;
|
|
43
43
|
static const CGFloat defaultMaxDelay = 0.2;
|
44
44
|
static const NSTimeInterval defaultMaxDuration = 0.5;
|
45
45
|
|
46
|
-
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler
|
46
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler
|
47
47
|
{
|
48
48
|
if ((self = [super initWithTarget:gestureHandler action:@selector(handleGesture:)])) {
|
49
49
|
_gestureHandler = gestureHandler;
|
@@ -73,7 +73,7 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
|
|
73
73
|
{
|
74
74
|
[super touchesBegan:touches withEvent:event];
|
75
75
|
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
76
|
-
|
76
|
+
|
77
77
|
if (_tapsSoFar == 0) {
|
78
78
|
// this recognizer sends UNDETERMINED -> BEGAN state change event before gestureRecognizerShouldBegin
|
79
79
|
// is called (it resets the gesture handler), making it send whatever the last known state as oldState
|
@@ -100,28 +100,29 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
|
|
100
100
|
{
|
101
101
|
[super touchesMoved:touches withEvent:event];
|
102
102
|
[_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
|
103
|
-
|
103
|
+
|
104
104
|
NSInteger numberOfTouches = [touches count];
|
105
105
|
if (numberOfTouches > _maxNumberOfTouches) {
|
106
106
|
_maxNumberOfTouches = numberOfTouches;
|
107
107
|
}
|
108
|
-
|
108
|
+
|
109
109
|
if (self.state != UIGestureRecognizerStatePossible) {
|
110
110
|
return;
|
111
111
|
}
|
112
|
-
|
112
|
+
|
113
113
|
if ([self shouldFailUnderCustomCriteria]) {
|
114
114
|
self.state = UIGestureRecognizerStateFailed;
|
115
115
|
[self triggerAction];
|
116
116
|
[self reset];
|
117
117
|
return;
|
118
118
|
}
|
119
|
-
|
119
|
+
|
120
120
|
self.state = UIGestureRecognizerStatePossible;
|
121
121
|
[self triggerAction];
|
122
122
|
}
|
123
123
|
|
124
|
-
- (CGPoint)translationInView
|
124
|
+
- (CGPoint)translationInView
|
125
|
+
{
|
125
126
|
CGPoint currentPosition = [self locationInView:self.view.window];
|
126
127
|
return CGPointMake(currentPosition.x - _initPosition.x, currentPosition.y - _initPosition.y);
|
127
128
|
}
|
@@ -133,7 +134,7 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
|
|
133
134
|
return YES;
|
134
135
|
}
|
135
136
|
}
|
136
|
-
|
137
|
+
|
137
138
|
CGPoint trans = [self translationInView];
|
138
139
|
if (TEST_MAX_IF_NOT_NAN(fabs(trans.x), _maxDeltaX)) {
|
139
140
|
return YES;
|
@@ -151,7 +152,7 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
|
|
151
152
|
{
|
152
153
|
[super touchesEnded:touches withEvent:event];
|
153
154
|
[_gestureHandler.pointerTracker touchesEnded:touches withEvent:event];
|
154
|
-
|
155
|
+
|
155
156
|
if (_numberOfTaps == _tapsSoFar && _maxNumberOfTouches >= _minPointers) {
|
156
157
|
self.state = UIGestureRecognizerStateEnded;
|
157
158
|
[self reset];
|
@@ -164,7 +165,7 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
|
|
164
165
|
{
|
165
166
|
[super touchesCancelled:touches withEvent:event];
|
166
167
|
[_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
|
167
|
-
|
168
|
+
|
168
169
|
self.state = UIGestureRecognizerStateCancelled;
|
169
170
|
[self reset];
|
170
171
|
}
|
@@ -186,7 +187,7 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
|
|
186
187
|
@end
|
187
188
|
|
188
189
|
@implementation RNTapGestureHandler {
|
189
|
-
|
190
|
+
RNGestureHandlerEventExtraData *_lastData;
|
190
191
|
}
|
191
192
|
|
192
193
|
- (instancetype)initWithTag:(NSNumber *)tag
|
@@ -201,7 +202,7 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
|
|
201
202
|
{
|
202
203
|
[super resetConfig];
|
203
204
|
RNBetterTapGestureRecognizer *recognizer = (RNBetterTapGestureRecognizer *)_recognizer;
|
204
|
-
|
205
|
+
|
205
206
|
recognizer.numberOfTaps = defaultNumberOfTaps;
|
206
207
|
recognizer.minPointers = defaultMinPointers;
|
207
208
|
recognizer.maxDeltaX = NAN;
|
@@ -215,22 +216,22 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
|
|
215
216
|
{
|
216
217
|
[super configure:config];
|
217
218
|
RNBetterTapGestureRecognizer *recognizer = (RNBetterTapGestureRecognizer *)_recognizer;
|
218
|
-
|
219
|
+
|
219
220
|
APPLY_INT_PROP(numberOfTaps);
|
220
221
|
APPLY_INT_PROP(minPointers);
|
221
222
|
APPLY_FLOAT_PROP(maxDeltaX);
|
222
223
|
APPLY_FLOAT_PROP(maxDeltaY);
|
223
|
-
|
224
|
+
|
224
225
|
id prop = config[@"maxDelayMs"];
|
225
226
|
if (prop != nil) {
|
226
227
|
recognizer.maxDelay = [RCTConvert CGFloat:prop] / 1000.0;
|
227
228
|
}
|
228
|
-
|
229
|
+
|
229
230
|
prop = config[@"maxDurationMs"];
|
230
231
|
if (prop != nil) {
|
231
232
|
recognizer.maxDuration = [RCTConvert CGFloat:prop] / 1000.0;
|
232
233
|
}
|
233
|
-
|
234
|
+
|
234
235
|
prop = config[@"maxDist"];
|
235
236
|
if (prop != nil) {
|
236
237
|
CGFloat dist = [RCTConvert CGFloat:prop];
|
@@ -240,12 +241,12 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
|
|
240
241
|
|
241
242
|
- (RNGestureHandlerEventExtraData *)eventExtraData:(UIGestureRecognizer *)recognizer
|
242
243
|
{
|
243
|
-
|
244
|
-
return _lastData;
|
245
|
-
}
|
246
|
-
|
247
|
-
_lastData = [super eventExtraData:recognizer];
|
244
|
+
if (recognizer.state == UIGestureRecognizerStateEnded) {
|
248
245
|
return _lastData;
|
246
|
+
}
|
247
|
+
|
248
|
+
_lastData = [super eventExtraData:recognizer];
|
249
|
+
return _lastData;
|
249
250
|
}
|
250
251
|
|
251
252
|
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
|
@@ -257,9 +258,8 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
|
|
257
258
|
RNGestureHandlerState savedState = _lastState;
|
258
259
|
BOOL shouldBegin = [super gestureRecognizerShouldBegin:gestureRecognizer];
|
259
260
|
_lastState = savedState;
|
260
|
-
|
261
|
+
|
261
262
|
return shouldBegin;
|
262
263
|
}
|
263
264
|
|
264
265
|
@end
|
265
|
-
|
package/ios/RNGestureHandler.h
CHANGED
@@ -1,28 +1,39 @@
|
|
1
1
|
#import "RNGestureHandlerActionType.h"
|
2
|
-
#import "RNGestureHandlerState.h"
|
3
2
|
#import "RNGestureHandlerDirection.h"
|
4
3
|
#import "RNGestureHandlerEvents.h"
|
5
4
|
#import "RNGestureHandlerPointerTracker.h"
|
5
|
+
#import "RNGestureHandlerState.h"
|
6
6
|
|
7
7
|
#import <Foundation/Foundation.h>
|
8
|
-
#import <UIKit/UIKit.h>
|
9
8
|
#import <React/RCTConvert.h>
|
9
|
+
#import <UIKit/UIKit.h>
|
10
10
|
|
11
11
|
#define VEC_LEN_SQ(pt) (pt.x * pt.x + pt.y * pt.y)
|
12
12
|
#define TEST_MIN_IF_NOT_NAN(value, limit) \
|
13
|
-
(!isnan(limit) && ((limit < 0 && value <= limit) || (limit >= 0 && value >= limit)))
|
14
|
-
|
15
|
-
#define TEST_MAX_IF_NOT_NAN(value, max)
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
id value = config[propName];
|
20
|
-
if (value != nil) {
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
#define
|
13
|
+
(!isnan(limit) && ((limit < 0 && value <= limit) || (limit >= 0 && value >= limit)))
|
14
|
+
|
15
|
+
#define TEST_MAX_IF_NOT_NAN(value, max) (!isnan(max) && ((max < 0 && value < max) || (max >= 0 && value > max)))
|
16
|
+
|
17
|
+
#define APPLY_PROP(recognizer, config, type, prop, propName) \
|
18
|
+
do { \
|
19
|
+
id value = config[propName]; \
|
20
|
+
if (value != nil) { \
|
21
|
+
recognizer.prop = [RCTConvert type:value]; \
|
22
|
+
} \
|
23
|
+
} while (0)
|
24
|
+
|
25
|
+
#define APPLY_FLOAT_PROP(prop) \
|
26
|
+
do { \
|
27
|
+
APPLY_PROP(recognizer, config, CGFloat, prop, @ #prop); \
|
28
|
+
} while (0)
|
29
|
+
#define APPLY_INT_PROP(prop) \
|
30
|
+
do { \
|
31
|
+
APPLY_PROP(recognizer, config, NSInteger, prop, @ #prop); \
|
32
|
+
} while (0)
|
33
|
+
#define APPLY_NAMED_INT_PROP(prop, propName) \
|
34
|
+
do { \
|
35
|
+
APPLY_PROP(recognizer, config, NSInteger, prop, propName); \
|
36
|
+
} while (0)
|
26
37
|
|
27
38
|
@protocol RNGestureHandlerEventEmitter
|
28
39
|
|
@@ -30,7 +41,6 @@ if (value != nil) { recognizer.prop = [RCTConvert type:value]; }\
|
|
30
41
|
|
31
42
|
@end
|
32
43
|
|
33
|
-
|
34
44
|
@protocol RNRootViewGestureRecognizerDelegate <UIGestureRecognizerDelegate>
|
35
45
|
|
36
46
|
- (void)gestureRecognizer:(nullable UIGestureRecognizer *)gestureRecognizer
|
@@ -38,12 +48,11 @@ if (value != nil) { recognizer.prop = [RCTConvert type:value]; }\
|
|
38
48
|
|
39
49
|
@end
|
40
50
|
|
41
|
-
|
42
51
|
@interface RNGestureHandler : NSObject <UIGestureRecognizerDelegate> {
|
43
|
-
|
44
|
-
|
45
|
-
@protected
|
46
|
-
|
52
|
+
@protected
|
53
|
+
UIGestureRecognizer *_recognizer;
|
54
|
+
@protected
|
55
|
+
RNGestureHandlerState _lastState;
|
47
56
|
}
|
48
57
|
|
49
58
|
+ (nullable RNGestureHandler *)findGestureHandlerByRecognizer:(nonnull UIGestureRecognizer *)recognizer;
|
@@ -76,8 +85,6 @@ if (value != nil) { recognizer.prop = [RCTConvert type:value]; }\
|
|
76
85
|
forViewWithTag:(nonnull NSNumber *)reactTag
|
77
86
|
withExtraData:(nonnull RNGestureHandlerEventExtraData *)extraData;
|
78
87
|
- (void)sendEvent:(nonnull RNGestureHandlerStateChange *)event;
|
79
|
-
- (void)sendTouchEventInState:(RNGestureHandlerState)state
|
80
|
-
forViewWithTag:(nonnull NSNumber *)reactTag;
|
88
|
+
- (void)sendTouchEventInState:(RNGestureHandlerState)state forViewWithTag:(nonnull NSNumber *)reactTag;
|
81
89
|
|
82
90
|
@end
|
83
|
-
|