react-native-gesture-handler 2.8.0 → 2.10.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/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
|
-
|