react-native-gesture-handler 2.5.0 → 2.6.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 (313) hide show
  1. package/README.md +1 -0
  2. package/RNGestureHandler.podspec +17 -5
  3. package/android/build.gradle +71 -15
  4. package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +2 -1
  5. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +30 -9
  6. package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +5 -2
  7. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +2 -1
  8. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +2 -1
  9. package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +3 -2
  10. package/android/src/fabric/java/com/swmansion/gesturehandler/RNGestureHandlerComponentsRegistry.java +1 -1
  11. package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +0 -8
  12. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +7 -1
  13. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +1 -1
  14. package/android/src/main/jni/CMakeLists.txt +59 -0
  15. package/ios/RNGestureHandlerButtonComponentView.mm +1 -1
  16. package/ios/RNGestureHandlerManager.mm +0 -5
  17. package/ios/RNGestureHandlerRootViewComponentView.mm +1 -1
  18. package/lib/commonjs/EnableExperimentalWebImplementation.js +24 -0
  19. package/lib/commonjs/EnableExperimentalWebImplementation.js.map +1 -0
  20. package/lib/commonjs/RNGestureHandlerModule.macos.js +87 -30
  21. package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
  22. package/lib/commonjs/RNGestureHandlerModule.web.js +87 -25
  23. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  24. package/lib/commonjs/RNRenderer.js +16 -0
  25. package/lib/commonjs/RNRenderer.js.map +1 -0
  26. package/lib/commonjs/RNRenderer.web.js +11 -0
  27. package/lib/commonjs/RNRenderer.web.js.map +1 -0
  28. package/lib/commonjs/components/DrawerLayout.js +3 -1
  29. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  30. package/lib/commonjs/components/GestureButtons.js +42 -9
  31. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  32. package/lib/commonjs/components/GestureComponents.js +41 -4
  33. package/lib/commonjs/components/GestureComponents.js.map +1 -1
  34. package/lib/commonjs/components/GestureComponents.web.js +7 -2
  35. package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
  36. package/lib/commonjs/components/Swipeable.js +3 -1
  37. package/lib/commonjs/components/Swipeable.js.map +1 -1
  38. package/lib/commonjs/components/touchables/GenericTouchable.js +2 -1
  39. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  40. package/lib/commonjs/handlers/createHandler.js +8 -1
  41. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  42. package/lib/commonjs/handlers/gestures/GestureDetector.js +67 -12
  43. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  44. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +7 -0
  45. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
  46. package/lib/commonjs/index.js +14 -0
  47. package/lib/commonjs/index.js.map +1 -1
  48. package/lib/commonjs/web/constants.js +3 -51
  49. package/lib/commonjs/web/constants.js.map +1 -1
  50. package/lib/commonjs/web/detectors/RotationGestureDetector.js +169 -0
  51. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -0
  52. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +167 -0
  53. package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -0
  54. package/lib/commonjs/web/handlers/FlingGestureHandler.js +154 -0
  55. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -0
  56. package/lib/commonjs/web/handlers/GestureHandler.js +538 -0
  57. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -0
  58. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +147 -0
  59. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -0
  60. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +116 -0
  61. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -0
  62. package/lib/commonjs/web/handlers/PanGestureHandler.js +451 -0
  63. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -0
  64. package/lib/commonjs/web/handlers/PinchGestureHandler.js +171 -0
  65. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -0
  66. package/lib/commonjs/web/handlers/RotationGestureHandler.js +187 -0
  67. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -0
  68. package/lib/commonjs/web/handlers/TapGestureHandler.js +296 -0
  69. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -0
  70. package/lib/commonjs/web/interfaces.js +34 -0
  71. package/lib/commonjs/web/interfaces.js.map +1 -0
  72. package/lib/commonjs/web/tools/EventManager.js +169 -0
  73. package/lib/commonjs/web/tools/EventManager.js.map +1 -0
  74. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +283 -0
  75. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -0
  76. package/lib/commonjs/web/tools/InteractionManager.js +102 -0
  77. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -0
  78. package/lib/commonjs/web/tools/NodeManager.js +48 -0
  79. package/lib/commonjs/web/tools/NodeManager.js.map +1 -0
  80. package/lib/commonjs/web/tools/PointerTracker.js +132 -0
  81. package/lib/commonjs/web/tools/PointerTracker.js.map +1 -0
  82. package/lib/commonjs/{web → web_hammer}/DiscreteGestureHandler.js +0 -0
  83. package/lib/commonjs/{web → web_hammer}/DiscreteGestureHandler.js.map +0 -0
  84. package/lib/commonjs/{web → web_hammer}/DraggingGestureHandler.js +0 -0
  85. package/lib/commonjs/{web → web_hammer}/DraggingGestureHandler.js.map +0 -0
  86. package/lib/commonjs/{web → web_hammer}/Errors.js +0 -0
  87. package/lib/commonjs/{web → web_hammer}/Errors.js.map +0 -0
  88. package/lib/commonjs/{web → web_hammer}/FlingGestureHandler.js +0 -0
  89. package/lib/commonjs/{web → web_hammer}/FlingGestureHandler.js.map +0 -0
  90. package/lib/commonjs/{web → web_hammer}/GestureHandler.js +83 -42
  91. package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -0
  92. package/lib/commonjs/{web → web_hammer}/IndiscreteGestureHandler.js +0 -0
  93. package/lib/commonjs/{web → web_hammer}/IndiscreteGestureHandler.js.map +0 -0
  94. package/lib/commonjs/{web → web_hammer}/LongPressGestureHandler.js +0 -0
  95. package/lib/commonjs/{web → web_hammer}/LongPressGestureHandler.js.map +0 -0
  96. package/lib/commonjs/{web → web_hammer}/NativeViewGestureHandler.js +4 -0
  97. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -0
  98. package/lib/commonjs/{web → web_hammer}/NodeManager.js +0 -0
  99. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -0
  100. package/lib/commonjs/{web → web_hammer}/PanGestureHandler.js +0 -0
  101. package/lib/commonjs/{web → web_hammer}/PanGestureHandler.js.map +0 -0
  102. package/lib/commonjs/{web → web_hammer}/PinchGestureHandler.js +0 -0
  103. package/lib/commonjs/{web → web_hammer}/PinchGestureHandler.js.map +0 -0
  104. package/lib/commonjs/{web → web_hammer}/PressGestureHandler.js +0 -0
  105. package/lib/commonjs/{web → web_hammer}/PressGestureHandler.js.map +0 -0
  106. package/lib/commonjs/{web → web_hammer}/RotationGestureHandler.js +0 -0
  107. package/lib/commonjs/{web → web_hammer}/RotationGestureHandler.js.map +0 -0
  108. package/lib/commonjs/{web → web_hammer}/TapGestureHandler.js +0 -0
  109. package/lib/commonjs/{web → web_hammer}/TapGestureHandler.js.map +0 -0
  110. package/lib/commonjs/web_hammer/constants.js +64 -0
  111. package/lib/commonjs/web_hammer/constants.js.map +1 -0
  112. package/lib/commonjs/{web → web_hammer}/utils.js +0 -0
  113. package/lib/commonjs/{web → web_hammer}/utils.js.map +0 -0
  114. package/lib/module/EnableExperimentalWebImplementation.js +15 -0
  115. package/lib/module/EnableExperimentalWebImplementation.js.map +1 -0
  116. package/lib/module/RNGestureHandlerModule.macos.js +74 -29
  117. package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
  118. package/lib/module/RNGestureHandlerModule.web.js +73 -24
  119. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  120. package/lib/module/RNRenderer.js +4 -0
  121. package/lib/module/RNRenderer.js.map +1 -0
  122. package/lib/module/RNRenderer.web.js +4 -0
  123. package/lib/module/RNRenderer.web.js.map +1 -0
  124. package/lib/module/components/DrawerLayout.js +3 -1
  125. package/lib/module/components/DrawerLayout.js.map +1 -1
  126. package/lib/module/components/GestureButtons.js +43 -9
  127. package/lib/module/components/GestureButtons.js.map +1 -1
  128. package/lib/module/components/GestureComponents.js +39 -4
  129. package/lib/module/components/GestureComponents.js.map +1 -1
  130. package/lib/module/components/GestureComponents.web.js +6 -2
  131. package/lib/module/components/GestureComponents.web.js.map +1 -1
  132. package/lib/module/components/Swipeable.js +3 -1
  133. package/lib/module/components/Swipeable.js.map +1 -1
  134. package/lib/module/components/touchables/GenericTouchable.js +2 -1
  135. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  136. package/lib/module/handlers/createHandler.js +9 -2
  137. package/lib/module/handlers/createHandler.js.map +1 -1
  138. package/lib/module/handlers/gestures/GestureDetector.js +64 -11
  139. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  140. package/lib/module/handlers/gestures/reanimatedWrapper.js +7 -0
  141. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
  142. package/lib/module/index.js +2 -1
  143. package/lib/module/index.js.map +1 -1
  144. package/lib/module/web/constants.js +1 -36
  145. package/lib/module/web/constants.js.map +1 -1
  146. package/lib/module/web/detectors/RotationGestureDetector.js +159 -0
  147. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -0
  148. package/lib/module/web/detectors/ScaleGestureDetector.js +156 -0
  149. package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -0
  150. package/lib/module/web/handlers/FlingGestureHandler.js +139 -0
  151. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -0
  152. package/lib/module/web/handlers/GestureHandler.js +521 -0
  153. package/lib/module/web/handlers/GestureHandler.js.map +1 -0
  154. package/lib/module/web/handlers/LongPressGestureHandler.js +133 -0
  155. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -0
  156. package/lib/module/web/handlers/NativeViewGestureHandler.js +103 -0
  157. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -0
  158. package/lib/module/web/handlers/PanGestureHandler.js +434 -0
  159. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -0
  160. package/lib/module/web/handlers/PinchGestureHandler.js +155 -0
  161. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -0
  162. package/lib/module/web/handlers/RotationGestureHandler.js +171 -0
  163. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -0
  164. package/lib/module/web/handlers/TapGestureHandler.js +281 -0
  165. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -0
  166. package/lib/module/web/interfaces.js +26 -0
  167. package/lib/module/web/interfaces.js.map +1 -0
  168. package/lib/module/web/tools/EventManager.js +160 -0
  169. package/lib/module/web/tools/EventManager.js.map +1 -0
  170. package/lib/module/web/tools/GestureHandlerOrchestrator.js +270 -0
  171. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -0
  172. package/lib/module/web/tools/InteractionManager.js +93 -0
  173. package/lib/module/web/tools/InteractionManager.js.map +1 -0
  174. package/lib/module/web/tools/NodeManager.js +39 -0
  175. package/lib/module/web/tools/NodeManager.js.map +1 -0
  176. package/lib/module/web/tools/PointerTracker.js +122 -0
  177. package/lib/module/web/tools/PointerTracker.js.map +1 -0
  178. package/lib/module/{web → web_hammer}/DiscreteGestureHandler.js +0 -0
  179. package/lib/module/{web → web_hammer}/DiscreteGestureHandler.js.map +0 -0
  180. package/lib/module/{web → web_hammer}/DraggingGestureHandler.js +0 -0
  181. package/lib/module/{web → web_hammer}/DraggingGestureHandler.js.map +0 -0
  182. package/lib/module/{web → web_hammer}/Errors.js +0 -0
  183. package/lib/module/{web → web_hammer}/Errors.js.map +0 -0
  184. package/lib/module/{web → web_hammer}/FlingGestureHandler.js +0 -0
  185. package/lib/module/{web → web_hammer}/FlingGestureHandler.js.map +0 -0
  186. package/lib/module/{web → web_hammer}/GestureHandler.js +83 -42
  187. package/lib/module/web_hammer/GestureHandler.js.map +1 -0
  188. package/lib/module/{web → web_hammer}/IndiscreteGestureHandler.js +0 -0
  189. package/lib/module/{web → web_hammer}/IndiscreteGestureHandler.js.map +0 -0
  190. package/lib/module/{web → web_hammer}/LongPressGestureHandler.js +0 -0
  191. package/lib/module/{web → web_hammer}/LongPressGestureHandler.js.map +0 -0
  192. package/lib/module/{web → web_hammer}/NativeViewGestureHandler.js +4 -0
  193. package/lib/module/web_hammer/NativeViewGestureHandler.js.map +1 -0
  194. package/lib/module/{web → web_hammer}/NodeManager.js +0 -0
  195. package/lib/module/web_hammer/NodeManager.js.map +1 -0
  196. package/lib/module/{web → web_hammer}/PanGestureHandler.js +0 -0
  197. package/lib/module/{web → web_hammer}/PanGestureHandler.js.map +0 -0
  198. package/lib/module/{web → web_hammer}/PinchGestureHandler.js +0 -0
  199. package/lib/module/{web → web_hammer}/PinchGestureHandler.js.map +0 -0
  200. package/lib/module/{web → web_hammer}/PressGestureHandler.js +0 -0
  201. package/lib/module/{web → web_hammer}/PressGestureHandler.js.map +0 -0
  202. package/lib/module/{web → web_hammer}/RotationGestureHandler.js +0 -0
  203. package/lib/module/{web → web_hammer}/RotationGestureHandler.js.map +0 -0
  204. package/lib/module/{web → web_hammer}/TapGestureHandler.js +0 -0
  205. package/lib/module/{web → web_hammer}/TapGestureHandler.js.map +0 -0
  206. package/lib/module/web_hammer/constants.js +43 -0
  207. package/lib/module/web_hammer/constants.js.map +1 -0
  208. package/lib/module/{web → web_hammer}/utils.js +0 -0
  209. package/lib/module/{web → web_hammer}/utils.js.map +0 -0
  210. package/lib/typescript/EnableExperimentalWebImplementation.d.ts +2 -0
  211. package/lib/typescript/RNGestureHandlerModule.macos.d.ts +28 -18
  212. package/lib/typescript/RNGestureHandlerModule.web.d.ts +29 -18
  213. package/lib/typescript/RNRenderer.d.ts +1 -0
  214. package/lib/typescript/RNRenderer.web.d.ts +3 -0
  215. package/lib/typescript/components/DrawerLayout.d.ts +1 -1
  216. package/lib/typescript/components/GestureButtons.d.ts +16 -0
  217. package/lib/typescript/components/GestureComponents.d.ts +7 -3
  218. package/lib/typescript/components/GestureComponents.web.d.ts +1 -0
  219. package/lib/typescript/components/Swipeable.d.ts +1 -1
  220. package/lib/typescript/index.d.ts +2 -1
  221. package/lib/typescript/web/constants.d.ts +1 -33
  222. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +30 -0
  223. package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +30 -0
  224. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +31 -0
  225. package/lib/typescript/web/handlers/GestureHandler.d.ts +84 -0
  226. package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +33 -0
  227. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +16 -0
  228. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +68 -0
  229. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +30 -0
  230. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +30 -0
  231. package/lib/typescript/web/handlers/TapGestureHandler.d.ts +49 -0
  232. package/lib/typescript/web/interfaces.d.ts +97 -0
  233. package/lib/typescript/web/tools/EventManager.d.ts +28 -0
  234. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +28 -0
  235. package/lib/typescript/web/tools/InteractionManager.d.ts +13 -0
  236. package/lib/typescript/web/tools/NodeManager.d.ts +11 -0
  237. package/lib/typescript/web/tools/PointerTracker.d.ts +28 -0
  238. package/lib/typescript/{web → web_hammer}/DiscreteGestureHandler.d.ts +0 -0
  239. package/lib/typescript/{web → web_hammer}/DraggingGestureHandler.d.ts +0 -0
  240. package/lib/typescript/{web → web_hammer}/Errors.d.ts +0 -0
  241. package/lib/typescript/{web → web_hammer}/FlingGestureHandler.d.ts +1 -0
  242. package/lib/typescript/{web → web_hammer}/GestureHandler.d.ts +6 -0
  243. package/lib/typescript/{web → web_hammer}/IndiscreteGestureHandler.d.ts +1 -0
  244. package/lib/typescript/{web → web_hammer}/LongPressGestureHandler.d.ts +1 -0
  245. package/lib/typescript/{web → web_hammer}/NativeViewGestureHandler.d.ts +1 -0
  246. package/lib/typescript/web_hammer/NodeManager.d.ts +8 -0
  247. package/lib/typescript/{web → web_hammer}/PanGestureHandler.d.ts +1 -0
  248. package/lib/typescript/{web → web_hammer}/PinchGestureHandler.d.ts +0 -0
  249. package/lib/typescript/{web → web_hammer}/PressGestureHandler.d.ts +2 -0
  250. package/lib/typescript/{web → web_hammer}/RotationGestureHandler.d.ts +0 -0
  251. package/lib/typescript/{web → web_hammer}/TapGestureHandler.d.ts +1 -0
  252. package/lib/typescript/web_hammer/constants.d.ts +39 -0
  253. package/lib/typescript/{web → web_hammer}/utils.d.ts +0 -0
  254. package/package.json +1 -1
  255. package/src/EnableExperimentalWebImplementation.ts +18 -0
  256. package/src/RNGestureHandlerModule.macos.ts +81 -29
  257. package/src/RNGestureHandlerModule.web.ts +89 -26
  258. package/src/RNRenderer.ts +3 -0
  259. package/src/RNRenderer.web.ts +3 -0
  260. package/src/components/DrawerLayout.tsx +3 -4
  261. package/src/components/GestureButtons.tsx +57 -0
  262. package/src/components/GestureComponents.tsx +66 -6
  263. package/src/components/GestureComponents.web.tsx +5 -0
  264. package/src/components/Swipeable.tsx +3 -1
  265. package/src/components/touchables/GenericTouchable.tsx +1 -0
  266. package/src/handlers/createHandler.tsx +13 -2
  267. package/src/handlers/gestures/GestureDetector.tsx +78 -12
  268. package/src/handlers/gestures/reanimatedWrapper.ts +7 -0
  269. package/src/index.ts +3 -0
  270. package/src/web/constants.ts +1 -41
  271. package/src/web/detectors/RotationGestureDetector.ts +199 -0
  272. package/src/web/detectors/ScaleGestureDetector.ts +208 -0
  273. package/src/web/handlers/FlingGestureHandler.ts +146 -0
  274. package/src/web/handlers/GestureHandler.ts +572 -0
  275. package/src/web/handlers/LongPressGestureHandler.ts +122 -0
  276. package/src/web/handlers/NativeViewGestureHandler.ts +109 -0
  277. package/src/web/handlers/PanGestureHandler.ts +488 -0
  278. package/src/web/handlers/PinchGestureHandler.ts +162 -0
  279. package/src/web/handlers/RotationGestureHandler.ts +181 -0
  280. package/src/web/handlers/TapGestureHandler.ts +275 -0
  281. package/src/web/interfaces.ts +114 -0
  282. package/src/web/tools/EventManager.ts +186 -0
  283. package/src/web/tools/GestureHandlerOrchestrator.ts +329 -0
  284. package/src/web/tools/InteractionManager.ts +108 -0
  285. package/src/web/tools/NodeManager.ts +43 -0
  286. package/src/web/tools/PointerTracker.ts +130 -0
  287. package/src/{web → web_hammer}/DiscreteGestureHandler.ts +0 -0
  288. package/src/{web → web_hammer}/DraggingGestureHandler.ts +0 -0
  289. package/src/{web → web_hammer}/Errors.ts +0 -0
  290. package/src/{web → web_hammer}/FlingGestureHandler.ts +0 -0
  291. package/src/{web → web_hammer}/GestureHandler.ts +102 -55
  292. package/src/{web → web_hammer}/IndiscreteGestureHandler.ts +0 -0
  293. package/src/{web → web_hammer}/LongPressGestureHandler.ts +0 -0
  294. package/src/{web → web_hammer}/NativeViewGestureHandler.ts +4 -0
  295. package/src/{web → web_hammer}/NodeManager.ts +6 -3
  296. package/src/{web → web_hammer}/PanGestureHandler.ts +0 -0
  297. package/src/{web → web_hammer}/PinchGestureHandler.ts +0 -0
  298. package/src/{web → web_hammer}/PressGestureHandler.ts +0 -0
  299. package/src/{web → web_hammer}/RotationGestureHandler.ts +0 -0
  300. package/src/{web → web_hammer}/TapGestureHandler.ts +0 -0
  301. package/src/web_hammer/constants.ts +48 -0
  302. package/src/{web → web_hammer}/utils.ts +0 -0
  303. package/android/src/main/jni/Android.mk +0 -52
  304. package/android/src/main/jni/OnLoad.cpp +0 -9
  305. package/android/src/main/jni/RNGestureHandlerComponentsRegistry.cpp +0 -71
  306. package/android/src/main/jni/RNGestureHandlerComponentsRegistry.h +0 -34
  307. package/lib/commonjs/web/GestureHandler.js.map +0 -1
  308. package/lib/commonjs/web/NativeViewGestureHandler.js.map +0 -1
  309. package/lib/commonjs/web/NodeManager.js.map +0 -1
  310. package/lib/module/web/GestureHandler.js.map +0 -1
  311. package/lib/module/web/NativeViewGestureHandler.js.map +0 -1
  312. package/lib/module/web/NodeManager.js.map +0 -1
  313. package/lib/typescript/web/NodeManager.d.ts +0 -8
package/README.md CHANGED
@@ -39,6 +39,7 @@ You will need to have an Android or iOS device or emulator connected as well as
39
39
 
40
40
  | version | react-native version |
41
41
  | ------- | -------------------- |
42
+ | 2.0.0+ | 0.63.0+ |
42
43
  | 1.4.0+ | 0.60.0+ |
43
44
  | 1.1.0+ | 0.57.2+ |
44
45
  | <1.1.0 | 0.50.0+ |
@@ -1,6 +1,21 @@
1
1
  require "json"
2
2
 
3
- fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED']
3
+ fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1'
4
+
5
+ isUserApp = File.exists?(File.join(__dir__, "..", "..", "node_modules", "react-native", "package.json"))
6
+ if isUserApp
7
+ libInstances = %x[find ../../ -name "package.json" | grep "/react-native-gesture-handler/package.json" | grep -v "/.yarn/"]
8
+ libInstancesArray = libInstances.split("\n")
9
+ if libInstancesArray.length() > 1
10
+ parsedLocation = ''
11
+ for location in libInstancesArray
12
+ location['../../'] = '- '
13
+ location['/package.json'] = ''
14
+ parsedLocation += location + "\n"
15
+ end
16
+ raise "[Gesture Handler] Multiple versions of Gesture Handler were detected. Only one instance of react-native-gesture-handler can be installed in a project. You need to resolve the conflict manually. Check out the documentation: https://docs.swmansion.com/react-native-gesture-handler/docs/troubleshooting#multiple-versions-of-reanimated-were-detected \n\nConflict between: \n" + parsedLocation
17
+ end
18
+ end
4
19
 
5
20
  Pod::Spec.new do |s|
6
21
  # NPM package specification
@@ -17,9 +32,6 @@ Pod::Spec.new do |s|
17
32
  s.requires_arc = true
18
33
 
19
34
  if fabric_enabled
20
- # folly_version must match the version used in React Native
21
- # See folly_version in react-native/React/FBReactNativeSpec/FBReactNativeSpec.podspec
22
- folly_version = '2021.06.28.00-v2'
23
35
  folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
24
36
 
25
37
  s.pod_target_xcconfig = {
@@ -32,7 +44,7 @@ Pod::Spec.new do |s|
32
44
  s.dependency "React"
33
45
  s.dependency "React-RCTFabric" # This is for fabric component
34
46
  s.dependency "React-Codegen"
35
- s.dependency "RCT-Folly", folly_version
47
+ s.dependency "RCT-Folly"
36
48
  s.dependency "RCTRequired"
37
49
  s.dependency "RCTTypeSafety"
38
50
  s.dependency "ReactCommon/turbomodule/core"
@@ -21,7 +21,7 @@ def isNewArchitectureEnabled() {
21
21
  return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
22
22
  }
23
23
 
24
- def findNodeModulePath(baseDir, packageName) {
24
+ static def findNodeModulePath(baseDir, packageName) {
25
25
  def basePath = baseDir.toPath().normalize()
26
26
  // Node's module resolution algorithm searches up to the root directory,
27
27
  // after which the base path will be null
@@ -35,6 +35,13 @@ def findNodeModulePath(baseDir, packageName) {
35
35
  return null
36
36
  }
37
37
 
38
+ def findNodeModulePath(packageName) {
39
+ // Don't start in the project dir, as its path ends with node_modules/react-native-gesture-handler/android
40
+ // we want to go two levels up, so we end up in the first_node modules and eventually
41
+ // search upwards if the package is not found there
42
+ return findNodeModulePath(projectDir.toPath().parent.parent.toFile(), packageName)
43
+ }
44
+
38
45
  if (isNewArchitectureEnabled()) {
39
46
  apply plugin: 'com.facebook.react'
40
47
  }
@@ -59,6 +66,45 @@ def shouldUseCommonInterfaceFromReanimated() {
59
66
  }
60
67
  }
61
68
 
69
+ def reactNativeArchitectures() {
70
+ def value = project.getProperties().get("reactNativeArchitectures")
71
+ return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
72
+ }
73
+
74
+ def shouldAssertNoMultipleInstances() {
75
+ if (rootProject.hasProperty("disableMultipleInstancesCheck")) {
76
+ return rootProject.property("disableMultipleInstancesCheck") != "true"
77
+ } else {
78
+ return true
79
+ }
80
+ }
81
+
82
+ def noMultipleInstancesAssertion() {
83
+ Set<File> files = fileTree(rootDir.parent) {
84
+ include "node_modules/**/react-native-gesture-handler/package.json"
85
+ exclude "**/.yarn/**"
86
+ }.files
87
+
88
+ if (files.size() > 1) {
89
+ String parsedLocation = files.stream().map({ File file -> "- " + file.toString().replace("/package.json", "") }).collect().join("\n")
90
+ String exceptionMessage = "\n[Gesture Handler] Multiple instances of Gesture Handler were detected. Only one instance of react-native-gesture-handler can be installed in a project. You need to resolve the conflict manually. Check out the documentation: https://docs.swmansion.com/react-native-gesture-handler/docs/troubleshooting#multiple-instances-of-gesture-handler-were-detected \n\nConflict between: \n" + parsedLocation + "\n";
91
+ throw new Exception(exceptionMessage);
92
+ }
93
+ }
94
+
95
+ def REACT_NATIVE_DIR = findNodeModulePath("react-native")
96
+
97
+ def assertionTask = task assertNoMultipleInstances {
98
+ onlyIf { shouldAssertNoMultipleInstances() }
99
+ doFirst {
100
+ noMultipleInstancesAssertion()
101
+ }
102
+ }
103
+
104
+ tasks.preBuild {
105
+ dependsOn assertionTask
106
+ }
107
+
62
108
  repositories {
63
109
  mavenCentral()
64
110
  }
@@ -84,17 +130,12 @@ android {
84
130
  if (isNewArchitectureEnabled()) {
85
131
  var appProject = rootProject.allprojects.find {it.plugins.hasPlugin('com.android.application')}
86
132
  externalNativeBuild {
87
- ndkBuild {
88
- arguments "APP_PLATFORM=android-21",
89
- "APP_STL=c++_shared",
90
- "NDK_TOOLCHAIN_VERSION=clang",
91
- "GENERATED_SRC_DIR=${appProject.buildDir}/generated/source",
92
- "PROJECT_BUILD_DIR=${appProject.buildDir}",
93
- "REACT_ANDROID_DIR=${findNodeModulePath(appProject.rootDir, "react-native") ?: "../node_modules/react-native/"}/ReactAndroid",
94
- "REACT_ANDROID_BUILD_DIR=${findNodeModulePath(appProject.rootDir, "react-native") ?: "../node_modules/react-native/"}/ReactAndroid/build"
95
- cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1"
96
- cppFlags "-std=c++17"
97
- targets "rngesturehandler_modules"
133
+ cmake {
134
+ cppFlags "-O2 -frtti -fexceptions -Wall -Wno-unused-variable -fstack-protector-all"
135
+ arguments "-DAPP_BUILD_DIR=${appProject.buildDir}",
136
+ "-DREACT_NATIVE_DIR=${REACT_NATIVE_DIR}",
137
+ "-DANDROID_STL=c++_shared"
138
+ abiFilters (*reactNativeArchitectures())
98
139
  }
99
140
  }
100
141
  }
@@ -107,8 +148,8 @@ android {
107
148
 
108
149
  if (isNewArchitectureEnabled()) {
109
150
  externalNativeBuild {
110
- ndkBuild {
111
- path "src/main/jni/Android.mk"
151
+ cmake {
152
+ path "src/main/jni/CMakeLists.txt"
112
153
  }
113
154
  }
114
155
  }
@@ -116,7 +157,7 @@ android {
116
157
  packagingOptions {
117
158
  // For some reason gradle only complains about the duplicated version of libreact_render libraries
118
159
  // while there are more libraries copied in intermediates folder of the lib build directory, we exclude
119
- // only the ones that make the build fail (ideally we should only include librngesturehandler_modules but we
160
+ // only the ones that make the build fail (ideally we should only include libgesturehandler but we
120
161
  // are only allowed to specify exclude patterns)
121
162
  exclude "**/libreact_render*.so"
122
163
  }
@@ -178,4 +219,19 @@ if (isNewArchitectureEnabled()) {
178
219
  libraryName = "rngesturehandler"
179
220
  codegenJavaPackageName = "com.swmansion.gesturehandler"
180
221
  }
222
+
223
+ // Resolves "LOCAL_SRC_FILES points to a missing file, Check that libfb.so exists or that its path is correct".
224
+ tasks.whenTaskAdded { task ->
225
+ if (task.name.contains("configureCMakeDebug")) {
226
+ rootProject.getTasksByName("packageReactNdkDebugLibs", true).forEach {
227
+ task.dependsOn(it)
228
+ }
229
+ }
230
+ // We want to add a dependency for both configureCMakeRelease and configureCMakeRelWithDebInfo
231
+ if (task.name.contains("configureCMakeRel")) {
232
+ rootProject.getTasksByName("packageReactNdkReleaseLibs", true).forEach {
233
+ task.dependsOn(it)
234
+ }
235
+ }
236
+ }
181
237
  }
@@ -1,6 +1,7 @@
1
1
  package com.swmansion.gesturehandler
2
2
 
3
3
  import android.os.Handler
4
+ import android.os.Looper
4
5
  import android.view.MotionEvent
5
6
 
6
7
  class FlingGestureHandler : GestureHandler<FlingGestureHandler>() {
@@ -27,7 +28,7 @@ class FlingGestureHandler : GestureHandler<FlingGestureHandler>() {
27
28
  begin()
28
29
  maxNumberOfPointersSimultaneously = 1
29
30
  if (handler == null) {
30
- handler = Handler() // lazy delegate?
31
+ handler = Handler(Looper.getMainLooper()) // lazy delegate?
31
32
  } else {
32
33
  handler!!.removeCallbacksAndMessages(null)
33
34
  }
@@ -5,6 +5,7 @@ import android.graphics.PointF
5
5
  import android.view.MotionEvent
6
6
  import android.view.View
7
7
  import android.view.ViewGroup
8
+ import android.widget.EditText
8
9
  import java.util.*
9
10
 
10
11
  class GestureHandlerOrchestrator(
@@ -128,6 +129,13 @@ class GestureHandlerOrchestrator(
128
129
  if (newState == GestureHandler.STATE_END) {
129
130
  // gesture has ended, we need to kill the awaiting handler
130
131
  otherHandler.cancel()
132
+ if (otherHandler.state == GestureHandler.STATE_END) {
133
+ // Handle edge case, where discrete gestures end immediately after activation thus
134
+ // their state is set to END and when the gesture they are waiting for activates they
135
+ // should be cancelled, however `cancel` was never sent as gestures were already in the END state.
136
+ // Send synthetic BEGAN -> CANCELLED to properly handle JS logic
137
+ otherHandler.dispatchStateChange(GestureHandler.STATE_CANCELLED, GestureHandler.STATE_BEGAN)
138
+ }
131
139
  otherHandler.isAwaiting = false
132
140
  } else {
133
141
  // gesture has failed recognition, we may try activating
@@ -142,9 +150,12 @@ class GestureHandlerOrchestrator(
142
150
  } else if (prevState == GestureHandler.STATE_ACTIVE || prevState == GestureHandler.STATE_END) {
143
151
  if (handler.isActive) {
144
152
  handler.dispatchStateChange(newState, prevState)
145
- } else if (prevState == GestureHandler.STATE_ACTIVE) {
146
- // handle edge case where handler awaiting for another one tries to activate but finishes
147
- // before the other would not send state change event upon ending
153
+ } else if (prevState == GestureHandler.STATE_ACTIVE && (newState == GestureHandler.STATE_CANCELLED || newState == GestureHandler.STATE_FAILED)) {
154
+ // Handle edge case where handler awaiting for another one tries to activate but finishes
155
+ // before the other would not send state change event upon ending. Note that we only want
156
+ // to do this if the newState is either CANCELLED or FAILED, if it is END we still want to
157
+ // wait for the other handler to finish as in that case synthetic events will be sent by the
158
+ // makeActive method.
148
159
  handler.dispatchStateChange(newState, GestureHandler.STATE_BEGAN)
149
160
  }
150
161
  } else if (prevState != GestureHandler.STATE_UNDETERMINED || newState != GestureHandler.STATE_CANCELLED) {
@@ -474,14 +485,24 @@ class GestureHandlerOrchestrator(
474
485
  }
475
486
  PointerEventsConfig.BOX_NONE -> {
476
487
  // This view can't be the target, but its children might
477
- if (view is ViewGroup) {
478
- extractGestureHandlers(view, coords, pointerId).also { found ->
479
- // A child view is handling touch, also extract handlers attached to this view
480
- if (found) {
481
- recordViewHandlersForPointer(view, coords, pointerId)
488
+ when (view) {
489
+ is ViewGroup -> {
490
+ extractGestureHandlers(view, coords, pointerId).also { found ->
491
+ // A child view is handling touch, also extract handlers attached to this view
492
+ if (found) {
493
+ recordViewHandlersForPointer(view, coords, pointerId)
494
+ }
482
495
  }
483
496
  }
484
- } else false
497
+ // When <TextInput> has editable set to `false` getPointerEventsConfigForView returns
498
+ // `BOX_NONE` as it's `isEnabled` property is false. In this case we still want to extract
499
+ // handlers attached to the text input, as it makes sense that gestures would work on a
500
+ // non-editable TextInput.
501
+ is EditText -> {
502
+ recordViewHandlersForPointer(view, coords, pointerId)
503
+ }
504
+ else -> false
505
+ }
485
506
  }
486
507
  PointerEventsConfig.AUTO -> {
487
508
  // Either this view or one of its children is the target
@@ -2,6 +2,7 @@ package com.swmansion.gesturehandler
2
2
 
3
3
  import android.content.Context
4
4
  import android.os.Handler
5
+ import android.os.Looper
5
6
  import android.os.SystemClock
6
7
  import android.view.MotionEvent
7
8
 
@@ -19,7 +20,9 @@ class LongPressGestureHandler(context: Context) : GestureHandler<LongPressGestur
19
20
 
20
21
  init {
21
22
  setShouldCancelWhenOutside(true)
22
- defaultMaxDistSq = DEFAULT_MAX_DIST_DP * context.resources.displayMetrics.density
23
+
24
+ val defaultMaxDist = DEFAULT_MAX_DIST_DP * context.resources.displayMetrics.density
25
+ defaultMaxDistSq = defaultMaxDist * defaultMaxDist
23
26
  maxDistSq = defaultMaxDistSq
24
27
  }
25
28
 
@@ -41,7 +44,7 @@ class LongPressGestureHandler(context: Context) : GestureHandler<LongPressGestur
41
44
  begin()
42
45
  startX = event.rawX
43
46
  startY = event.rawY
44
- handler = Handler()
47
+ handler = Handler(Looper.getMainLooper())
45
48
  if (minDurationMs > 0) {
46
49
  handler!!.postDelayed({ activate() }, minDurationMs)
47
50
  } else if (minDurationMs == 0L) {
@@ -9,7 +9,8 @@ import com.facebook.react.views.textinput.ReactEditText
9
9
 
10
10
  class NativeViewGestureHandler : GestureHandler<NativeViewGestureHandler>() {
11
11
  private var shouldActivateOnStart = false
12
- private var disallowInterruption = false
12
+ var disallowInterruption = false
13
+ private set
13
14
 
14
15
  private var hook: NativeViewGestureHandlerHook = defaultHook
15
16
 
@@ -2,6 +2,7 @@ package com.swmansion.gesturehandler
2
2
 
3
3
  import android.content.Context
4
4
  import android.os.Handler
5
+ import android.os.Looper
5
6
  import android.view.MotionEvent
6
7
  import android.view.VelocityTracker
7
8
  import android.view.ViewConfiguration
@@ -233,7 +234,7 @@ class PanGestureHandler(context: Context?) : GestureHandler<PanGestureHandler>()
233
234
 
234
235
  if (activateAfterLongPress > 0) {
235
236
  if (handler == null) {
236
- handler = Handler()
237
+ handler = Handler(Looper.getMainLooper())
237
238
  }
238
239
  handler!!.postDelayed(activateDelayed, activateAfterLongPress)
239
240
  }
@@ -1,6 +1,7 @@
1
1
  package com.swmansion.gesturehandler
2
2
 
3
3
  import android.os.Handler
4
+ import android.os.Looper
4
5
  import android.view.MotionEvent
5
6
  import com.swmansion.gesturehandler.GestureUtils.getLastPointerX
6
7
  import com.swmansion.gesturehandler.GestureUtils.getLastPointerY
@@ -70,7 +71,7 @@ class TapGestureHandler : GestureHandler<TapGestureHandler>() {
70
71
 
71
72
  private fun startTap() {
72
73
  if (handler == null) {
73
- handler = Handler() // TODO: lazy init (handle else branch correctly)
74
+ handler = Handler(Looper.getMainLooper()) // TODO: lazy init (handle else branch correctly)
74
75
  } else {
75
76
  handler!!.removeCallbacksAndMessages(null)
76
77
  }
@@ -79,7 +80,7 @@ class TapGestureHandler : GestureHandler<TapGestureHandler>() {
79
80
 
80
81
  private fun endTap() {
81
82
  if (handler == null) {
82
- handler = Handler()
83
+ handler = Handler(Looper.getMainLooper())
83
84
  } else {
84
85
  handler!!.removeCallbacksAndMessages(null)
85
86
  }
@@ -9,7 +9,7 @@ import com.facebook.soloader.SoLoader;
9
9
  public class RNGestureHandlerComponentsRegistry {
10
10
  static {
11
11
  SoLoader.loadLibrary("fabricjni");
12
- SoLoader.loadLibrary("rngesturehandler_modules");
12
+ SoLoader.loadLibrary("gesturehandler");
13
13
  }
14
14
 
15
15
  @DoNotStrip private final HybridData mHybridData;
@@ -4,7 +4,6 @@ import com.facebook.react.ReactPackage
4
4
  import com.facebook.react.bridge.NativeModule
5
5
  import com.facebook.react.bridge.ReactApplicationContext
6
6
  import com.facebook.react.uimanager.ViewManager
7
- import com.facebook.soloader.SoLoader
8
7
  import com.swmansion.gesturehandler.BuildConfig
9
8
  import com.swmansion.gesturehandler.react.RNGestureHandlerModule
10
9
  import com.swmansion.gesturehandler.react.RNGestureHandlerRootViewManager
@@ -12,13 +11,6 @@ import com.swmansion.gesturehandler.react.RNGestureHandlerButtonViewManager
12
11
 
13
12
  class RNGestureHandlerPackage : ReactPackage {
14
13
  override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
15
- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
16
- // For Fabric, we load c++ native library here, this triggers gesture handler's
17
- // Fabric component registration which is necessary in order to avoid asking users
18
- // to manually add init calls in their application code.
19
- // This should no longer be needed if RN's autolink mechanism has Fabric support
20
- SoLoader.loadLibrary("rngesturehandler_modules")
21
- }
22
14
  return listOf<NativeModule>(RNGestureHandlerModule(reactContext))
23
15
  }
24
16
 
@@ -4,6 +4,7 @@ import android.util.SparseArray
4
4
  import com.facebook.react.bridge.ReadableMap
5
5
  import com.swmansion.gesturehandler.GestureHandler
6
6
  import com.swmansion.gesturehandler.GestureHandlerInteractionController
7
+ import com.swmansion.gesturehandler.NativeViewGestureHandler
7
8
 
8
9
  class RNGestureHandlerInteractionManager : GestureHandlerInteractionController {
9
10
  private val waitForRelations = SparseArray<IntArray>()
@@ -42,8 +43,13 @@ class RNGestureHandlerInteractionManager : GestureHandlerInteractionController {
42
43
  otherHandler: GestureHandler<*>,
43
44
  ) = false
44
45
 
45
- override fun shouldHandlerBeCancelledBy(handler: GestureHandler<*>, otherHandler: GestureHandler<*>) = false
46
+ override fun shouldHandlerBeCancelledBy(handler: GestureHandler<*>, otherHandler: GestureHandler<*>): Boolean {
47
+ if (otherHandler is NativeViewGestureHandler) {
48
+ return otherHandler.disallowInterruption
49
+ }
46
50
 
51
+ return false
52
+ }
47
53
  override fun shouldRecognizeSimultaneously(
48
54
  handler: GestureHandler<*>,
49
55
  otherHandler: GestureHandler<*>,
@@ -425,7 +425,7 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?)
425
425
  @ReactMethod(isBlockingSynchronousMethod = true)
426
426
  fun install(): Boolean {
427
427
  return try {
428
- SoLoader.loadLibrary("rngesturehandler_modules")
428
+ SoLoader.loadLibrary("gesturehandler")
429
429
  val jsContext = reactApplicationContext.javaScriptContextHolder
430
430
  decorateRuntime(jsContext.get())
431
431
  true
@@ -0,0 +1,59 @@
1
+ project(GestureHandler)
2
+ cmake_minimum_required(VERSION 3.9.0)
3
+
4
+ set(CMAKE_VERBOSE_MAKEFILE ON)
5
+ set(CMAKE_CXX_STANDARD 17)
6
+ set(CMAKE_CXX_FLAGS "-DFOLLY_NO_CONFIG=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_MOBILE=1 -DFOLLY_HAVE_RECVMMSG=1 -DFOLLY_HAVE_PTHREAD=1")
7
+
8
+ add_library(gesturehandler
9
+ SHARED
10
+ cpp-adapter.cpp
11
+ )
12
+
13
+ set(REACT_ANDROID_DIR "${REACT_NATIVE_DIR}/ReactAndroid")
14
+ set(REACT_COMMON_DIR "${REACT_NATIVE_DIR}/ReactCommon")
15
+ set(REACT_NDK_EXPORT_DIR "${APP_BUILD_DIR}/react-ndk/exported")
16
+
17
+ # copied from react-native/ReactAndroid/cmake-utils/Android-prebuilt.cmake
18
+
19
+ ## jsi
20
+ add_library(jsi SHARED IMPORTED GLOBAL)
21
+ set_target_properties(jsi
22
+ PROPERTIES
23
+ IMPORTED_LOCATION
24
+ ${REACT_NDK_EXPORT_DIR}/${ANDROID_ABI}/libjsi.so)
25
+ target_include_directories(jsi INTERFACE ${REACT_COMMON_DIR}/jsi)
26
+
27
+ ## react_render_core
28
+ add_library(react_render_core SHARED IMPORTED GLOBAL)
29
+ set_target_properties(react_render_core
30
+ PROPERTIES
31
+ IMPORTED_LOCATION
32
+ ${REACT_NDK_EXPORT_DIR}/${ANDROID_ABI}/libreact_render_core.so)
33
+ target_include_directories(react_render_core
34
+ INTERFACE
35
+ ${REACT_COMMON_DIR}
36
+ ${REACT_COMMON_DIR}/react/renderer/core)
37
+
38
+ ## react_render_uimanager
39
+ add_library(react_render_uimanager SHARED IMPORTED GLOBAL)
40
+ set_target_properties(react_render_uimanager
41
+ PROPERTIES
42
+ IMPORTED_LOCATION
43
+ ${REACT_NDK_EXPORT_DIR}/${ANDROID_ABI}/libreact_render_uimanager.so)
44
+ target_include_directories(react_render_uimanager INTERFACE ${REACT_COMMON_DIR}/react/renderer/uimanager)
45
+
46
+ target_include_directories(
47
+ gesturehandler
48
+ PRIVATE
49
+ "${REACT_ANDROID_DIR}/build/third-party-ndk/boost/boost_1_76_0"
50
+ "${REACT_ANDROID_DIR}/build/third-party-ndk/double-conversion"
51
+ "${REACT_ANDROID_DIR}/build/third-party-ndk/folly"
52
+ )
53
+
54
+ target_link_libraries(
55
+ gesturehandler
56
+ jsi
57
+ react_render_uimanager
58
+ react_render_core
59
+ )
@@ -3,13 +3,13 @@
3
3
  #import "RNGestureHandlerButtonComponentView.h"
4
4
 
5
5
  #import <React/RCTConversions.h>
6
+ #import <React/RCTFabricComponentsPlugins.h>
6
7
 
7
8
  #import <react/renderer/components/rngesturehandler/ComponentDescriptors.h>
8
9
  #import <react/renderer/components/rngesturehandler/EventEmitters.h>
9
10
  #import <react/renderer/components/rngesturehandler/Props.h>
10
11
  #import <react/renderer/components/rngesturehandler/RCTComponentViewHelpers.h>
11
12
 
12
- #import "RCTFabricComponentsPlugins.h"
13
13
  #import "RNGestureHandlerButton.h"
14
14
 
15
15
  using namespace facebook::react;
@@ -6,12 +6,7 @@
6
6
  #import <React/RCTRootView.h>
7
7
  #import <React/RCTUIManager.h>
8
8
  #import <React/RCTEventDispatcher.h>
9
-
10
- #if __has_include(<React/RCTRootContentView.h>)
11
9
  #import <React/RCTRootContentView.h>
12
- #else
13
- #import "RCTRootContentView.h"
14
- #endif
15
10
 
16
11
  #import "RNGestureHandlerActionType.h"
17
12
  #import "RNGestureHandlerState.h"
@@ -1,6 +1,6 @@
1
1
  #ifdef RN_FABRIC_ENABLED
2
2
 
3
- #import "RCTFabricComponentsPlugins.h"
3
+ #import <React/RCTFabricComponentsPlugins.h>
4
4
 
5
5
  Class<RCTComponentViewProtocol> RNGestureHandlerRootViewCls(void)
6
6
  {
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.enableExperimentalWebImplementation = enableExperimentalWebImplementation;
7
+ exports.isExperimentalWebImplementationEnabled = isExperimentalWebImplementationEnabled;
8
+ let EXPERIMENTAL_WEB_IMPLEMENTATION = false;
9
+ let getWasCalled = false;
10
+
11
+ function enableExperimentalWebImplementation(shouldEnable = true) {
12
+ if (getWasCalled) {
13
+ console.error('Some parts of this application have already started using old gesture handler implementation. No changes will be applied. You can try enabling new implementation earlier.');
14
+ return;
15
+ }
16
+
17
+ EXPERIMENTAL_WEB_IMPLEMENTATION = shouldEnable;
18
+ }
19
+
20
+ function isExperimentalWebImplementationEnabled() {
21
+ getWasCalled = true;
22
+ return EXPERIMENTAL_WEB_IMPLEMENTATION;
23
+ }
24
+ //# sourceMappingURL=EnableExperimentalWebImplementation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["EnableExperimentalWebImplementation.ts"],"names":["EXPERIMENTAL_WEB_IMPLEMENTATION","getWasCalled","enableExperimentalWebImplementation","shouldEnable","console","error","isExperimentalWebImplementationEnabled"],"mappings":";;;;;;;AAAA,IAAIA,+BAA+B,GAAG,KAAtC;AACA,IAAIC,YAAY,GAAG,KAAnB;;AAEO,SAASC,mCAAT,CAA6CC,YAAY,GAAG,IAA5D,EAAwE;AAC7E,MAAIF,YAAJ,EAAkB;AAChBG,IAAAA,OAAO,CAACC,KAAR,CACE,4KADF;AAGA;AACD;;AAEDL,EAAAA,+BAA+B,GAAGG,YAAlC;AACD;;AAEM,SAASG,sCAAT,GAA2D;AAChEL,EAAAA,YAAY,GAAG,IAAf;AACA,SAAOD,+BAAP;AACD","sourcesContent":["let EXPERIMENTAL_WEB_IMPLEMENTATION = false;\nlet getWasCalled = false;\n\nexport function enableExperimentalWebImplementation(shouldEnable = true): void {\n if (getWasCalled) {\n console.error(\n 'Some parts of this application have already started using old gesture handler implementation. No changes will be applied. You can try enabling new implementation earlier.'\n );\n return;\n }\n\n EXPERIMENTAL_WEB_IMPLEMENTATION = shouldEnable;\n}\n\nexport function isExperimentalWebImplementationEnabled(): boolean {\n getWasCalled = true;\n return EXPERIMENTAL_WEB_IMPLEMENTATION;\n}\n"]}