react-native-gesture-handler 2.8.0 → 2.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (285) hide show
  1. package/README.md +1 -0
  2. package/RNGestureHandler.podspec +2 -2
  3. package/android/build.gradle +107 -65
  4. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +1 -1
  5. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +2 -0
  6. package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +39 -0
  7. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +9 -2
  8. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +14 -2
  9. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +5 -1
  10. package/android/src/main/jni/CMakeLists.txt +10 -44
  11. package/android/src/main/jni/cpp-adapter.cpp +16 -13
  12. package/ios/Handlers/RNFlingHandler.m +39 -37
  13. package/ios/Handlers/RNForceTouchHandler.m +19 -17
  14. package/ios/Handlers/RNLongPressHandler.m +20 -22
  15. package/ios/Handlers/RNManualHandler.m +2 -3
  16. package/ios/Handlers/RNNativeViewHandler.mm +96 -92
  17. package/ios/Handlers/RNPanHandler.m +28 -32
  18. package/ios/Handlers/RNPinchHandler.m +9 -10
  19. package/ios/Handlers/RNRotationHandler.m +11 -14
  20. package/ios/Handlers/RNTapHandler.m +26 -26
  21. package/ios/RNGestureHandler.h +31 -24
  22. package/ios/RNGestureHandler.m +278 -273
  23. package/ios/RNGestureHandlerActionType.h +6 -4
  24. package/ios/RNGestureHandlerButton.m +11 -12
  25. package/ios/RNGestureHandlerButtonComponentView.h +2 -2
  26. package/ios/RNGestureHandlerButtonComponentView.mm +2 -2
  27. package/ios/RNGestureHandlerButtonManager.m +6 -5
  28. package/ios/RNGestureHandlerDirection.h +4 -4
  29. package/ios/RNGestureHandlerEvents.h +3 -4
  30. package/ios/RNGestureHandlerEvents.m +114 -119
  31. package/ios/RNGestureHandlerManager.h +1 -2
  32. package/ios/RNGestureHandlerManager.mm +9 -9
  33. package/ios/RNGestureHandlerModule.h +1 -2
  34. package/ios/RNGestureHandlerModule.mm +142 -138
  35. package/ios/RNGestureHandlerPointerTracker.h +1 -1
  36. package/ios/RNGestureHandlerPointerTracker.m +40 -37
  37. package/ios/RNGestureHandlerRegistry.h +3 -1
  38. package/ios/RNGestureHandlerRegistry.m +24 -22
  39. package/ios/RNGestureHandlerRootViewComponentView.mm +2 -2
  40. package/ios/RNGestureHandlerState.h +6 -6
  41. package/ios/RNGestureHandlerStateManager.h +1 -1
  42. package/ios/RNManualActivationRecognizer.m +9 -9
  43. package/ios/RNRootViewGestureRecognizer.m +39 -42
  44. package/lib/commonjs/EnableNewWebImplementation.js +35 -0
  45. package/lib/commonjs/EnableNewWebImplementation.js.map +1 -0
  46. package/lib/commonjs/GestureHandlerRootViewContext.js +15 -0
  47. package/lib/commonjs/GestureHandlerRootViewContext.js.map +1 -0
  48. package/lib/commonjs/RNGestureHandlerModule.macos.js +6 -6
  49. package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
  50. package/lib/commonjs/RNGestureHandlerModule.web.js +6 -6
  51. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  52. package/lib/commonjs/RNGestureHandlerModule.windows.js +6 -6
  53. package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -1
  54. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  55. package/lib/commonjs/components/GestureComponents.web.js +6 -5
  56. package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
  57. package/lib/commonjs/components/GestureHandlerButton.js +3 -5
  58. package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
  59. package/lib/commonjs/{GestureHandlerRootView.android.js → components/GestureHandlerRootView.android.js} +8 -7
  60. package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -0
  61. package/lib/commonjs/{GestureHandlerRootView.js → components/GestureHandlerRootView.js} +8 -2
  62. package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -0
  63. package/lib/commonjs/{GestureHandlerRootView.web.js → components/GestureHandlerRootView.web.js} +7 -1
  64. package/lib/commonjs/components/GestureHandlerRootView.web.js.map +1 -0
  65. package/lib/commonjs/components/Swipeable.js +17 -3
  66. package/lib/commonjs/components/Swipeable.js.map +1 -1
  67. package/lib/commonjs/{gestureHandlerRootHOC.js → components/gestureHandlerRootHOC.js} +2 -1
  68. package/lib/commonjs/components/gestureHandlerRootHOC.js.map +1 -0
  69. package/lib/commonjs/handlers/LongPressGestureHandler.js +3 -1
  70. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
  71. package/lib/commonjs/handlers/TapGestureHandler.js +3 -1
  72. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
  73. package/lib/commonjs/handlers/createHandler.js +21 -13
  74. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  75. package/lib/commonjs/handlers/gestureHandlerCommon.js +5 -4
  76. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  77. package/lib/commonjs/handlers/gestures/GestureDetector.js +89 -37
  78. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  79. package/lib/commonjs/handlers/gestures/longPressGesture.js +1 -0
  80. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
  81. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +22 -19
  82. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
  83. package/lib/commonjs/handlers/gestures/tapGesture.js +1 -0
  84. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
  85. package/lib/commonjs/index.js +16 -4
  86. package/lib/commonjs/index.js.map +1 -1
  87. package/lib/commonjs/utils.js +0 -6
  88. package/lib/commonjs/utils.js.map +1 -1
  89. package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -5
  90. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  91. package/lib/commonjs/web/handlers/GestureHandler.js +3 -0
  92. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  93. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -1
  94. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
  95. package/lib/commonjs/web/handlers/ManualGestureHandler.js +0 -5
  96. package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
  97. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -6
  98. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  99. package/lib/commonjs/web/handlers/PanGestureHandler.js +2 -12
  100. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  101. package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -5
  102. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
  103. package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -6
  104. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
  105. package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -7
  106. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  107. package/lib/commonjs/web/tools/CircularBuffer.js +59 -0
  108. package/lib/commonjs/web/tools/CircularBuffer.js.map +1 -0
  109. package/lib/commonjs/web/tools/LeastSquareSolver.js +204 -0
  110. package/lib/commonjs/web/tools/LeastSquareSolver.js.map +1 -0
  111. package/lib/commonjs/web/tools/PointerEventManager.js +27 -0
  112. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
  113. package/lib/commonjs/web/tools/PointerTracker.js +11 -7
  114. package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
  115. package/lib/commonjs/web/tools/VelocityTracker.js +111 -0
  116. package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -0
  117. package/lib/commonjs/web_hammer/GestureHandler.js +1 -1
  118. package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
  119. package/lib/module/EnableNewWebImplementation.js +22 -0
  120. package/lib/module/EnableNewWebImplementation.js.map +1 -0
  121. package/lib/module/GestureHandlerRootViewContext.js +3 -0
  122. package/lib/module/GestureHandlerRootViewContext.js.map +1 -0
  123. package/lib/module/RNGestureHandlerModule.macos.js +6 -6
  124. package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
  125. package/lib/module/RNGestureHandlerModule.web.js +6 -6
  126. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  127. package/lib/module/RNGestureHandlerModule.windows.js +6 -6
  128. package/lib/module/RNGestureHandlerModule.windows.js.map +1 -1
  129. package/lib/module/components/DrawerLayout.js.map +1 -1
  130. package/lib/module/components/GestureComponents.web.js +5 -6
  131. package/lib/module/components/GestureComponents.web.js.map +1 -1
  132. package/lib/module/components/GestureHandlerButton.js +1 -4
  133. package/lib/module/components/GestureHandlerButton.js.map +1 -1
  134. package/lib/module/components/GestureHandlerRootView.android.js +14 -0
  135. package/lib/module/components/GestureHandlerRootView.android.js.map +1 -0
  136. package/lib/module/{GestureHandlerRootView.js → components/GestureHandlerRootView.js} +5 -2
  137. package/lib/module/components/GestureHandlerRootView.js.map +1 -0
  138. package/lib/module/components/GestureHandlerRootView.web.js +9 -0
  139. package/lib/module/components/GestureHandlerRootView.web.js.map +1 -0
  140. package/lib/module/components/Swipeable.js +17 -3
  141. package/lib/module/components/Swipeable.js.map +1 -1
  142. package/lib/module/{gestureHandlerRootHOC.js → components/gestureHandlerRootHOC.js} +2 -1
  143. package/lib/module/components/gestureHandlerRootHOC.js.map +1 -0
  144. package/lib/module/handlers/LongPressGestureHandler.js +3 -1
  145. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
  146. package/lib/module/handlers/TapGestureHandler.js +3 -1
  147. package/lib/module/handlers/TapGestureHandler.js.map +1 -1
  148. package/lib/module/handlers/createHandler.js +20 -13
  149. package/lib/module/handlers/createHandler.js.map +1 -1
  150. package/lib/module/handlers/gestureHandlerCommon.js +5 -4
  151. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  152. package/lib/module/handlers/gestures/GestureDetector.js +89 -38
  153. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  154. package/lib/module/handlers/gestures/longPressGesture.js +1 -0
  155. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
  156. package/lib/module/handlers/gestures/reanimatedWrapper.js +19 -16
  157. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
  158. package/lib/module/handlers/gestures/tapGesture.js +1 -0
  159. package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
  160. package/lib/module/index.js +4 -4
  161. package/lib/module/index.js.map +1 -1
  162. package/lib/module/utils.js +0 -4
  163. package/lib/module/utils.js.map +1 -1
  164. package/lib/module/web/handlers/FlingGestureHandler.js +0 -5
  165. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  166. package/lib/module/web/handlers/GestureHandler.js +3 -0
  167. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  168. package/lib/module/web/handlers/LongPressGestureHandler.js +0 -1
  169. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
  170. package/lib/module/web/handlers/ManualGestureHandler.js +0 -5
  171. package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
  172. package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -6
  173. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  174. package/lib/module/web/handlers/PanGestureHandler.js +2 -9
  175. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  176. package/lib/module/web/handlers/PinchGestureHandler.js +0 -5
  177. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
  178. package/lib/module/web/handlers/RotationGestureHandler.js +0 -6
  179. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
  180. package/lib/module/web/handlers/TapGestureHandler.js +0 -7
  181. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  182. package/lib/module/web/tools/CircularBuffer.js +50 -0
  183. package/lib/module/web/tools/CircularBuffer.js.map +1 -0
  184. package/lib/module/web/tools/LeastSquareSolver.js +195 -0
  185. package/lib/module/web/tools/LeastSquareSolver.js.map +1 -0
  186. package/lib/module/web/tools/PointerEventManager.js +27 -0
  187. package/lib/module/web/tools/PointerEventManager.js.map +1 -1
  188. package/lib/module/web/tools/PointerTracker.js +8 -7
  189. package/lib/module/web/tools/PointerTracker.js.map +1 -1
  190. package/lib/module/web/tools/VelocityTracker.js +98 -0
  191. package/lib/module/web/tools/VelocityTracker.js.map +1 -0
  192. package/lib/module/web_hammer/GestureHandler.js +1 -1
  193. package/lib/module/web_hammer/GestureHandler.js.map +1 -1
  194. package/lib/typescript/EnableNewWebImplementation.d.ts +3 -0
  195. package/lib/typescript/GestureHandlerRootViewContext.d.ts +3 -0
  196. package/lib/typescript/components/DrawerLayout.d.ts +3 -1
  197. package/lib/typescript/components/GestureComponents.web.d.ts +1 -1
  198. package/lib/typescript/components/Swipeable.d.ts +14 -2
  199. package/lib/typescript/components/gestureHandlerRootHOC.d.ts +3 -0
  200. package/lib/typescript/index.d.ts +4 -4
  201. package/lib/typescript/{fabric → specs}/RNGestureHandlerButtonNativeComponent.d.ts +1 -1
  202. package/lib/typescript/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.d.ts +1 -1
  203. package/lib/typescript/utils.d.ts +0 -1
  204. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +0 -1
  205. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +0 -1
  206. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +0 -1
  207. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +0 -1
  208. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +0 -1
  209. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +0 -1
  210. package/lib/typescript/web/handlers/TapGestureHandler.d.ts +0 -1
  211. package/lib/typescript/web/tools/CircularBuffer.d.ts +11 -0
  212. package/lib/typescript/web/tools/LeastSquareSolver.d.ts +12 -0
  213. package/lib/typescript/web/tools/PointerEventManager.d.ts +2 -0
  214. package/lib/typescript/web/tools/PointerTracker.d.ts +1 -0
  215. package/lib/typescript/web/tools/VelocityTracker.d.ts +13 -0
  216. package/package.json +6 -7
  217. package/src/EnableNewWebImplementation.ts +35 -0
  218. package/src/GestureHandlerRootViewContext.ts +3 -0
  219. package/src/RNGestureHandlerModule.macos.ts +6 -6
  220. package/src/RNGestureHandlerModule.web.ts +6 -6
  221. package/src/RNGestureHandlerModule.windows.ts +6 -6
  222. package/src/components/DrawerLayout.tsx +8 -4
  223. package/src/components/GestureComponents.web.tsx +5 -6
  224. package/src/components/GestureHandlerButton.tsx +2 -7
  225. package/src/components/GestureHandlerRootView.android.tsx +24 -0
  226. package/src/{GestureHandlerRootView.tsx → components/GestureHandlerRootView.tsx} +7 -2
  227. package/src/{GestureHandlerRootView.web.tsx → components/GestureHandlerRootView.web.tsx} +6 -1
  228. package/src/components/Swipeable.tsx +43 -12
  229. package/src/{gestureHandlerRootHOC.tsx → components/gestureHandlerRootHOC.tsx} +4 -1
  230. package/src/handlers/LongPressGestureHandler.ts +3 -1
  231. package/src/handlers/TapGestureHandler.ts +3 -1
  232. package/src/handlers/createHandler.tsx +20 -9
  233. package/src/handlers/gestureHandlerCommon.ts +5 -6
  234. package/src/handlers/gestures/GestureDetector.tsx +99 -36
  235. package/src/handlers/gestures/longPressGesture.ts +1 -0
  236. package/src/handlers/gestures/reanimatedWrapper.ts +21 -20
  237. package/src/handlers/gestures/tapGesture.ts +1 -0
  238. package/src/index.ts +7 -3
  239. package/src/utils.ts +0 -5
  240. package/src/web/handlers/FlingGestureHandler.ts +0 -5
  241. package/src/web/handlers/GestureHandler.ts +3 -0
  242. package/src/web/handlers/LongPressGestureHandler.ts +0 -1
  243. package/src/web/handlers/ManualGestureHandler.ts +0 -5
  244. package/src/web/handlers/NativeViewGestureHandler.ts +0 -6
  245. package/src/web/handlers/PanGestureHandler.ts +2 -9
  246. package/src/web/handlers/PinchGestureHandler.ts +0 -5
  247. package/src/web/handlers/RotationGestureHandler.ts +0 -7
  248. package/src/web/handlers/TapGestureHandler.ts +0 -7
  249. package/src/web/tools/CircularBuffer.ts +42 -0
  250. package/src/web/tools/LeastSquareSolver.ts +182 -0
  251. package/src/web/tools/PointerEventManager.ts +29 -0
  252. package/src/web/tools/PointerTracker.ts +7 -7
  253. package/src/web/tools/VelocityTracker.ts +98 -0
  254. package/src/web_hammer/GestureHandler.ts +1 -1
  255. package/lib/commonjs/EnableExperimentalWebImplementation.js +0 -31
  256. package/lib/commonjs/EnableExperimentalWebImplementation.js.map +0 -1
  257. package/lib/commonjs/GestureHandlerRootView.android.js.map +0 -1
  258. package/lib/commonjs/GestureHandlerRootView.js.map +0 -1
  259. package/lib/commonjs/GestureHandlerRootView.web.js.map +0 -1
  260. package/lib/commonjs/gestureHandlerRootHOC.js.map +0 -1
  261. package/lib/module/EnableExperimentalWebImplementation.js +0 -20
  262. package/lib/module/EnableExperimentalWebImplementation.js.map +0 -1
  263. package/lib/module/GestureHandlerRootView.android.js +0 -14
  264. package/lib/module/GestureHandlerRootView.android.js.map +0 -1
  265. package/lib/module/GestureHandlerRootView.js.map +0 -1
  266. package/lib/module/GestureHandlerRootView.web.js +0 -6
  267. package/lib/module/GestureHandlerRootView.web.js.map +0 -1
  268. package/lib/module/gestureHandlerRootHOC.js.map +0 -1
  269. package/lib/typescript/EnableExperimentalWebImplementation.d.ts +0 -2
  270. package/lib/typescript/gestureHandlerRootHOC.d.ts +0 -3
  271. package/src/EnableExperimentalWebImplementation.ts +0 -27
  272. package/src/GestureHandlerRootView.android.tsx +0 -24
  273. /package/lib/commonjs/{fabric → specs}/RNGestureHandlerButtonNativeComponent.js +0 -0
  274. /package/lib/commonjs/{fabric → specs}/RNGestureHandlerButtonNativeComponent.js.map +0 -0
  275. /package/lib/commonjs/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.js +0 -0
  276. /package/lib/commonjs/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.js.map +0 -0
  277. /package/lib/module/{fabric → specs}/RNGestureHandlerButtonNativeComponent.js +0 -0
  278. /package/lib/module/{fabric → specs}/RNGestureHandlerButtonNativeComponent.js.map +0 -0
  279. /package/lib/module/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.js +0 -0
  280. /package/lib/module/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.js.map +0 -0
  281. /package/lib/typescript/{GestureHandlerRootView.android.d.ts → components/GestureHandlerRootView.android.d.ts} +0 -0
  282. /package/lib/typescript/{GestureHandlerRootView.d.ts → components/GestureHandlerRootView.d.ts} +0 -0
  283. /package/lib/typescript/{GestureHandlerRootView.web.d.ts → components/GestureHandlerRootView.web.d.ts} +0 -0
  284. /package/src/{fabric → specs}/RNGestureHandlerButtonNativeComponent.ts +0 -0
  285. /package/src/{fabric → specs}/RNGestureHandlerRootViewNativeComponent.ts +0 -0
@@ -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
-
@@ -12,8 +12,8 @@
12
12
 
13
13
  #import <React/RCTConvert.h>
14
14
 
15
- // RNBetterTapGestureRecognizer extends UIGestureRecognizer instead of UITapGestureRecognizer
16
- // because the latter does not allow for parameters like maxDelay, maxDuration, minPointers,
15
+ // RNBetterTapGestureRecognizer extends UIGestureRecognizer instead of UITapGestureRecognizer
16
+ // because the latter does not allow for parameters like maxDelay, maxDuration, minPointers,
17
17
  // maxDelta to be configured. Using our custom implementation of tap recognizer we are able
18
18
  // to support these.
19
19
 
@@ -27,7 +27,7 @@
27
27
  @property (nonatomic) CGFloat maxDeltaY;
28
28
  @property (nonatomic) NSInteger minPointers;
29
29
 
30
- - (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
30
+ - (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
31
31
 
32
32
  @end
33
33
 
@@ -43,7 +43,7 @@ static const NSInteger defaultMinPointers = 1;
43
43
  static const CGFloat defaultMaxDelay = 0.2;
44
44
  static const NSTimeInterval defaultMaxDuration = 0.5;
45
45
 
46
- - (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler
46
+ - (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler
47
47
  {
48
48
  if ((self = [super initWithTarget:gestureHandler action:@selector(handleGesture:)])) {
49
49
  _gestureHandler = gestureHandler;
@@ -73,7 +73,7 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
73
73
  {
74
74
  [super touchesBegan:touches withEvent:event];
75
75
  [_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
76
-
76
+
77
77
  if (_tapsSoFar == 0) {
78
78
  // this recognizer sends UNDETERMINED -> BEGAN state change event before gestureRecognizerShouldBegin
79
79
  // is called (it resets the gesture handler), making it send whatever the last known state as oldState
@@ -100,28 +100,29 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
100
100
  {
101
101
  [super touchesMoved:touches withEvent:event];
102
102
  [_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
103
-
103
+
104
104
  NSInteger numberOfTouches = [touches count];
105
105
  if (numberOfTouches > _maxNumberOfTouches) {
106
106
  _maxNumberOfTouches = numberOfTouches;
107
107
  }
108
-
108
+
109
109
  if (self.state != UIGestureRecognizerStatePossible) {
110
110
  return;
111
111
  }
112
-
112
+
113
113
  if ([self shouldFailUnderCustomCriteria]) {
114
114
  self.state = UIGestureRecognizerStateFailed;
115
115
  [self triggerAction];
116
116
  [self reset];
117
117
  return;
118
118
  }
119
-
119
+
120
120
  self.state = UIGestureRecognizerStatePossible;
121
121
  [self triggerAction];
122
122
  }
123
123
 
124
- - (CGPoint)translationInView {
124
+ - (CGPoint)translationInView
125
+ {
125
126
  CGPoint currentPosition = [self locationInView:self.view.window];
126
127
  return CGPointMake(currentPosition.x - _initPosition.x, currentPosition.y - _initPosition.y);
127
128
  }
@@ -133,7 +134,7 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
133
134
  return YES;
134
135
  }
135
136
  }
136
-
137
+
137
138
  CGPoint trans = [self translationInView];
138
139
  if (TEST_MAX_IF_NOT_NAN(fabs(trans.x), _maxDeltaX)) {
139
140
  return YES;
@@ -151,7 +152,7 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
151
152
  {
152
153
  [super touchesEnded:touches withEvent:event];
153
154
  [_gestureHandler.pointerTracker touchesEnded:touches withEvent:event];
154
-
155
+
155
156
  if (_numberOfTaps == _tapsSoFar && _maxNumberOfTouches >= _minPointers) {
156
157
  self.state = UIGestureRecognizerStateEnded;
157
158
  [self reset];
@@ -164,7 +165,7 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
164
165
  {
165
166
  [super touchesCancelled:touches withEvent:event];
166
167
  [_gestureHandler.pointerTracker touchesCancelled:touches withEvent:event];
167
-
168
+
168
169
  self.state = UIGestureRecognizerStateCancelled;
169
170
  [self reset];
170
171
  }
@@ -186,7 +187,7 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
186
187
  @end
187
188
 
188
189
  @implementation RNTapGestureHandler {
189
- RNGestureHandlerEventExtraData * _lastData;
190
+ RNGestureHandlerEventExtraData *_lastData;
190
191
  }
191
192
 
192
193
  - (instancetype)initWithTag:(NSNumber *)tag
@@ -201,7 +202,7 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
201
202
  {
202
203
  [super resetConfig];
203
204
  RNBetterTapGestureRecognizer *recognizer = (RNBetterTapGestureRecognizer *)_recognizer;
204
-
205
+
205
206
  recognizer.numberOfTaps = defaultNumberOfTaps;
206
207
  recognizer.minPointers = defaultMinPointers;
207
208
  recognizer.maxDeltaX = NAN;
@@ -215,22 +216,22 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
215
216
  {
216
217
  [super configure:config];
217
218
  RNBetterTapGestureRecognizer *recognizer = (RNBetterTapGestureRecognizer *)_recognizer;
218
-
219
+
219
220
  APPLY_INT_PROP(numberOfTaps);
220
221
  APPLY_INT_PROP(minPointers);
221
222
  APPLY_FLOAT_PROP(maxDeltaX);
222
223
  APPLY_FLOAT_PROP(maxDeltaY);
223
-
224
+
224
225
  id prop = config[@"maxDelayMs"];
225
226
  if (prop != nil) {
226
227
  recognizer.maxDelay = [RCTConvert CGFloat:prop] / 1000.0;
227
228
  }
228
-
229
+
229
230
  prop = config[@"maxDurationMs"];
230
231
  if (prop != nil) {
231
232
  recognizer.maxDuration = [RCTConvert CGFloat:prop] / 1000.0;
232
233
  }
233
-
234
+
234
235
  prop = config[@"maxDist"];
235
236
  if (prop != nil) {
236
237
  CGFloat dist = [RCTConvert CGFloat:prop];
@@ -240,12 +241,12 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
240
241
 
241
242
  - (RNGestureHandlerEventExtraData *)eventExtraData:(UIGestureRecognizer *)recognizer
242
243
  {
243
- if (recognizer.state == UIGestureRecognizerStateEnded) {
244
- return _lastData;
245
- }
246
-
247
- _lastData = [super eventExtraData:recognizer];
244
+ if (recognizer.state == UIGestureRecognizerStateEnded) {
248
245
  return _lastData;
246
+ }
247
+
248
+ _lastData = [super eventExtraData:recognizer];
249
+ return _lastData;
249
250
  }
250
251
 
251
252
  - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
@@ -257,9 +258,8 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
257
258
  RNGestureHandlerState savedState = _lastState;
258
259
  BOOL shouldBegin = [super gestureRecognizerShouldBegin:gestureRecognizer];
259
260
  _lastState = savedState;
260
-
261
+
261
262
  return shouldBegin;
262
263
  }
263
264
 
264
265
  @end
265
-
@@ -1,28 +1,39 @@
1
1
  #import "RNGestureHandlerActionType.h"
2
- #import "RNGestureHandlerState.h"
3
2
  #import "RNGestureHandlerDirection.h"
4
3
  #import "RNGestureHandlerEvents.h"
5
4
  #import "RNGestureHandlerPointerTracker.h"
5
+ #import "RNGestureHandlerState.h"
6
6
 
7
7
  #import <Foundation/Foundation.h>
8
- #import <UIKit/UIKit.h>
9
8
  #import <React/RCTConvert.h>
9
+ #import <UIKit/UIKit.h>
10
10
 
11
11
  #define VEC_LEN_SQ(pt) (pt.x * pt.x + pt.y * pt.y)
12
12
  #define TEST_MIN_IF_NOT_NAN(value, limit) \
13
- (!isnan(limit) && ((limit < 0 && value <= limit) || (limit >= 0 && value >= limit)))
14
-
15
- #define TEST_MAX_IF_NOT_NAN(value, max) \
16
- (!isnan(max) && ((max < 0 && value < max) || (max >= 0 && value > max)))
17
-
18
- #define APPLY_PROP(recognizer, config, type, prop, propName) do { \
19
- id value = config[propName]; \
20
- if (value != nil) { recognizer.prop = [RCTConvert type:value]; }\
21
- } while(0)
22
-
23
- #define APPLY_FLOAT_PROP(prop) do { APPLY_PROP(recognizer, config, CGFloat, prop, @#prop); } while(0)
24
- #define APPLY_INT_PROP(prop) do { APPLY_PROP(recognizer, config, NSInteger, prop, @#prop); } while(0)
25
- #define APPLY_NAMED_INT_PROP(prop, propName) do { APPLY_PROP(recognizer, config, NSInteger, prop, propName); } while(0)
13
+ (!isnan(limit) && ((limit < 0 && value <= limit) || (limit >= 0 && value >= limit)))
14
+
15
+ #define TEST_MAX_IF_NOT_NAN(value, max) (!isnan(max) && ((max < 0 && value < max) || (max >= 0 && value > max)))
16
+
17
+ #define APPLY_PROP(recognizer, config, type, prop, propName) \
18
+ do { \
19
+ id value = config[propName]; \
20
+ if (value != nil) { \
21
+ recognizer.prop = [RCTConvert type:value]; \
22
+ } \
23
+ } while (0)
24
+
25
+ #define APPLY_FLOAT_PROP(prop) \
26
+ do { \
27
+ APPLY_PROP(recognizer, config, CGFloat, prop, @ #prop); \
28
+ } while (0)
29
+ #define APPLY_INT_PROP(prop) \
30
+ do { \
31
+ APPLY_PROP(recognizer, config, NSInteger, prop, @ #prop); \
32
+ } while (0)
33
+ #define APPLY_NAMED_INT_PROP(prop, propName) \
34
+ do { \
35
+ APPLY_PROP(recognizer, config, NSInteger, prop, propName); \
36
+ } while (0)
26
37
 
27
38
  @protocol RNGestureHandlerEventEmitter
28
39
 
@@ -30,7 +41,6 @@ if (value != nil) { recognizer.prop = [RCTConvert type:value]; }\
30
41
 
31
42
  @end
32
43
 
33
-
34
44
  @protocol RNRootViewGestureRecognizerDelegate <UIGestureRecognizerDelegate>
35
45
 
36
46
  - (void)gestureRecognizer:(nullable UIGestureRecognizer *)gestureRecognizer
@@ -38,12 +48,11 @@ if (value != nil) { recognizer.prop = [RCTConvert type:value]; }\
38
48
 
39
49
  @end
40
50
 
41
-
42
51
  @interface RNGestureHandler : NSObject <UIGestureRecognizerDelegate> {
43
-
44
- @protected UIGestureRecognizer *_recognizer;
45
- @protected RNGestureHandlerState _lastState;
46
-
52
+ @protected
53
+ UIGestureRecognizer *_recognizer;
54
+ @protected
55
+ RNGestureHandlerState _lastState;
47
56
  }
48
57
 
49
58
  + (nullable RNGestureHandler *)findGestureHandlerByRecognizer:(nonnull UIGestureRecognizer *)recognizer;
@@ -76,8 +85,6 @@ if (value != nil) { recognizer.prop = [RCTConvert type:value]; }\
76
85
  forViewWithTag:(nonnull NSNumber *)reactTag
77
86
  withExtraData:(nonnull RNGestureHandlerEventExtraData *)extraData;
78
87
  - (void)sendEvent:(nonnull RNGestureHandlerStateChange *)event;
79
- - (void)sendTouchEventInState:(RNGestureHandlerState)state
80
- forViewWithTag:(nonnull NSNumber *)reactTag;
88
+ - (void)sendTouchEventInState:(RNGestureHandlerState)state forViewWithTag:(nonnull NSNumber *)reactTag;
81
89
 
82
90
  @end
83
-