react-native-gesture-handler 2.7.1 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RNGestureHandler.podspec +1 -1
- package/android/build.gradle +53 -46
- package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +3 -3
- package/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +7 -7
- package/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +2 -2
- package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +3 -3
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/FlingGestureHandler.kt +12 -9
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandler.kt +39 -31
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerInteractionController.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerOrchestrator.kt +28 -19
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerRegistry.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureUtils.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/LongPressGestureHandler.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ManualGestureHandler.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/NativeViewGestureHandler.kt +5 -5
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/OnTouchEventListener.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PanGestureHandler.kt +7 -5
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PinchGestureHandler.kt +11 -4
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PointerEventsConfig.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureDetector.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureHandler.kt +7 -2
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ScaleGestureDetector.java +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/TapGestureHandler.kt +3 -3
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ViewConfigurationHelper.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/react}/Extensions.kt +3 -3
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +8 -6
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +1 -5
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +20 -8
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +3 -3
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +40 -15
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +2 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +8 -6
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +0 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +4 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +7 -7
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +5 -5
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +2 -2
- package/android/src/main/jni/CMakeLists.txt +10 -44
- package/android/src/main/jni/cpp-adapter.cpp +16 -13
- package/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +5 -5
- package/ios/Handlers/RNFlingHandler.m +39 -37
- package/ios/Handlers/RNForceTouchHandler.m +19 -17
- package/ios/Handlers/RNLongPressHandler.m +20 -22
- package/ios/Handlers/RNManualHandler.m +23 -8
- package/ios/Handlers/RNNativeViewHandler.mm +92 -88
- package/ios/Handlers/RNPanHandler.m +28 -32
- package/ios/Handlers/RNPinchHandler.m +9 -10
- package/ios/Handlers/RNRotationHandler.m +11 -14
- package/ios/Handlers/RNTapHandler.m +26 -26
- package/ios/RNGestureHandler.h +31 -24
- package/ios/RNGestureHandler.m +278 -273
- package/ios/RNGestureHandlerActionType.h +6 -4
- package/ios/RNGestureHandlerButton.m +11 -12
- package/ios/RNGestureHandlerButtonComponentView.mm +7 -8
- package/ios/RNGestureHandlerButtonManager.m +6 -5
- package/ios/RNGestureHandlerDirection.h +4 -4
- package/ios/RNGestureHandlerEvents.h +3 -4
- package/ios/RNGestureHandlerEvents.m +114 -119
- package/ios/RNGestureHandlerManager.h +1 -2
- package/ios/RNGestureHandlerManager.mm +176 -178
- package/ios/RNGestureHandlerModule.h +1 -2
- package/ios/RNGestureHandlerModule.mm +126 -122
- package/ios/RNGestureHandlerPointerTracker.h +1 -1
- package/ios/RNGestureHandlerPointerTracker.m +40 -37
- package/ios/RNGestureHandlerRegistry.h +3 -1
- package/ios/RNGestureHandlerRegistry.m +24 -22
- package/ios/RNGestureHandlerState.h +6 -6
- package/ios/RNGestureHandlerStateManager.h +1 -1
- package/ios/RNManualActivationRecognizer.m +9 -9
- package/ios/RNRootViewGestureRecognizer.m +36 -39
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.windows.js +156 -0
- package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -0
- package/lib/commonjs/components/DrawerLayout.js +1 -0
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/gestureHandlerRootHOC.js +2 -1
- package/lib/commonjs/gestureHandlerRootHOC.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.js +2 -2
- package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
- package/lib/commonjs/handlers/LongPressGestureHandler.js +3 -1
- package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/TapGestureHandler.js +3 -1
- package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +5 -2
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +4 -0
- package/lib/commonjs/handlers/gestures/GestureDetector.js +87 -38
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/longPressGesture.js +1 -0
- package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/tapGesture.js +1 -0
- package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
- package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +28 -3
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -2
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/ManualGestureHandler.js +15 -0
- package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -2
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -5
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -2
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/interfaces.js.map +1 -1
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/NodeManager.js +4 -1
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
- package/lib/commonjs/web_hammer/PanGestureHandler.js +25 -6
- package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.windows.js +117 -0
- package/lib/module/RNGestureHandlerModule.windows.js.map +1 -0
- package/lib/module/components/DrawerLayout.js +1 -0
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/gestureHandlerRootHOC.js +2 -1
- package/lib/module/gestureHandlerRootHOC.js.map +1 -1
- package/lib/module/getShadowNodeFromRef.js +2 -2
- package/lib/module/getShadowNodeFromRef.js.map +1 -1
- package/lib/module/handlers/LongPressGestureHandler.js +3 -1
- package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/handlers/TapGestureHandler.js +3 -1
- package/lib/module/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +5 -2
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestureHandlerTypesCompat.js +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +89 -39
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/longPressGesture.js +1 -0
- package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/module/handlers/gestures/tapGesture.js +1 -0
- package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
- package/lib/module/jestUtils/jestUtils.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +0 -1
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +28 -3
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js +0 -2
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/ManualGestureHandler.js +15 -0
- package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -2
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +0 -5
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PinchGestureHandler.js +0 -1
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/RotationGestureHandler.js +0 -1
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +0 -2
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/interfaces.js.map +1 -1
- package/lib/module/web/tools/InteractionManager.js.map +1 -1
- package/lib/module/web_hammer/GestureHandler.js.map +1 -1
- package/lib/module/web_hammer/NodeManager.js +4 -1
- package/lib/module/web_hammer/NodeManager.js.map +1 -1
- package/lib/module/web_hammer/PanGestureHandler.js +25 -6
- package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/typescript/RNGestureHandlerModule.macos.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.windows.d.ts +48 -0
- package/lib/typescript/components/DrawerLayout.d.ts +10 -1
- package/lib/typescript/components/Swipeable.d.ts +3 -2
- package/lib/typescript/fabric/RNGestureHandlerButtonNativeComponent.d.ts +1 -1
- package/lib/typescript/fabric/RNGestureHandlerRootViewNativeComponent.d.ts +1 -1
- package/lib/typescript/gestureHandlerRootHOC.d.ts +1 -1
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
- package/lib/typescript/handlers/PanGestureHandler.d.ts +1 -1
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +3 -1
- package/lib/typescript/handlers/gestures/GestureDetector.d.ts +3 -1
- package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +3 -1
- package/lib/typescript/web/interfaces.d.ts +3 -1
- package/lib/typescript/web/tools/NodeManager.d.ts +2 -2
- package/package.json +17 -14
- package/src/RNGestureHandlerModule.macos.ts +2 -2
- package/src/RNGestureHandlerModule.web.ts +2 -2
- package/src/RNGestureHandlerModule.windows.ts +140 -0
- package/src/components/DrawerLayout.tsx +22 -12
- package/src/components/Swipeable.tsx +16 -13
- package/src/components/touchables/TouchableOpacity.tsx +1 -1
- package/src/gestureHandlerRootHOC.tsx +4 -1
- package/src/getShadowNodeFromRef.ts +3 -3
- package/src/handlers/LongPressGestureHandler.ts +3 -1
- package/src/handlers/TapGestureHandler.ts +3 -1
- package/src/handlers/createHandler.tsx +13 -15
- package/src/handlers/gestureHandlerCommon.ts +9 -4
- package/src/handlers/gestureHandlerTypesCompat.ts +34 -17
- package/src/handlers/gestures/GestureDetector.tsx +117 -44
- package/src/handlers/gestures/eventReceiver.ts +2 -1
- package/src/handlers/gestures/gesture.ts +8 -12
- package/src/handlers/gestures/longPressGesture.ts +1 -0
- package/src/handlers/gestures/tapGesture.ts +1 -0
- package/src/jestUtils/jestUtils.ts +3 -4
- package/src/web/detectors/RotationGestureDetector.ts +2 -1
- package/src/web/handlers/FlingGestureHandler.ts +2 -3
- package/src/web/handlers/GestureHandler.ts +30 -11
- package/src/web/handlers/LongPressGestureHandler.ts +0 -3
- package/src/web/handlers/ManualGestureHandler.ts +10 -1
- package/src/web/handlers/NativeViewGestureHandler.ts +0 -2
- package/src/web/handlers/PanGestureHandler.ts +0 -6
- package/src/web/handlers/PinchGestureHandler.ts +0 -2
- package/src/web/handlers/RotationGestureHandler.ts +2 -5
- package/src/web/handlers/TapGestureHandler.ts +0 -3
- package/src/web/interfaces.ts +3 -0
- package/src/web/tools/InteractionManager.ts +2 -3
- package/src/web_hammer/GestureHandler.ts +6 -8
- package/src/web_hammer/NodeManager.ts +3 -1
- package/src/web_hammer/PanGestureHandler.ts +12 -6
- package/android/lib/build.gradle +0 -28
|
@@ -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
|
-
|