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.
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
@@ -1,27 +1,27 @@
1
1
  #import "RNGestureHandlerModule.h"
2
2
 
3
- #import <React/RCTLog.h>
4
- #import <React/RCTViewManager.h>
5
3
  #import <React/RCTComponent.h>
4
+ #import <React/RCTLog.h>
6
5
  #import <React/RCTUIManager.h>
7
- #import <React/RCTUIManagerUtils.h>
8
6
  #import <React/RCTUIManagerObserverCoordinator.h>
7
+ #import <React/RCTUIManagerUtils.h>
8
+ #import <React/RCTViewManager.h>
9
9
 
10
10
  #ifdef RN_FABRIC_ENABLED
11
- #import <React/RCTBridge.h>
12
- #import <ReactCommon/RCTTurboModule.h>
13
11
  #import <React/RCTBridge+Private.h>
14
- #import <ReactCommon/CallInvoker.h>
15
- #import <React/RCTUtils.h>
12
+ #import <React/RCTBridge.h>
16
13
  #import <React/RCTSurfacePresenter.h>
14
+ #import <React/RCTUtils.h>
15
+ #import <ReactCommon/CallInvoker.h>
16
+ #import <ReactCommon/RCTTurboModule.h>
17
17
 
18
18
  #import <react/renderer/uimanager/primitives.h>
19
19
  #endif // RN_FABRIC_ENABLED
20
20
 
21
- #import "RNGestureHandlerState.h"
22
- #import "RNGestureHandlerDirection.h"
23
21
  #import "RNGestureHandler.h"
22
+ #import "RNGestureHandlerDirection.h"
24
23
  #import "RNGestureHandlerManager.h"
24
+ #import "RNGestureHandlerState.h"
25
25
 
26
26
  #import "RNGestureHandlerButton.h"
27
27
  #import "RNGestureHandlerStateManager.h"
@@ -43,46 +43,45 @@ using namespace react;
43
43
 
44
44
  typedef void (^GestureHandlerOperation)(RNGestureHandlerManager *manager);
45
45
 
46
- @implementation RNGestureHandlerModule
47
- {
48
- RNGestureHandlerManager *_manager;
46
+ @implementation RNGestureHandlerModule {
47
+ RNGestureHandlerManager *_manager;
49
48
 
50
- // Oparations called after views have been updated.
51
- NSMutableArray<GestureHandlerOperation> *_operations;
49
+ // Oparations called after views have been updated.
50
+ NSMutableArray<GestureHandlerOperation> *_operations;
52
51
  }
53
52
 
54
53
  RCT_EXPORT_MODULE()
55
54
 
56
55
  + (BOOL)requiresMainQueueSetup
57
56
  {
58
- return YES;
57
+ return YES;
59
58
  }
60
59
 
61
60
  - (void)invalidate
62
61
  {
63
- RNGestureHandlerManager *handlerManager = _manager;
64
- dispatch_async(dispatch_get_main_queue(), ^{
65
- [handlerManager dropAllGestureHandlers];
66
- });
67
-
68
- _manager = nil;
69
-
62
+ RNGestureHandlerManager *handlerManager = _manager;
63
+ dispatch_async(dispatch_get_main_queue(), ^{
64
+ [handlerManager dropAllGestureHandlers];
65
+ });
66
+
67
+ _manager = nil;
68
+
70
69
  #ifdef RN_FABRIC_ENABLED
71
- [self.bridge.surfacePresenter removeObserver:self];
70
+ [self.bridge.surfacePresenter removeObserver:self];
72
71
  #else
73
- [self.bridge.uiManager.observerCoordinator removeObserver:self];
72
+ [self.bridge.uiManager.observerCoordinator removeObserver:self];
74
73
  #endif // RN_FABRIC_ENABLED
75
74
  }
76
75
 
77
76
  - (dispatch_queue_t)methodQueue
78
77
  {
79
- // This module needs to be on the same queue as the UIManager to avoid
80
- // having to lock `_operations` and `_preOperations` since `uiManagerWillFlushUIBlocks`
81
- // will be called from that queue.
78
+ // This module needs to be on the same queue as the UIManager to avoid
79
+ // having to lock `_operations` and `_preOperations` since `uiManagerWillFlushUIBlocks`
80
+ // will be called from that queue.
82
81
 
83
- // This is required as this module rely on having all the view nodes created before
84
- // gesture handlers can be associated with them
85
- return RCTGetUIManagerQueue();
82
+ // This is required as this module rely on having all the view nodes created before
83
+ // gesture handlers can be associated with them
84
+ return RCTGetUIManagerQueue();
86
85
  }
87
86
 
88
87
  #ifdef RN_FABRIC_ENABLED
@@ -92,13 +91,8 @@ void decorateRuntime(jsi::Runtime &runtime)
92
91
  runtime,
93
92
  jsi::PropNameID::forAscii(runtime, "isFormsStackingContext"),
94
93
  1,
95
- [](jsi::Runtime &runtime,
96
- const jsi::Value &thisValue,
97
- const jsi::Value *arguments,
98
- size_t count) -> jsi::Value
99
- {
100
- if (!arguments[0].isObject())
101
- {
94
+ [](jsi::Runtime &runtime, const jsi::Value &thisValue, const jsi::Value *arguments, size_t count) -> jsi::Value {
95
+ if (!arguments[0].isObject()) {
102
96
  return jsi::Value::null();
103
97
  }
104
98
 
@@ -113,85 +107,96 @@ void decorateRuntime(jsi::Runtime &runtime)
113
107
 
114
108
  - (void)setBridge:(RCTBridge *)bridge
115
109
  {
116
- [super setBridge:bridge];
110
+ [super setBridge:bridge];
117
111
 
118
- _manager = [[RNGestureHandlerManager alloc]
119
- initWithUIManager:bridge.uiManager
120
- eventDispatcher:bridge.eventDispatcher];
121
- _operations = [NSMutableArray new];
112
+ _manager = [[RNGestureHandlerManager alloc] initWithUIManager:bridge.uiManager
113
+ eventDispatcher:bridge.eventDispatcher];
114
+ _operations = [NSMutableArray new];
122
115
 
123
116
  #ifdef RN_FABRIC_ENABLED
124
- [bridge.surfacePresenter addObserver:self];
117
+ [bridge.surfacePresenter addObserver:self];
125
118
  #else
126
- [bridge.uiManager.observerCoordinator addObserver:self];
119
+ [bridge.uiManager.observerCoordinator addObserver:self];
127
120
  #endif // RN_FABRIC_ENABLED
128
121
  }
129
122
 
130
123
  #ifdef RN_FABRIC_ENABLED
131
- RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install) {
132
- RCTCxxBridge *cxxBridge = (RCTCxxBridge *)self.bridge;
133
- auto runtime = (jsi::Runtime *)cxxBridge.runtime;
134
- decorateRuntime(*runtime);
135
- return @true;
124
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install)
125
+ {
126
+ RCTCxxBridge *cxxBridge = (RCTCxxBridge *)self.bridge;
127
+ auto runtime = (jsi::Runtime *)cxxBridge.runtime;
128
+ decorateRuntime(*runtime);
129
+ return @true;
136
130
  }
137
131
  #endif // RN_FABRIC_ENABLED
138
132
 
139
- RCT_EXPORT_METHOD(createGestureHandler:(nonnull NSString *)handlerName tag:(nonnull NSNumber *)handlerTag config:(NSDictionary *)config)
133
+ RCT_EXPORT_METHOD(createGestureHandler
134
+ : (nonnull NSString *)handlerName tag
135
+ : (nonnull NSNumber *)handlerTag config
136
+ : (NSDictionary *)config)
140
137
  {
141
- [self addOperationBlock:^(RNGestureHandlerManager *manager) {
142
- [manager createGestureHandler:handlerName tag:handlerTag config:config];
143
- }];
138
+ [self addOperationBlock:^(RNGestureHandlerManager *manager) {
139
+ [manager createGestureHandler:handlerName tag:handlerTag config:config];
140
+ }];
144
141
  }
145
142
 
146
- RCT_EXPORT_METHOD(attachGestureHandler:(nonnull NSNumber *)handlerTag toViewWithTag:(nonnull NSNumber *)viewTag actionType:(nonnull NSNumber *)actionType)
143
+ RCT_EXPORT_METHOD(attachGestureHandler
144
+ : (nonnull NSNumber *)handlerTag toViewWithTag
145
+ : (nonnull NSNumber *)viewTag actionType
146
+ : (nonnull NSNumber *)actionType)
147
147
  {
148
- [self addOperationBlock:^(RNGestureHandlerManager *manager) {
149
- [manager attachGestureHandler:handlerTag toViewWithTag:viewTag withActionType:(RNGestureHandlerActionType)[actionType integerValue]];
150
- }];
148
+ [self addOperationBlock:^(RNGestureHandlerManager *manager) {
149
+ [manager attachGestureHandler:handlerTag
150
+ toViewWithTag:viewTag
151
+ withActionType:(RNGestureHandlerActionType)[actionType integerValue]];
152
+ }];
151
153
  }
152
154
 
153
- RCT_EXPORT_METHOD(updateGestureHandler:(nonnull NSNumber *)handlerTag config:(NSDictionary *)config)
155
+ RCT_EXPORT_METHOD(updateGestureHandler : (nonnull NSNumber *)handlerTag config : (NSDictionary *)config)
154
156
  {
155
- [self addOperationBlock:^(RNGestureHandlerManager *manager) {
156
- [manager updateGestureHandler:handlerTag config:config];
157
- }];
157
+ [self addOperationBlock:^(RNGestureHandlerManager *manager) {
158
+ [manager updateGestureHandler:handlerTag config:config];
159
+ }];
158
160
  }
159
161
 
160
- RCT_EXPORT_METHOD(dropGestureHandler:(nonnull NSNumber *)handlerTag)
162
+ RCT_EXPORT_METHOD(dropGestureHandler : (nonnull NSNumber *)handlerTag)
161
163
  {
162
- [self addOperationBlock:^(RNGestureHandlerManager *manager) {
163
- [manager dropGestureHandler:handlerTag];
164
- }];
164
+ [self addOperationBlock:^(RNGestureHandlerManager *manager) {
165
+ [manager dropGestureHandler:handlerTag];
166
+ }];
165
167
  }
166
168
 
167
- RCT_EXPORT_METHOD(handleSetJSResponder:(nonnull NSNumber *)viewTag blockNativeResponder:(nonnull NSNumber *)blockNativeResponder)
169
+ RCT_EXPORT_METHOD(handleSetJSResponder
170
+ : (nonnull NSNumber *)viewTag blockNativeResponder
171
+ : (nonnull NSNumber *)blockNativeResponder)
168
172
  {
169
- [self addOperationBlock:^(RNGestureHandlerManager *manager) {
170
- [manager handleSetJSResponder:viewTag blockNativeResponder:blockNativeResponder];
171
- }];
173
+ [self addOperationBlock:^(RNGestureHandlerManager *manager) {
174
+ [manager handleSetJSResponder:viewTag blockNativeResponder:blockNativeResponder];
175
+ }];
172
176
  }
173
177
 
174
178
  RCT_EXPORT_METHOD(handleClearJSResponder)
175
179
  {
176
- [self addOperationBlock:^(RNGestureHandlerManager *manager) {
177
- [manager handleClearJSResponder];
178
- }];
180
+ [self addOperationBlock:^(RNGestureHandlerManager *manager) {
181
+ [manager handleClearJSResponder];
182
+ }];
179
183
  }
180
184
 
181
185
  RCT_EXPORT_METHOD(flushOperations)
182
186
  {
183
- if (_operations.count == 0) {
184
- return;
185
- }
187
+ if (_operations.count == 0) {
188
+ return;
189
+ }
186
190
 
187
- NSArray<GestureHandlerOperation> *operations = _operations;
188
- _operations = [NSMutableArray new];
191
+ NSArray<GestureHandlerOperation> *operations = _operations;
192
+ _operations = [NSMutableArray new];
189
193
 
190
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *manager, __unused NSDictionary<NSNumber *, UIView *> *viewRegistry) {
194
+ [self.bridge.uiManager
195
+ addUIBlock:^(__unused RCTUIManager *manager, __unused NSDictionary<NSNumber *, UIView *> *viewRegistry) {
191
196
  for (GestureHandlerOperation operation in operations) {
192
- operation(self->_manager);
197
+ operation(self->_manager);
193
198
  }
194
- }];
199
+ }];
195
200
  }
196
201
 
197
202
  - (void)setGestureState:(int)state forHandler:(int)handlerTag
@@ -212,12 +217,12 @@ RCT_EXPORT_METHOD(flushOperations)
212
217
  handler.recognizer.state = UIGestureRecognizerStateEnded;
213
218
  }
214
219
  }
215
-
220
+
216
221
  // if the gesture was set to finish, cancel all pointers it was tracking
217
222
  if (state == 1 || state == 3 || state == 5) {
218
223
  [handler.pointerTracker cancelPointers];
219
224
  }
220
-
225
+
221
226
  // do not send state change event when activating because it bypasses
222
227
  // shouldRequireFailureOfGestureRecognizer
223
228
  if (state != 4) {
@@ -225,11 +230,11 @@ RCT_EXPORT_METHOD(flushOperations)
225
230
  }
226
231
  }
227
232
 
228
- #pragma mark -- Batch handling
233
+ #pragma mark-- Batch handling
229
234
 
230
235
  - (void)addOperationBlock:(GestureHandlerOperation)operation
231
236
  {
232
- [_operations addObject:operation];
237
+ [_operations addObject:operation];
233
238
  }
234
239
 
235
240
  #pragma mark - RCTSurfacePresenterObserver
@@ -238,18 +243,18 @@ RCT_EXPORT_METHOD(flushOperations)
238
243
 
239
244
  - (void)didMountComponentsWithRootTag:(NSInteger)rootTag
240
245
  {
241
- RCTAssertMainQueue();
242
-
243
- if (_operations.count == 0) {
244
- return;
245
- }
246
+ RCTAssertMainQueue();
246
247
 
247
- NSArray<GestureHandlerOperation> *operations = _operations;
248
- _operations = [NSMutableArray new];
248
+ if (_operations.count == 0) {
249
+ return;
250
+ }
249
251
 
250
- for (GestureHandlerOperation operation in operations) {
251
- operation(self->_manager);
252
- }
252
+ NSArray<GestureHandlerOperation> *operations = _operations;
253
+ _operations = [NSMutableArray new];
254
+
255
+ for (GestureHandlerOperation operation in operations) {
256
+ operation(self->_manager);
257
+ }
253
258
  }
254
259
 
255
260
  #else
@@ -263,18 +268,18 @@ RCT_EXPORT_METHOD(flushOperations)
263
268
 
264
269
  - (void)uiManagerWillPerformMounting:(RCTUIManager *)uiManager
265
270
  {
266
- if (_operations.count == 0) {
267
- return;
268
- }
271
+ if (_operations.count == 0) {
272
+ return;
273
+ }
269
274
 
270
- NSArray<GestureHandlerOperation> *operations = _operations;
271
- _operations = [NSMutableArray new];
275
+ NSArray<GestureHandlerOperation> *operations = _operations;
276
+ _operations = [NSMutableArray new];
272
277
 
273
- [uiManager addUIBlock:^(__unused RCTUIManager *manager, __unused NSDictionary<NSNumber *, UIView *> *viewRegistry) {
274
- for (GestureHandlerOperation operation in operations) {
275
- operation(self->_manager);
276
- }
277
- }];
278
+ [uiManager addUIBlock:^(__unused RCTUIManager *manager, __unused NSDictionary<NSNumber *, UIView *> *viewRegistry) {
279
+ for (GestureHandlerOperation operation in operations) {
280
+ operation(self->_manager);
281
+ }
282
+ }];
278
283
  }
279
284
 
280
285
  #endif // RN_FABRIC_ENABLED
@@ -283,30 +288,29 @@ RCT_EXPORT_METHOD(flushOperations)
283
288
 
284
289
  - (NSArray<NSString *> *)supportedEvents
285
290
  {
286
- return @[@"onGestureHandlerEvent", @"onGestureHandlerStateChange"];
291
+ return @[ @"onGestureHandlerEvent", @"onGestureHandlerStateChange" ];
287
292
  }
288
293
 
289
294
  #pragma mark Module Constants
290
295
 
291
296
  - (NSDictionary *)constantsToExport
292
297
  {
293
- return @{ @"State": @{
294
- @"UNDETERMINED": @(RNGestureHandlerStateUndetermined),
295
- @"BEGAN": @(RNGestureHandlerStateBegan),
296
- @"ACTIVE": @(RNGestureHandlerStateActive),
297
- @"CANCELLED": @(RNGestureHandlerStateCancelled),
298
- @"FAILED": @(RNGestureHandlerStateFailed),
299
- @"END": @(RNGestureHandlerStateEnd)
300
- },
301
- @"Direction": @{
302
- @"RIGHT": @(RNGestureHandlerDirectionRight),
303
- @"LEFT": @(RNGestureHandlerDirectionLeft),
304
- @"UP": @(RNGestureHandlerDirectionUp),
305
- @"DOWN": @(RNGestureHandlerDirectionDown)
306
- }
307
- };
298
+ return @{
299
+ @"State" : @{
300
+ @"UNDETERMINED" : @(RNGestureHandlerStateUndetermined),
301
+ @"BEGAN" : @(RNGestureHandlerStateBegan),
302
+ @"ACTIVE" : @(RNGestureHandlerStateActive),
303
+ @"CANCELLED" : @(RNGestureHandlerStateCancelled),
304
+ @"FAILED" : @(RNGestureHandlerStateFailed),
305
+ @"END" : @(RNGestureHandlerStateEnd)
306
+ },
307
+ @"Direction" : @{
308
+ @"RIGHT" : @(RNGestureHandlerDirectionRight),
309
+ @"LEFT" : @(RNGestureHandlerDirectionLeft),
310
+ @"UP" : @(RNGestureHandlerDirectionUp),
311
+ @"DOWN" : @(RNGestureHandlerDirectionDown)
312
+ }
313
+ };
308
314
  }
309
315
 
310
-
311
-
312
316
  @end
@@ -13,7 +13,7 @@
13
13
  @property (nonatomic) NSArray<NSDictionary *> *allPointersData;
14
14
  @property (nonatomic) int trackedPointersCount;
15
15
 
16
- - (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
16
+ - (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
17
17
 
18
18
  - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;
19
19
  - (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;
@@ -15,11 +15,11 @@
15
15
  _trackedPointersCount = 0;
16
16
  _changedPointersData = nil;
17
17
  _allPointersData = nil;
18
-
18
+
19
19
  for (int i = 0; i < MAX_POINTERS_COUNT; i++) {
20
20
  _trackedPointers[i] = nil;
21
21
  }
22
-
22
+
23
23
  return self;
24
24
  }
25
25
 
@@ -31,7 +31,7 @@
31
31
  return index;
32
32
  }
33
33
  }
34
-
34
+
35
35
  return -1;
36
36
  }
37
37
 
@@ -43,7 +43,7 @@
43
43
  return index;
44
44
  }
45
45
  }
46
-
46
+
47
47
  return -1;
48
48
  }
49
49
 
@@ -68,32 +68,34 @@
68
68
  return count;
69
69
  }
70
70
 
71
- - (NSDictionary *)extractPointerData:(int)index
72
- forTouch:(UITouch *)touch
71
+ - (NSDictionary *)extractPointerData:(int)index forTouch:(UITouch *)touch
73
72
  {
74
73
  CGPoint relativePos = [touch locationInView:_gestureHandler.recognizer.view];
75
74
  CGPoint absolutePos = [touch locationInView:_gestureHandler.recognizer.view.window];
76
-
77
- return @{@"id": @(index),
78
- @"x": @(relativePos.x),
79
- @"y": @(relativePos.y),
80
- @"absoluteX": @(absolutePos.x),
81
- @"absoluteY": @(absolutePos.y)};
75
+
76
+ return @{
77
+ @"id" : @(index),
78
+ @"x" : @(relativePos.x),
79
+ @"y" : @(relativePos.y),
80
+ @"absoluteX" : @(absolutePos.x),
81
+ @"absoluteY" : @(absolutePos.y)
82
+ };
82
83
  }
83
84
 
84
- - (void)extractAllTouches {
85
+ - (void)extractAllTouches
86
+ {
85
87
  int registeredTouches = [self registeredTouchesCount];
86
88
 
87
89
  NSDictionary *data[registeredTouches];
88
90
  int nextIndex = 0;
89
-
91
+
90
92
  for (int i = 0; i < MAX_POINTERS_COUNT; i++) {
91
93
  UITouch *touch = _trackedPointers[i];
92
94
  if (touch != nil) {
93
95
  data[nextIndex++] = [self extractPointerData:i forTouch:touch];
94
96
  }
95
97
  }
96
-
98
+
97
99
  _allPointersData = [[NSArray alloc] initWithObjects:data count:registeredTouches];
98
100
  }
99
101
 
@@ -102,11 +104,11 @@
102
104
  if (!_gestureHandler.needsPointerData) {
103
105
  return;
104
106
  }
105
-
107
+
106
108
  _eventType = RNGHTouchEventTypePointerDown;
107
-
109
+
108
110
  NSDictionary *data[touches.count];
109
-
111
+
110
112
  for (int i = 0; i < [touches count]; i++) {
111
113
  UITouch *touch = [[touches allObjects] objectAtIndex:i];
112
114
  int index = [self registerTouch:touch];
@@ -116,7 +118,7 @@
116
118
 
117
119
  data[i] = [self extractPointerData:index forTouch:touch];
118
120
  }
119
-
121
+
120
122
  _changedPointersData = [[NSArray alloc] initWithObjects:data count:[touches count]];
121
123
  // extract all touches last to include the ones that were just added
122
124
  [self extractAllTouches];
@@ -128,17 +130,17 @@
128
130
  if (!_gestureHandler.needsPointerData) {
129
131
  return;
130
132
  }
131
-
133
+
132
134
  _eventType = RNGHTouchEventTypePointerMove;
133
-
135
+
134
136
  NSDictionary *data[touches.count];
135
-
137
+
136
138
  for (int i = 0; i < [touches count]; i++) {
137
139
  UITouch *touch = [[touches allObjects] objectAtIndex:i];
138
140
  int index = [self findTouchIndex:touch];
139
141
  data[i] = [self extractPointerData:index forTouch:touch];
140
142
  }
141
-
143
+
142
144
  _changedPointersData = [[NSArray alloc] initWithObjects:data count:[touches count]];
143
145
  [self extractAllTouches];
144
146
  [self sendEvent];
@@ -149,14 +151,14 @@
149
151
  if (!_gestureHandler.needsPointerData) {
150
152
  return;
151
153
  }
152
-
154
+
153
155
  // extract all touches first to include the ones that were just lifted
154
156
  [self extractAllTouches];
155
-
157
+
156
158
  _eventType = RNGHTouchEventTypePointerUp;
157
-
159
+
158
160
  NSDictionary *data[touches.count];
159
-
161
+
160
162
  for (int i = 0; i < [touches count]; i++) {
161
163
  UITouch *touch = [[touches allObjects] objectAtIndex:i];
162
164
  int index = [self unregisterTouch:touch];
@@ -166,7 +168,7 @@
166
168
 
167
169
  data[i] = [self extractPointerData:index forTouch:touch];
168
170
  }
169
-
171
+
170
172
  _changedPointersData = [[NSArray alloc] initWithObjects:data count:[touches count]];
171
173
  [self sendEvent];
172
174
  }
@@ -176,7 +178,7 @@
176
178
  if (!_gestureHandler.needsPointerData) {
177
179
  return;
178
180
  }
179
-
181
+
180
182
  [self reset];
181
183
  }
182
184
 
@@ -185,7 +187,7 @@
185
187
  if (!_gestureHandler.needsPointerData) {
186
188
  return;
187
189
  }
188
-
190
+
189
191
  if (_trackedPointersCount == 0) {
190
192
  // gesture has finished because all pointers were lifted, reset event type to send state change event
191
193
  _eventType = RNGHTouchEventTypeUndetermined;
@@ -195,7 +197,7 @@
195
197
  // we need to clear the pointers and send info about their cancellation
196
198
  [self cancelPointers];
197
199
  }
198
-
200
+
199
201
  [_gestureHandler reset];
200
202
  }
201
203
 
@@ -203,13 +205,13 @@
203
205
  {
204
206
  // extract all touches first to include the ones that were just cancelled
205
207
  [self extractAllTouches];
206
-
208
+
207
209
  int registeredTouches = [self registeredTouchesCount];
208
-
210
+
209
211
  if (registeredTouches > 0) {
210
212
  int nextIndex = 0;
211
213
  NSDictionary *data[registeredTouches];
212
-
214
+
213
215
  for (int i = 0; i < MAX_POINTERS_COUNT; i++) {
214
216
  UITouch *touch = _trackedPointers[i];
215
217
  if (touch != nil) {
@@ -217,7 +219,7 @@
217
219
  [self unregisterTouch:touch];
218
220
  }
219
221
  }
220
-
222
+
221
223
  _eventType = RNGHTouchEventTypeCancelled;
222
224
  _changedPointersData = [[NSArray alloc] initWithObjects:data count:registeredTouches];
223
225
  [self sendEvent];
@@ -233,8 +235,9 @@
233
235
  if (!_gestureHandler.needsPointerData || _gestureHandler.recognizer.view.reactTag == nil) {
234
236
  return;
235
237
  }
236
-
237
- [_gestureHandler sendTouchEventInState:[_gestureHandler state] forViewWithTag:_gestureHandler.recognizer.view.reactTag];
238
+
239
+ [_gestureHandler sendTouchEventInState:[_gestureHandler state]
240
+ forViewWithTag:_gestureHandler.recognizer.view.reactTag];
238
241
  }
239
242
 
240
243
  @end
@@ -12,7 +12,9 @@
12
12
 
13
13
  - (nullable RNGestureHandler *)handlerWithTag:(nonnull NSNumber *)handlerTag;
14
14
  - (void)registerGestureHandler:(nonnull RNGestureHandler *)gestureHandler;
15
- - (void)attachHandlerWithTag:(nonnull NSNumber *)handlerTag toView:(nonnull UIView *)view withActionType:(RNGestureHandlerActionType)actionType;
15
+ - (void)attachHandlerWithTag:(nonnull NSNumber *)handlerTag
16
+ toView:(nonnull UIView *)view
17
+ withActionType:(RNGestureHandlerActionType)actionType;
16
18
  - (void)dropHandlerWithTag:(nonnull NSNumber *)handlerTag;
17
19
  - (void)dropAllHandlers;
18
20