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
@@ -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