react-native-gesture-handler 2.7.1 → 2.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
|