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.
Files changed (232) hide show
  1. package/RNGestureHandler.podspec +1 -1
  2. package/android/build.gradle +53 -46
  3. package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +3 -3
  4. package/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +7 -7
  5. package/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +2 -2
  6. package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +3 -3
  7. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/FlingGestureHandler.kt +12 -9
  8. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandler.kt +39 -31
  9. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerInteractionController.kt +1 -1
  10. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerOrchestrator.kt +28 -19
  11. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerRegistry.kt +1 -1
  12. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureUtils.kt +1 -1
  13. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/LongPressGestureHandler.kt +1 -1
  14. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ManualGestureHandler.kt +1 -1
  15. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/NativeViewGestureHandler.kt +5 -5
  16. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/OnTouchEventListener.kt +1 -1
  17. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PanGestureHandler.kt +7 -5
  18. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PinchGestureHandler.kt +11 -4
  19. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PointerEventsConfig.kt +1 -1
  20. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureDetector.kt +1 -1
  21. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureHandler.kt +7 -2
  22. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ScaleGestureDetector.java +1 -1
  23. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/TapGestureHandler.kt +3 -3
  24. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ViewConfigurationHelper.kt +1 -1
  25. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/react}/Extensions.kt +3 -3
  26. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +8 -6
  27. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +1 -5
  28. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +20 -8
  29. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +1 -1
  30. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +3 -3
  31. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +40 -15
  32. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +2 -2
  33. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +8 -6
  34. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +0 -2
  35. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +4 -2
  36. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +7 -7
  37. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +5 -5
  38. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +2 -2
  39. package/android/src/main/jni/CMakeLists.txt +10 -44
  40. package/android/src/main/jni/cpp-adapter.cpp +16 -13
  41. package/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +5 -5
  42. package/ios/Handlers/RNFlingHandler.m +39 -37
  43. package/ios/Handlers/RNForceTouchHandler.m +19 -17
  44. package/ios/Handlers/RNLongPressHandler.m +20 -22
  45. package/ios/Handlers/RNManualHandler.m +23 -8
  46. package/ios/Handlers/RNNativeViewHandler.mm +92 -88
  47. package/ios/Handlers/RNPanHandler.m +28 -32
  48. package/ios/Handlers/RNPinchHandler.m +9 -10
  49. package/ios/Handlers/RNRotationHandler.m +11 -14
  50. package/ios/Handlers/RNTapHandler.m +26 -26
  51. package/ios/RNGestureHandler.h +31 -24
  52. package/ios/RNGestureHandler.m +278 -273
  53. package/ios/RNGestureHandlerActionType.h +6 -4
  54. package/ios/RNGestureHandlerButton.m +11 -12
  55. package/ios/RNGestureHandlerButtonComponentView.mm +7 -8
  56. package/ios/RNGestureHandlerButtonManager.m +6 -5
  57. package/ios/RNGestureHandlerDirection.h +4 -4
  58. package/ios/RNGestureHandlerEvents.h +3 -4
  59. package/ios/RNGestureHandlerEvents.m +114 -119
  60. package/ios/RNGestureHandlerManager.h +1 -2
  61. package/ios/RNGestureHandlerManager.mm +176 -178
  62. package/ios/RNGestureHandlerModule.h +1 -2
  63. package/ios/RNGestureHandlerModule.mm +126 -122
  64. package/ios/RNGestureHandlerPointerTracker.h +1 -1
  65. package/ios/RNGestureHandlerPointerTracker.m +40 -37
  66. package/ios/RNGestureHandlerRegistry.h +3 -1
  67. package/ios/RNGestureHandlerRegistry.m +24 -22
  68. package/ios/RNGestureHandlerState.h +6 -6
  69. package/ios/RNGestureHandlerStateManager.h +1 -1
  70. package/ios/RNManualActivationRecognizer.m +9 -9
  71. package/ios/RNRootViewGestureRecognizer.m +36 -39
  72. package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
  73. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  74. package/lib/commonjs/RNGestureHandlerModule.windows.js +156 -0
  75. package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -0
  76. package/lib/commonjs/components/DrawerLayout.js +1 -0
  77. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  78. package/lib/commonjs/components/Swipeable.js.map +1 -1
  79. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  80. package/lib/commonjs/gestureHandlerRootHOC.js +2 -1
  81. package/lib/commonjs/gestureHandlerRootHOC.js.map +1 -1
  82. package/lib/commonjs/getShadowNodeFromRef.js +2 -2
  83. package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
  84. package/lib/commonjs/handlers/LongPressGestureHandler.js +3 -1
  85. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
  86. package/lib/commonjs/handlers/TapGestureHandler.js +3 -1
  87. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
  88. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  89. package/lib/commonjs/handlers/gestureHandlerCommon.js +5 -2
  90. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  91. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +4 -0
  92. package/lib/commonjs/handlers/gestures/GestureDetector.js +87 -38
  93. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  94. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
  95. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  96. package/lib/commonjs/handlers/gestures/longPressGesture.js +1 -0
  97. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
  98. package/lib/commonjs/handlers/gestures/tapGesture.js +1 -0
  99. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
  100. package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
  101. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  102. package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -1
  103. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  104. package/lib/commonjs/web/handlers/GestureHandler.js +28 -3
  105. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  106. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -2
  107. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
  108. package/lib/commonjs/web/handlers/ManualGestureHandler.js +15 -0
  109. package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
  110. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -2
  111. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  112. package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -5
  113. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  114. package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -1
  115. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
  116. package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -1
  117. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
  118. package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -2
  119. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  120. package/lib/commonjs/web/interfaces.js.map +1 -1
  121. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
  122. package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
  123. package/lib/commonjs/web_hammer/NodeManager.js +4 -1
  124. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
  125. package/lib/commonjs/web_hammer/PanGestureHandler.js +25 -6
  126. package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
  127. package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
  128. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  129. package/lib/module/RNGestureHandlerModule.windows.js +117 -0
  130. package/lib/module/RNGestureHandlerModule.windows.js.map +1 -0
  131. package/lib/module/components/DrawerLayout.js +1 -0
  132. package/lib/module/components/DrawerLayout.js.map +1 -1
  133. package/lib/module/components/Swipeable.js.map +1 -1
  134. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  135. package/lib/module/gestureHandlerRootHOC.js +2 -1
  136. package/lib/module/gestureHandlerRootHOC.js.map +1 -1
  137. package/lib/module/getShadowNodeFromRef.js +2 -2
  138. package/lib/module/getShadowNodeFromRef.js.map +1 -1
  139. package/lib/module/handlers/LongPressGestureHandler.js +3 -1
  140. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
  141. package/lib/module/handlers/TapGestureHandler.js +3 -1
  142. package/lib/module/handlers/TapGestureHandler.js.map +1 -1
  143. package/lib/module/handlers/createHandler.js.map +1 -1
  144. package/lib/module/handlers/gestureHandlerCommon.js +5 -2
  145. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  146. package/lib/module/handlers/gestureHandlerTypesCompat.js +1 -1
  147. package/lib/module/handlers/gestures/GestureDetector.js +89 -39
  148. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  149. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
  150. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  151. package/lib/module/handlers/gestures/longPressGesture.js +1 -0
  152. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
  153. package/lib/module/handlers/gestures/tapGesture.js +1 -0
  154. package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
  155. package/lib/module/jestUtils/jestUtils.js.map +1 -1
  156. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  157. package/lib/module/web/handlers/FlingGestureHandler.js +0 -1
  158. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  159. package/lib/module/web/handlers/GestureHandler.js +28 -3
  160. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  161. package/lib/module/web/handlers/LongPressGestureHandler.js +0 -2
  162. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
  163. package/lib/module/web/handlers/ManualGestureHandler.js +15 -0
  164. package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
  165. package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -2
  166. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  167. package/lib/module/web/handlers/PanGestureHandler.js +0 -5
  168. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  169. package/lib/module/web/handlers/PinchGestureHandler.js +0 -1
  170. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
  171. package/lib/module/web/handlers/RotationGestureHandler.js +0 -1
  172. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
  173. package/lib/module/web/handlers/TapGestureHandler.js +0 -2
  174. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  175. package/lib/module/web/interfaces.js.map +1 -1
  176. package/lib/module/web/tools/InteractionManager.js.map +1 -1
  177. package/lib/module/web_hammer/GestureHandler.js.map +1 -1
  178. package/lib/module/web_hammer/NodeManager.js +4 -1
  179. package/lib/module/web_hammer/NodeManager.js.map +1 -1
  180. package/lib/module/web_hammer/PanGestureHandler.js +25 -6
  181. package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
  182. package/lib/typescript/RNGestureHandlerModule.macos.d.ts +1 -1
  183. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
  184. package/lib/typescript/RNGestureHandlerModule.windows.d.ts +48 -0
  185. package/lib/typescript/components/DrawerLayout.d.ts +10 -1
  186. package/lib/typescript/components/Swipeable.d.ts +3 -2
  187. package/lib/typescript/fabric/RNGestureHandlerButtonNativeComponent.d.ts +1 -1
  188. package/lib/typescript/fabric/RNGestureHandlerRootViewNativeComponent.d.ts +1 -1
  189. package/lib/typescript/gestureHandlerRootHOC.d.ts +1 -1
  190. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
  191. package/lib/typescript/handlers/PanGestureHandler.d.ts +1 -1
  192. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +3 -1
  193. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +3 -1
  194. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +3 -1
  195. package/lib/typescript/web/interfaces.d.ts +3 -1
  196. package/lib/typescript/web/tools/NodeManager.d.ts +2 -2
  197. package/package.json +17 -14
  198. package/src/RNGestureHandlerModule.macos.ts +2 -2
  199. package/src/RNGestureHandlerModule.web.ts +2 -2
  200. package/src/RNGestureHandlerModule.windows.ts +140 -0
  201. package/src/components/DrawerLayout.tsx +22 -12
  202. package/src/components/Swipeable.tsx +16 -13
  203. package/src/components/touchables/TouchableOpacity.tsx +1 -1
  204. package/src/gestureHandlerRootHOC.tsx +4 -1
  205. package/src/getShadowNodeFromRef.ts +3 -3
  206. package/src/handlers/LongPressGestureHandler.ts +3 -1
  207. package/src/handlers/TapGestureHandler.ts +3 -1
  208. package/src/handlers/createHandler.tsx +13 -15
  209. package/src/handlers/gestureHandlerCommon.ts +9 -4
  210. package/src/handlers/gestureHandlerTypesCompat.ts +34 -17
  211. package/src/handlers/gestures/GestureDetector.tsx +117 -44
  212. package/src/handlers/gestures/eventReceiver.ts +2 -1
  213. package/src/handlers/gestures/gesture.ts +8 -12
  214. package/src/handlers/gestures/longPressGesture.ts +1 -0
  215. package/src/handlers/gestures/tapGesture.ts +1 -0
  216. package/src/jestUtils/jestUtils.ts +3 -4
  217. package/src/web/detectors/RotationGestureDetector.ts +2 -1
  218. package/src/web/handlers/FlingGestureHandler.ts +2 -3
  219. package/src/web/handlers/GestureHandler.ts +30 -11
  220. package/src/web/handlers/LongPressGestureHandler.ts +0 -3
  221. package/src/web/handlers/ManualGestureHandler.ts +10 -1
  222. package/src/web/handlers/NativeViewGestureHandler.ts +0 -2
  223. package/src/web/handlers/PanGestureHandler.ts +0 -6
  224. package/src/web/handlers/PinchGestureHandler.ts +0 -2
  225. package/src/web/handlers/RotationGestureHandler.ts +2 -5
  226. package/src/web/handlers/TapGestureHandler.ts +0 -3
  227. package/src/web/interfaces.ts +3 -0
  228. package/src/web/tools/InteractionManager.ts +2 -3
  229. package/src/web_hammer/GestureHandler.ts +6 -8
  230. package/src/web_hammer/NodeManager.ts +3 -1
  231. package/src/web_hammer/PanGestureHandler.ts +12 -6
  232. package/android/lib/build.gradle +0 -28
@@ -27,37 +27,37 @@
27
27
 
28
28
  - (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler
29
29
  {
30
- if ((self = [super initWithTarget:gestureHandler action:@selector(handleGesture:)])) {
31
- _gestureHandler = gestureHandler;
32
- }
33
- return self;
30
+ if ((self = [super initWithTarget:gestureHandler action:@selector(handleGesture:)])) {
31
+ _gestureHandler = gestureHandler;
32
+ }
33
+ return self;
34
34
  }
35
35
 
36
36
  - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
37
37
  {
38
- [_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
38
+ [_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
39
39
  }
40
40
 
41
41
  - (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
42
42
  {
43
- [_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
43
+ [_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
44
44
  }
45
45
 
46
46
  - (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
47
47
  {
48
- [_gestureHandler.pointerTracker touchesEnded:touches withEvent:event];
49
- self.state = UIGestureRecognizerStateFailed;
50
- [self reset];
48
+ [_gestureHandler.pointerTracker touchesEnded:touches withEvent:event];
49
+ self.state = UIGestureRecognizerStateFailed;
50
+ [self reset];
51
51
  }
52
52
 
53
53
  - (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
54
54
  {
55
- [_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
56
- self.state = UIGestureRecognizerStateCancelled;
57
- [self reset];
55
+ [_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
56
+ self.state = UIGestureRecognizerStateCancelled;
57
+ [self reset];
58
58
  }
59
59
 
60
- -(void)reset
60
+ - (void)reset
61
61
  {
62
62
  [_gestureHandler.pointerTracker reset];
63
63
  [super reset];
@@ -68,122 +68,126 @@
68
68
  #pragma mark RNNativeViewgestureHandler
69
69
 
70
70
  @implementation RNNativeViewGestureHandler {
71
- BOOL _shouldActivateOnStart;
72
- BOOL _disallowInterruption;
71
+ BOOL _shouldActivateOnStart;
72
+ BOOL _disallowInterruption;
73
73
  }
74
74
 
75
75
  - (instancetype)initWithTag:(NSNumber *)tag
76
76
  {
77
- if ((self = [super initWithTag:tag])) {
78
- _recognizer = [[RNDummyGestureRecognizer alloc] initWithGestureHandler:self];
79
- }
80
- return self;
77
+ if ((self = [super initWithTag:tag])) {
78
+ _recognizer = [[RNDummyGestureRecognizer alloc] initWithGestureHandler:self];
79
+ }
80
+ return self;
81
81
  }
82
82
 
83
83
  - (void)configure:(NSDictionary *)config
84
84
  {
85
- [super configure:config];
86
- _shouldActivateOnStart = [RCTConvert BOOL:config[@"shouldActivateOnStart"]];
87
- _disallowInterruption = [RCTConvert BOOL:config[@"disallowInterruption"]];
85
+ [super configure:config];
86
+ _shouldActivateOnStart = [RCTConvert BOOL:config[@"shouldActivateOnStart"]];
87
+ _disallowInterruption = [RCTConvert BOOL:config[@"disallowInterruption"]];
88
88
  }
89
89
 
90
90
  - (void)bindToView:(UIView *)view
91
91
  {
92
- // For UIControl based views (UIButton, UISwitch) we provide special handling that would allow
93
- // for properties like `disallowInterruption` to work.
94
- if ([view isKindOfClass:[UIControl class]]) {
95
- UIControl *control = (UIControl *)view;
96
- [control addTarget:self action:@selector(handleTouchDown:forEvent:) forControlEvents:UIControlEventTouchDown];
97
- [control addTarget:self action:@selector(handleTouchUpOutside:forEvent:) forControlEvents:UIControlEventTouchUpOutside];
98
- [control addTarget:self action:@selector(handleTouchUpInside:forEvent:) forControlEvents:UIControlEventTouchUpInside];
99
- [control addTarget:self action:@selector(handleDragExit:forEvent:) forControlEvents:UIControlEventTouchDragExit];
100
- [control addTarget:self action:@selector(handleDragEnter:forEvent:) forControlEvents:UIControlEventTouchDragEnter];
101
- [control addTarget:self action:@selector(handleTouchCancel:forEvent:) forControlEvents:UIControlEventTouchCancel];
102
- } else {
103
- [super bindToView:view];
104
- }
105
-
106
- // We can restore default scrollview behaviour to delay touches to scrollview's children
107
- // because gesture handler system can handle cancellation of scroll recognizer when JS responder
108
- // is set
92
+ // For UIControl based views (UIButton, UISwitch) we provide special handling that would allow
93
+ // for properties like `disallowInterruption` to work.
94
+ if ([view isKindOfClass:[UIControl class]]) {
95
+ UIControl *control = (UIControl *)view;
96
+ [control addTarget:self action:@selector(handleTouchDown:forEvent:) forControlEvents:UIControlEventTouchDown];
97
+ [control addTarget:self
98
+ action:@selector(handleTouchUpOutside:forEvent:)
99
+ forControlEvents:UIControlEventTouchUpOutside];
100
+ [control addTarget:self
101
+ action:@selector(handleTouchUpInside:forEvent:)
102
+ forControlEvents:UIControlEventTouchUpInside];
103
+ [control addTarget:self action:@selector(handleDragExit:forEvent:) forControlEvents:UIControlEventTouchDragExit];
104
+ [control addTarget:self action:@selector(handleDragEnter:forEvent:) forControlEvents:UIControlEventTouchDragEnter];
105
+ [control addTarget:self action:@selector(handleTouchCancel:forEvent:) forControlEvents:UIControlEventTouchCancel];
106
+ } else {
107
+ [super bindToView:view];
108
+ }
109
+
110
+ // We can restore default scrollview behaviour to delay touches to scrollview's children
111
+ // because gesture handler system can handle cancellation of scroll recognizer when JS responder
112
+ // is set
109
113
  #ifdef RN_FABRIC_ENABLED
110
- if ([view isKindOfClass:[RCTScrollViewComponentView class]]) {
111
- UIScrollView *scrollView = ((RCTScrollViewComponentView *)view).scrollView;
112
- scrollView.delaysContentTouches = YES;
113
- }
114
+ if ([view isKindOfClass:[RCTScrollViewComponentView class]]) {
115
+ UIScrollView *scrollView = ((RCTScrollViewComponentView *)view).scrollView;
116
+ scrollView.delaysContentTouches = YES;
117
+ }
114
118
  #else
115
- if ([view isKindOfClass:[RCTScrollView class]]) {
116
- // This part of the code is coupled with RN implementation of ScrollView native wrapper and
117
- // we expect for RCTScrollView component to contain a subclass of UIScrollview as the only
118
- // subview
119
- UIScrollView *scrollView = [view.subviews objectAtIndex:0];
120
- scrollView.delaysContentTouches = YES;
121
- }
119
+ if ([view isKindOfClass:[RCTScrollView class]]) {
120
+ // This part of the code is coupled with RN implementation of ScrollView native wrapper and
121
+ // we expect for RCTScrollView component to contain a subclass of UIScrollview as the only
122
+ // subview
123
+ UIScrollView *scrollView = [view.subviews objectAtIndex:0];
124
+ scrollView.delaysContentTouches = YES;
125
+ }
122
126
  #endif // RN_FABRIC_ENABLED
123
127
  }
124
128
 
125
129
  - (void)handleTouchDown:(UIView *)sender forEvent:(UIEvent *)event
126
130
  {
127
- [self reset];
128
-
129
- if (_disallowInterruption) {
130
- // When `disallowInterruption` is set we cancel all gesture handlers when this UIControl
131
- // gets DOWN event
132
- for (UITouch *touch in [event allTouches]) {
133
- for (UIGestureRecognizer *recogn in [touch gestureRecognizers]) {
134
- recogn.enabled = NO;
135
- recogn.enabled = YES;
136
- }
137
- }
131
+ [self reset];
132
+
133
+ if (_disallowInterruption) {
134
+ // When `disallowInterruption` is set we cancel all gesture handlers when this UIControl
135
+ // gets DOWN event
136
+ for (UITouch *touch in [event allTouches]) {
137
+ for (UIGestureRecognizer *recogn in [touch gestureRecognizers]) {
138
+ recogn.enabled = NO;
139
+ recogn.enabled = YES;
140
+ }
138
141
  }
142
+ }
139
143
 
140
- [self sendEventsInState:RNGestureHandlerStateActive
141
- forViewWithTag:sender.reactTag
142
- withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES]];
144
+ [self sendEventsInState:RNGestureHandlerStateActive
145
+ forViewWithTag:sender.reactTag
146
+ withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES]];
143
147
  }
144
148
 
145
149
  - (void)handleTouchUpOutside:(UIView *)sender forEvent:(UIEvent *)event
146
150
  {
147
- [self sendEventsInState:RNGestureHandlerStateEnd
148
- forViewWithTag:sender.reactTag
149
- withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
151
+ [self sendEventsInState:RNGestureHandlerStateEnd
152
+ forViewWithTag:sender.reactTag
153
+ withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
150
154
  }
151
155
 
152
156
  - (void)handleTouchUpInside:(UIView *)sender forEvent:(UIEvent *)event
153
157
  {
154
- [self sendEventsInState:RNGestureHandlerStateEnd
155
- forViewWithTag:sender.reactTag
156
- withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES]];
158
+ [self sendEventsInState:RNGestureHandlerStateEnd
159
+ forViewWithTag:sender.reactTag
160
+ withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES]];
157
161
  }
158
162
 
159
163
  - (void)handleDragExit:(UIView *)sender forEvent:(UIEvent *)event
160
164
  {
161
- // Pointer is moved outside of the view bounds, we cancel button when `shouldCancelWhenOutside` is set
162
- if (self.shouldCancelWhenOutside) {
163
- UIControl *control = (UIControl *)sender;
164
- [control cancelTrackingWithEvent:event];
165
- [self sendEventsInState:RNGestureHandlerStateEnd
166
- forViewWithTag:sender.reactTag
167
- withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
168
- } else {
169
- [self sendEventsInState:RNGestureHandlerStateActive
170
- forViewWithTag:sender.reactTag
171
- withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
172
- }
165
+ // Pointer is moved outside of the view bounds, we cancel button when `shouldCancelWhenOutside` is set
166
+ if (self.shouldCancelWhenOutside) {
167
+ UIControl *control = (UIControl *)sender;
168
+ [control cancelTrackingWithEvent:event];
169
+ [self sendEventsInState:RNGestureHandlerStateEnd
170
+ forViewWithTag:sender.reactTag
171
+ withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
172
+ } else {
173
+ [self sendEventsInState:RNGestureHandlerStateActive
174
+ forViewWithTag:sender.reactTag
175
+ withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
176
+ }
173
177
  }
174
178
 
175
179
  - (void)handleDragEnter:(UIView *)sender forEvent:(UIEvent *)event
176
180
  {
177
- [self sendEventsInState:RNGestureHandlerStateActive
178
- forViewWithTag:sender.reactTag
179
- withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES]];
181
+ [self sendEventsInState:RNGestureHandlerStateActive
182
+ forViewWithTag:sender.reactTag
183
+ withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES]];
180
184
  }
181
185
 
182
186
  - (void)handleTouchCancel:(UIView *)sender forEvent:(UIEvent *)event
183
187
  {
184
- [self sendEventsInState:RNGestureHandlerStateCancelled
185
- forViewWithTag:sender.reactTag
186
- withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
188
+ [self sendEventsInState:RNGestureHandlerStateCancelled
189
+ forViewWithTag:sender.reactTag
190
+ withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
187
191
  }
188
192
 
189
193
  @end
@@ -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
- ? UIGestureRecognizerStateFailed
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 && [self shouldActivateUnderCustomCriteria]) {
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
- || !isnan(_minVelocityX) || !isnan(_minVelocityY) || !isnan(_minVelocitySq)
165
- || !isnan(_activeOffsetXStart) || !isnan(_activeOffsetXEnd)
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) gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
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
- forPan:[recognizer locationInView:recognizer.view]
329
- withAbsolutePosition:[recognizer locationInView:recognizer.view.window]
330
- withTranslation:[recognizer translationInView:recognizer.view.window]
331
- withVelocity:[recognizer velocityInView:recognizer.view.window]
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
- if ((self = [super initWithTag:tag])) {
77
+ if ((self = [super initWithTag:tag])) {
78
78
  #if !TARGET_OS_TV
79
- _recognizer = [[RNBetterPinchRecognizer alloc] initWithGestureHandler:self];
79
+ _recognizer = [[RNBetterPinchRecognizer alloc] initWithGestureHandler:self];
80
80
  #endif
81
- }
82
- return self;
81
+ }
82
+ return self;
83
83
  }
84
84
 
85
85
  #if !TARGET_OS_TV
86
86
  - (RNGestureHandlerEventExtraData *)eventExtraData:(UIPinchGestureRecognizer *)recognizer
87
87
  {
88
- return [RNGestureHandlerEventExtraData
89
- forPinch:recognizer.scale
90
- withFocalPoint:[recognizer locationInView:recognizer.view]
91
- withVelocity:recognizer.velocity
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
- if ((self = [super initWithTag:tag])) {
77
- #if !TARGET_OS_TV
78
- _recognizer = [[RNBetterRotationRecognizer alloc] initWithGestureHandler:self];
79
- #endif
80
- }
81
- return self;
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
- return [RNGestureHandlerEventExtraData
88
- forRotation:recognizer.rotation
89
- withAnchorPoint:[recognizer locationInView:recognizer.view]
90
- withVelocity:recognizer.velocity
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
-