react-native-gesture-handler 2.5.0 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
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"]}