react-native-gesture-handler 2.16.0-rc.0 → 2.16.1

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 (399) hide show
  1. package/README.md +1 -0
  2. package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +2 -0
  3. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.java +9 -0
  4. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerInterface.java +3 -0
  5. package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +2 -2
  6. package/android/src/main/java/com/swmansion/gesturehandler/core/DiagonalDirections.kt +8 -0
  7. package/android/src/main/java/com/swmansion/gesturehandler/core/FlingGestureHandler.kt +61 -24
  8. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +17 -22
  9. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +30 -11
  10. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureUtils.kt +3 -0
  11. package/android/src/main/java/com/swmansion/gesturehandler/core/Vector.kt +66 -0
  12. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +119 -19
  13. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +2 -2
  14. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +1 -4
  15. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +4 -2
  16. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +1 -1
  17. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +1 -4
  18. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +4 -7
  19. package/apple/Handlers/RNLongPressHandler.m +5 -13
  20. package/apple/Handlers/RNPinchHandler.m +12 -1
  21. package/apple/RNGestureHandler.m +3 -1
  22. package/lib/commonjs/Directions.js +19 -6
  23. package/lib/commonjs/Directions.js.map +1 -1
  24. package/lib/commonjs/RNGestureHandlerModule.js +97 -4
  25. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
  26. package/lib/commonjs/RNGestureHandlerModule.native.js +16 -0
  27. package/lib/commonjs/RNGestureHandlerModule.native.js.map +1 -0
  28. package/lib/commonjs/RNRenderer.js +5 -10
  29. package/lib/commonjs/RNRenderer.js.map +1 -1
  30. package/lib/commonjs/RNRenderer.native.js +16 -0
  31. package/lib/commonjs/RNRenderer.native.js.map +1 -0
  32. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  33. package/lib/commonjs/components/GestureComponents.js +19 -82
  34. package/lib/commonjs/components/GestureComponents.js.map +1 -1
  35. package/lib/commonjs/components/GestureComponents.native.js +115 -0
  36. package/lib/commonjs/components/GestureComponents.native.js.map +1 -0
  37. package/lib/commonjs/components/GestureHandlerButton.js +13 -3
  38. package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
  39. package/lib/commonjs/components/GestureHandlerButton.native.js +14 -0
  40. package/lib/commonjs/components/GestureHandlerButton.native.js.map +1 -0
  41. package/lib/commonjs/components/GestureHandlerRootView.js +0 -6
  42. package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
  43. package/lib/commonjs/components/{GestureHandlerRootView.web.js → GestureHandlerRootView.native.js} +7 -1
  44. package/lib/commonjs/components/GestureHandlerRootView.native.js.map +1 -0
  45. package/lib/commonjs/components/Swipeable.js +3 -1
  46. package/lib/commonjs/components/Swipeable.js.map +1 -1
  47. package/lib/commonjs/components/touchables/GenericTouchable.js +1 -0
  48. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  49. package/lib/commonjs/getReactNativeVersion.js +1 -12
  50. package/lib/commonjs/getReactNativeVersion.js.map +1 -1
  51. package/lib/commonjs/getReactNativeVersion.native.js +22 -0
  52. package/lib/commonjs/getReactNativeVersion.native.js.map +1 -0
  53. package/lib/commonjs/getShadowNodeFromRef.js +5 -34
  54. package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
  55. package/lib/commonjs/getShadowNodeFromRef.native.js +44 -0
  56. package/lib/commonjs/getShadowNodeFromRef.native.js.map +1 -0
  57. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
  58. package/lib/commonjs/handlers/PressabilityDebugView.js +5 -7
  59. package/lib/commonjs/handlers/PressabilityDebugView.js.map +1 -1
  60. package/lib/commonjs/handlers/PressabilityDebugView.native.js +14 -0
  61. package/lib/commonjs/handlers/PressabilityDebugView.native.js.map +1 -0
  62. package/lib/commonjs/handlers/createHandler.js +11 -5
  63. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  64. package/lib/commonjs/handlers/customDirectEventTypes.js +11 -0
  65. package/lib/commonjs/handlers/customDirectEventTypes.js.map +1 -0
  66. package/lib/commonjs/handlers/customDirectEventTypes.native.js +14 -0
  67. package/lib/commonjs/handlers/customDirectEventTypes.native.js.map +1 -0
  68. package/lib/commonjs/handlers/gestureHandlerCommon.js +13 -2
  69. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  70. package/lib/commonjs/handlers/gestures/GestureDetector.js +25 -0
  71. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  72. package/lib/commonjs/handlers/gestures/flingGesture.js +13 -0
  73. package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -1
  74. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +17 -0
  75. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
  76. package/lib/commonjs/handlers/gestures/gesture.js +135 -0
  77. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  78. package/lib/commonjs/handlers/gestures/gestureObjects.js +66 -0
  79. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
  80. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +1 -1
  81. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js.map +1 -1
  82. package/lib/commonjs/handlers/gestures/hoverGesture.js +1 -1
  83. package/lib/commonjs/handlers/gestures/hoverGesture.js.map +1 -1
  84. package/lib/commonjs/handlers/gestures/longPressGesture.js +12 -0
  85. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
  86. package/lib/commonjs/handlers/gestures/nativeGesture.js +10 -0
  87. package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -1
  88. package/lib/commonjs/handlers/gestures/panGesture.js +76 -0
  89. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
  90. package/lib/commonjs/handlers/gestures/tapGesture.js +42 -0
  91. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
  92. package/lib/commonjs/index.js +8 -8
  93. package/lib/commonjs/index.js.map +1 -1
  94. package/lib/commonjs/mocks.js +2 -0
  95. package/lib/commonjs/mocks.js.map +1 -1
  96. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  97. package/lib/commonjs/utils.js +5 -1
  98. package/lib/commonjs/utils.js.map +1 -1
  99. package/lib/commonjs/web/Gestures.js +66 -0
  100. package/lib/commonjs/web/Gestures.js.map +1 -0
  101. package/lib/commonjs/web/constants.js +3 -8
  102. package/lib/commonjs/web/constants.js.map +1 -1
  103. package/lib/commonjs/web/handlers/FlingGestureHandler.js +36 -12
  104. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  105. package/lib/commonjs/web/handlers/GestureHandler.js +11 -9
  106. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  107. package/lib/commonjs/web/handlers/IGestureHandler.js +2 -0
  108. package/lib/commonjs/web/handlers/IGestureHandler.js.map +1 -0
  109. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +5 -6
  110. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  111. package/lib/commonjs/web/handlers/PanGestureHandler.js +3 -1
  112. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  113. package/lib/commonjs/web/interfaces.js +1 -13
  114. package/lib/commonjs/web/interfaces.js.map +1 -1
  115. package/lib/commonjs/web/tools/EventManager.js.map +1 -1
  116. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +114 -115
  117. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  118. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +10 -5
  119. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  120. package/lib/commonjs/web/tools/InteractionManager.js +12 -3
  121. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
  122. package/lib/commonjs/web/tools/NodeManager.js.map +1 -1
  123. package/lib/commonjs/web/tools/PointerEventManager.js +55 -27
  124. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
  125. package/lib/commonjs/web/tools/TouchEventManager.js +26 -5
  126. package/lib/commonjs/web/tools/TouchEventManager.js.map +1 -1
  127. package/lib/commonjs/web/tools/Vector.js +58 -0
  128. package/lib/commonjs/web/tools/Vector.js.map +1 -0
  129. package/lib/commonjs/web/utils.js +9 -1
  130. package/lib/commonjs/web/utils.js.map +1 -1
  131. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
  132. package/lib/module/Directions.js +16 -4
  133. package/lib/module/Directions.js.map +1 -1
  134. package/lib/module/RNGestureHandlerModule.js +84 -4
  135. package/lib/module/RNGestureHandlerModule.js.map +1 -1
  136. package/lib/module/RNGestureHandlerModule.native.js +5 -0
  137. package/lib/module/RNGestureHandlerModule.native.js.map +1 -0
  138. package/lib/module/RNRenderer.js +3 -3
  139. package/lib/module/RNRenderer.js.map +1 -1
  140. package/lib/module/RNRenderer.native.js +4 -0
  141. package/lib/module/RNRenderer.native.js.map +1 -0
  142. package/lib/module/components/DrawerLayout.js.map +1 -1
  143. package/lib/module/components/GestureComponents.js +18 -80
  144. package/lib/module/components/GestureComponents.js.map +1 -1
  145. package/lib/module/components/GestureComponents.native.js +90 -0
  146. package/lib/module/components/GestureComponents.native.js.map +1 -0
  147. package/lib/module/components/GestureHandlerButton.js +8 -2
  148. package/lib/module/components/GestureHandlerButton.js.map +1 -1
  149. package/lib/module/components/GestureHandlerButton.native.js +3 -0
  150. package/lib/module/components/GestureHandlerButton.native.js.map +1 -0
  151. package/lib/module/components/GestureHandlerRootView.js +0 -5
  152. package/lib/module/components/GestureHandlerRootView.js.map +1 -1
  153. package/lib/module/components/{GestureHandlerRootView.web.js → GestureHandlerRootView.native.js} +6 -1
  154. package/lib/module/components/GestureHandlerRootView.native.js.map +1 -0
  155. package/lib/module/components/Swipeable.js +3 -1
  156. package/lib/module/components/Swipeable.js.map +1 -1
  157. package/lib/module/components/touchables/GenericTouchable.js +1 -0
  158. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  159. package/lib/module/getReactNativeVersion.js +1 -7
  160. package/lib/module/getReactNativeVersion.js.map +1 -1
  161. package/lib/module/getReactNativeVersion.native.js +10 -0
  162. package/lib/module/getReactNativeVersion.native.js.map +1 -0
  163. package/lib/module/getShadowNodeFromRef.js +4 -33
  164. package/lib/module/getShadowNodeFromRef.js.map +1 -1
  165. package/lib/module/getShadowNodeFromRef.native.js +37 -0
  166. package/lib/module/getShadowNodeFromRef.native.js.map +1 -0
  167. package/lib/module/handlers/PanGestureHandler.js.map +1 -1
  168. package/lib/module/handlers/PressabilityDebugView.js +4 -2
  169. package/lib/module/handlers/PressabilityDebugView.js.map +1 -1
  170. package/lib/module/handlers/PressabilityDebugView.native.js +3 -0
  171. package/lib/module/handlers/PressabilityDebugView.native.js.map +1 -0
  172. package/lib/module/handlers/createHandler.js +11 -6
  173. package/lib/module/handlers/createHandler.js.map +1 -1
  174. package/lib/module/handlers/customDirectEventTypes.js +5 -0
  175. package/lib/module/handlers/customDirectEventTypes.js.map +1 -0
  176. package/lib/module/handlers/customDirectEventTypes.native.js +3 -0
  177. package/lib/module/handlers/customDirectEventTypes.native.js.map +1 -0
  178. package/lib/module/handlers/gestureHandlerCommon.js +11 -1
  179. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  180. package/lib/module/handlers/gestures/GestureDetector.js +25 -0
  181. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  182. package/lib/module/handlers/gestures/flingGesture.js +13 -0
  183. package/lib/module/handlers/gestures/flingGesture.js.map +1 -1
  184. package/lib/module/handlers/gestures/forceTouchGesture.js +17 -0
  185. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
  186. package/lib/module/handlers/gestures/gesture.js +135 -0
  187. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  188. package/lib/module/handlers/gestures/gestureObjects.js +67 -0
  189. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
  190. package/lib/module/handlers/gestures/gestureStateManager.web.js +1 -1
  191. package/lib/module/handlers/gestures/gestureStateManager.web.js.map +1 -1
  192. package/lib/module/handlers/gestures/hoverGesture.js +1 -1
  193. package/lib/module/handlers/gestures/hoverGesture.js.map +1 -1
  194. package/lib/module/handlers/gestures/longPressGesture.js +12 -0
  195. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
  196. package/lib/module/handlers/gestures/nativeGesture.js +10 -0
  197. package/lib/module/handlers/gestures/nativeGesture.js.map +1 -1
  198. package/lib/module/handlers/gestures/panGesture.js +76 -0
  199. package/lib/module/handlers/gestures/panGesture.js.map +1 -1
  200. package/lib/module/handlers/gestures/tapGesture.js +42 -0
  201. package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
  202. package/lib/module/index.js +1 -1
  203. package/lib/module/index.js.map +1 -1
  204. package/lib/module/mocks.js +2 -0
  205. package/lib/module/mocks.js.map +1 -1
  206. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  207. package/lib/module/utils.js +5 -1
  208. package/lib/module/utils.js.map +1 -1
  209. package/lib/module/web/Gestures.js +39 -0
  210. package/lib/module/web/Gestures.js.map +1 -0
  211. package/lib/module/web/constants.js +1 -6
  212. package/lib/module/web/constants.js.map +1 -1
  213. package/lib/module/web/handlers/FlingGestureHandler.js +34 -12
  214. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  215. package/lib/module/web/handlers/GestureHandler.js +10 -9
  216. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  217. package/lib/module/web/handlers/IGestureHandler.js +2 -0
  218. package/lib/module/web/handlers/IGestureHandler.js.map +1 -0
  219. package/lib/module/web/handlers/NativeViewGestureHandler.js +5 -6
  220. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  221. package/lib/module/web/handlers/PanGestureHandler.js +3 -1
  222. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  223. package/lib/module/web/interfaces.js +0 -11
  224. package/lib/module/web/interfaces.js.map +1 -1
  225. package/lib/module/web/tools/EventManager.js.map +1 -1
  226. package/lib/module/web/tools/GestureHandlerOrchestrator.js +114 -115
  227. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  228. package/lib/module/web/tools/GestureHandlerWebDelegate.js +9 -4
  229. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  230. package/lib/module/web/tools/InteractionManager.js +9 -3
  231. package/lib/module/web/tools/InteractionManager.js.map +1 -1
  232. package/lib/module/web/tools/NodeManager.js.map +1 -1
  233. package/lib/module/web/tools/PointerEventManager.js +53 -26
  234. package/lib/module/web/tools/PointerEventManager.js.map +1 -1
  235. package/lib/module/web/tools/TouchEventManager.js +26 -5
  236. package/lib/module/web/tools/TouchEventManager.js.map +1 -1
  237. package/lib/module/web/tools/Vector.js +47 -0
  238. package/lib/module/web/tools/Vector.js.map +1 -0
  239. package/lib/module/web/utils.js +2 -0
  240. package/lib/module/web/utils.js.map +1 -1
  241. package/lib/module/web_hammer/NodeManager.js.map +1 -1
  242. package/lib/typescript/Directions.d.ts +7 -0
  243. package/lib/typescript/RNGestureHandlerModule.d.ts +15 -2
  244. package/lib/typescript/RNGestureHandlerModule.native.d.ts +2 -0
  245. package/lib/typescript/RNRenderer.d.ts +3 -1
  246. package/lib/typescript/RNRenderer.native.d.ts +1 -0
  247. package/lib/typescript/components/DrawerLayout.d.ts +1 -2
  248. package/lib/typescript/components/GestureComponents.d.ts +7 -21
  249. package/lib/typescript/components/GestureComponents.native.d.ts +22 -0
  250. package/lib/typescript/components/GestureHandlerButton.d.ts +3 -3
  251. package/lib/typescript/components/GestureHandlerButton.native.d.ts +4 -0
  252. package/lib/typescript/components/touchables/GenericTouchable.d.ts +2 -1
  253. package/lib/typescript/getReactNativeVersion.d.ts +1 -4
  254. package/lib/typescript/getReactNativeVersion.native.d.ts +4 -0
  255. package/lib/typescript/getShadowNodeFromRef.d.ts +1 -1
  256. package/lib/typescript/getShadowNodeFromRef.native.d.ts +1 -0
  257. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
  258. package/lib/typescript/handlers/PanGestureHandler.d.ts +4 -4
  259. package/lib/typescript/handlers/PressabilityDebugView.d.ts +1 -1
  260. package/lib/typescript/handlers/PressabilityDebugView.native.d.ts +1 -0
  261. package/lib/typescript/handlers/customDirectEventTypes.d.ts +2 -0
  262. package/lib/typescript/handlers/customDirectEventTypes.native.d.ts +1 -0
  263. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +11 -2
  264. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +38 -1
  265. package/lib/typescript/handlers/gestures/flingGesture.d.ts +11 -0
  266. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +14 -0
  267. package/lib/typescript/handlers/gestures/gesture.d.ts +114 -2
  268. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +57 -0
  269. package/lib/typescript/handlers/gestures/hoverGesture.d.ts +1 -1
  270. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +10 -0
  271. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +8 -0
  272. package/lib/typescript/handlers/gestures/panGesture.d.ts +67 -4
  273. package/lib/typescript/handlers/gestures/tapGesture.d.ts +35 -0
  274. package/lib/typescript/index.d.ts +1 -1
  275. package/lib/typescript/mocks.d.ts +1 -0
  276. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +4 -1
  277. package/lib/typescript/web/Gestures.d.ts +36 -0
  278. package/lib/typescript/web/constants.d.ts +1 -6
  279. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +3 -3
  280. package/lib/typescript/web/handlers/GestureHandler.d.ts +13 -11
  281. package/lib/typescript/web/handlers/IGestureHandler.d.ts +38 -0
  282. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +1 -0
  283. package/lib/typescript/web/interfaces.d.ts +8 -10
  284. package/lib/typescript/web/tools/EventManager.d.ts +15 -12
  285. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +3 -4
  286. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +7 -5
  287. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +3 -3
  288. package/lib/typescript/web/tools/InteractionManager.d.ts +6 -6
  289. package/lib/typescript/web/tools/NodeManager.d.ts +4 -3
  290. package/lib/typescript/web/tools/PointerEventManager.d.ts +11 -2
  291. package/lib/typescript/web/tools/TouchEventManager.d.ts +6 -1
  292. package/lib/typescript/web/tools/Vector.d.ts +15 -0
  293. package/lib/typescript/web/utils.d.ts +4 -4
  294. package/lib/typescript/web_hammer/NodeManager.d.ts +1 -1
  295. package/package.json +4 -2
  296. package/src/Directions.ts +21 -4
  297. package/src/RNGestureHandlerModule.native.ts +5 -0
  298. package/src/RNGestureHandlerModule.ts +104 -4
  299. package/src/RNRenderer.native.ts +3 -0
  300. package/src/RNRenderer.ts +3 -3
  301. package/src/components/DrawerLayout.tsx +1 -1
  302. package/src/components/GestureComponents.native.tsx +148 -0
  303. package/src/components/GestureComponents.tsx +24 -131
  304. package/src/components/GestureHandlerButton.native.tsx +5 -0
  305. package/src/components/GestureHandlerButton.tsx +5 -4
  306. package/src/components/{GestureHandlerRootView.web.tsx → GestureHandlerRootView.native.tsx} +6 -0
  307. package/src/components/GestureHandlerRootView.tsx +0 -6
  308. package/src/components/Swipeable.tsx +2 -0
  309. package/src/components/touchables/GenericTouchable.tsx +3 -0
  310. package/src/getReactNativeVersion.native.ts +11 -0
  311. package/src/getReactNativeVersion.ts +1 -9
  312. package/src/getShadowNodeFromRef.native.ts +44 -0
  313. package/src/getShadowNodeFromRef.ts +4 -41
  314. package/src/handlers/PanGestureHandler.ts +8 -4
  315. package/src/handlers/PressabilityDebugView.native.tsx +2 -0
  316. package/src/handlers/PressabilityDebugView.tsx +4 -2
  317. package/src/handlers/createHandler.tsx +24 -14
  318. package/src/handlers/customDirectEventTypes.native.ts +2 -0
  319. package/src/handlers/customDirectEventTypes.ts +5 -0
  320. package/src/handlers/gestureHandlerCommon.ts +28 -1
  321. package/src/handlers/gestures/GestureDetector.tsx +62 -4
  322. package/src/handlers/gestures/flingGesture.ts +11 -0
  323. package/src/handlers/gestures/forceTouchGesture.ts +14 -0
  324. package/src/handlers/gestures/gesture.ts +114 -1
  325. package/src/handlers/gestures/gestureObjects.ts +57 -0
  326. package/src/handlers/gestures/gestureStateManager.web.ts +1 -1
  327. package/src/handlers/gestures/hoverGesture.ts +1 -1
  328. package/src/handlers/gestures/longPressGesture.ts +10 -0
  329. package/src/handlers/gestures/nativeGesture.ts +8 -0
  330. package/src/handlers/gestures/panGesture.ts +75 -4
  331. package/src/handlers/gestures/tapGesture.ts +35 -0
  332. package/src/index.ts +1 -1
  333. package/src/mocks.ts +2 -0
  334. package/src/specs/RNGestureHandlerButtonNativeComponent.ts +4 -0
  335. package/src/utils.ts +9 -2
  336. package/src/web/Gestures.ts +41 -0
  337. package/src/web/constants.ts +1 -7
  338. package/src/web/handlers/FlingGestureHandler.ts +54 -24
  339. package/src/web/handlers/GestureHandler.ts +23 -19
  340. package/src/web/handlers/IGestureHandler.ts +50 -0
  341. package/src/web/handlers/NativeViewGestureHandler.ts +5 -6
  342. package/src/web/handlers/PanGestureHandler.ts +4 -0
  343. package/src/web/interfaces.ts +14 -10
  344. package/src/web/tools/EventManager.ts +16 -14
  345. package/src/web/tools/GestureHandlerDelegate.ts +3 -4
  346. package/src/web/tools/GestureHandlerOrchestrator.ts +160 -145
  347. package/src/web/tools/GestureHandlerWebDelegate.ts +14 -9
  348. package/src/web/tools/InteractionManager.ts +18 -12
  349. package/src/web/tools/NodeManager.ts +4 -3
  350. package/src/web/tools/PointerEventManager.ts +181 -166
  351. package/src/web/tools/TouchEventManager.ts +126 -114
  352. package/src/web/tools/Vector.ts +60 -0
  353. package/src/web/utils.ts +7 -4
  354. package/src/web_hammer/NodeManager.ts +1 -1
  355. package/lib/commonjs/RNGestureHandlerModule.web.js +0 -163
  356. package/lib/commonjs/RNGestureHandlerModule.web.js.map +0 -1
  357. package/lib/commonjs/RNRenderer.web.js +0 -11
  358. package/lib/commonjs/RNRenderer.web.js.map +0 -1
  359. package/lib/commonjs/components/GestureComponents.web.js +0 -52
  360. package/lib/commonjs/components/GestureComponents.web.js.map +0 -1
  361. package/lib/commonjs/components/GestureHandlerButton.web.js +0 -24
  362. package/lib/commonjs/components/GestureHandlerButton.web.js.map +0 -1
  363. package/lib/commonjs/components/GestureHandlerRootView.web.js.map +0 -1
  364. package/lib/commonjs/getReactNativeVersion.web.js +0 -11
  365. package/lib/commonjs/getReactNativeVersion.web.js.map +0 -1
  366. package/lib/commonjs/getShadowNodeFromRef.web.js +0 -15
  367. package/lib/commonjs/getShadowNodeFromRef.web.js.map +0 -1
  368. package/lib/commonjs/handlers/PressabilityDebugView.web.js +0 -12
  369. package/lib/commonjs/handlers/PressabilityDebugView.web.js.map +0 -1
  370. package/lib/module/RNGestureHandlerModule.web.js +0 -122
  371. package/lib/module/RNGestureHandlerModule.web.js.map +0 -1
  372. package/lib/module/RNRenderer.web.js +0 -4
  373. package/lib/module/RNRenderer.web.js.map +0 -1
  374. package/lib/module/components/GestureComponents.web.js +0 -28
  375. package/lib/module/components/GestureComponents.web.js.map +0 -1
  376. package/lib/module/components/GestureHandlerButton.web.js +0 -9
  377. package/lib/module/components/GestureHandlerButton.web.js.map +0 -1
  378. package/lib/module/components/GestureHandlerRootView.web.js.map +0 -1
  379. package/lib/module/getReactNativeVersion.web.js +0 -4
  380. package/lib/module/getReactNativeVersion.web.js.map +0 -1
  381. package/lib/module/getShadowNodeFromRef.web.js +0 -8
  382. package/lib/module/getShadowNodeFromRef.web.js.map +0 -1
  383. package/lib/module/handlers/PressabilityDebugView.web.js +0 -5
  384. package/lib/module/handlers/PressabilityDebugView.web.js.map +0 -1
  385. package/lib/typescript/RNGestureHandlerModule.web.d.ts +0 -50
  386. package/lib/typescript/RNRenderer.web.d.ts +0 -3
  387. package/lib/typescript/components/GestureComponents.web.d.ts +0 -8
  388. package/lib/typescript/components/GestureHandlerButton.web.d.ts +0 -4
  389. package/lib/typescript/getReactNativeVersion.web.d.ts +0 -1
  390. package/lib/typescript/getShadowNodeFromRef.web.d.ts +0 -1
  391. package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +0 -1
  392. package/src/RNGestureHandlerModule.web.ts +0 -146
  393. package/src/RNRenderer.web.ts +0 -3
  394. package/src/components/GestureComponents.web.tsx +0 -41
  395. package/src/components/GestureHandlerButton.web.tsx +0 -6
  396. package/src/getReactNativeVersion.web.ts +0 -3
  397. package/src/getShadowNodeFromRef.web.ts +0 -7
  398. package/src/handlers/PressabilityDebugView.web.tsx +0 -4
  399. /package/lib/typescript/components/{GestureHandlerRootView.web.d.ts → GestureHandlerRootView.native.d.ts} +0 -0
@@ -1,148 +1,41 @@
1
1
  import * as React from 'react';
2
2
  import {
3
- PropsWithChildren,
4
- ForwardedRef,
5
- RefAttributes,
6
- ReactElement,
7
- } from 'react';
8
- import {
9
- ScrollView as RNScrollView,
10
- ScrollViewProps as RNScrollViewProps,
3
+ FlatList as RNFlatList,
11
4
  Switch as RNSwitch,
12
- SwitchProps as RNSwitchProps,
13
5
  TextInput as RNTextInput,
14
- TextInputProps as RNTextInputProps,
15
- DrawerLayoutAndroid as RNDrawerLayoutAndroid,
16
- DrawerLayoutAndroidProps as RNDrawerLayoutAndroidProps,
17
- FlatList as RNFlatList,
18
- FlatListProps as RNFlatListProps,
19
- RefreshControl as RNRefreshControl,
6
+ ScrollView as RNScrollView,
7
+ FlatListProps,
8
+ View,
20
9
  } from 'react-native';
21
10
 
22
11
  import createNativeWrapper from '../handlers/createNativeWrapper';
23
12
 
24
- import {
25
- NativeViewGestureHandlerProps,
26
- nativeViewProps,
27
- } from '../handlers/NativeViewGestureHandler';
28
-
29
- import { toArray } from '../utils';
30
-
31
- export const RefreshControl = createNativeWrapper(RNRefreshControl, {
32
- disallowInterruption: true,
33
- shouldCancelWhenOutside: false,
13
+ export const ScrollView = createNativeWrapper(RNScrollView, {
14
+ disallowInterruption: false,
34
15
  });
35
- // eslint-disable-next-line @typescript-eslint/no-redeclare
36
- export type RefreshControl = typeof RefreshControl & RNRefreshControl;
37
-
38
- const GHScrollView = createNativeWrapper<PropsWithChildren<RNScrollViewProps>>(
39
- RNScrollView,
40
- {
41
- disallowInterruption: true,
42
- shouldCancelWhenOutside: false,
43
- }
44
- );
45
- export const ScrollView = React.forwardRef<
46
- RNScrollView,
47
- RNScrollViewProps & NativeViewGestureHandlerProps
48
- >((props, ref) => {
49
- const refreshControlGestureRef = React.useRef<RefreshControl>(null);
50
- const { refreshControl, waitFor, ...rest } = props;
51
16
 
52
- return (
53
- <GHScrollView
54
- {...rest}
55
- // @ts-ignore `ref` exists on `GHScrollView`
56
- ref={ref}
57
- waitFor={[...toArray(waitFor ?? []), refreshControlGestureRef]}
58
- // @ts-ignore we don't pass `refreshing` prop as we only want to override the ref
59
- refreshControl={
60
- refreshControl
61
- ? React.cloneElement(refreshControl, {
62
- // @ts-ignore for reasons unknown to me, `ref` doesn't exist on the type inferred by TS
63
- ref: refreshControlGestureRef,
64
- })
65
- : undefined
66
- }
67
- />
68
- );
69
- });
70
- // backward type compatibility with https://github.com/software-mansion/react-native-gesture-handler/blob/db78d3ca7d48e8ba57482d3fe9b0a15aa79d9932/react-native-gesture-handler.d.ts#L440-L457
71
- // include methods of wrapped components by creating an intersection type with the RN component instead of duplicating them.
72
- // eslint-disable-next-line @typescript-eslint/no-redeclare
73
- export type ScrollView = typeof GHScrollView & RNScrollView;
74
-
75
- export const Switch = createNativeWrapper<RNSwitchProps>(RNSwitch, {
17
+ export const Switch = createNativeWrapper(RNSwitch, {
76
18
  shouldCancelWhenOutside: false,
77
19
  shouldActivateOnStart: true,
78
20
  disallowInterruption: true,
79
21
  });
80
- // eslint-disable-next-line @typescript-eslint/no-redeclare
81
- export type Switch = typeof Switch & RNSwitch;
82
-
83
- export const TextInput = createNativeWrapper<RNTextInputProps>(RNTextInput);
84
- // eslint-disable-next-line @typescript-eslint/no-redeclare
85
- export type TextInput = typeof TextInput & RNTextInput;
86
-
87
- export const DrawerLayoutAndroid = createNativeWrapper<
88
- PropsWithChildren<RNDrawerLayoutAndroidProps>
89
- >(RNDrawerLayoutAndroid, { disallowInterruption: true });
90
- // eslint-disable-next-line @typescript-eslint/no-redeclare
91
- export type DrawerLayoutAndroid = typeof DrawerLayoutAndroid &
92
- RNDrawerLayoutAndroid;
93
-
94
- export const FlatList = React.forwardRef((props, ref) => {
95
- const refreshControlGestureRef = React.useRef<RefreshControl>(null);
96
-
97
- const { waitFor, refreshControl, ...rest } = props;
98
-
99
- const flatListProps = {};
100
- const scrollViewProps = {};
101
- for (const [propName, value] of Object.entries(rest)) {
102
- // https://github.com/microsoft/TypeScript/issues/26255
103
- if ((nativeViewProps as readonly string[]).includes(propName)) {
104
- // @ts-ignore - this function cannot have generic type so we have to ignore this error
105
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
106
- scrollViewProps[propName] = value;
107
- } else {
108
- // @ts-ignore - this function cannot have generic type so we have to ignore this error
109
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
110
- flatListProps[propName] = value;
111
- }
112
- }
113
-
114
- return (
115
- // @ts-ignore - this function cannot have generic type so we have to ignore this error
22
+ export const TextInput = createNativeWrapper(RNTextInput);
23
+ export const DrawerLayoutAndroid = () => {
24
+ console.warn('DrawerLayoutAndroid is not supported on web!');
25
+ return <View />;
26
+ };
27
+
28
+ // RefreshControl is implemented as a functional component, rendering a View
29
+ // NativeViewGestureHandler needs to set a ref on its child, which cannot be done
30
+ // on functional components
31
+ export const RefreshControl = createNativeWrapper(View);
32
+
33
+ export const FlatList = React.forwardRef(
34
+ <ItemT extends any>(props: FlatListProps<ItemT>, ref: any) => (
116
35
  <RNFlatList
117
36
  ref={ref}
118
- {...flatListProps}
119
- renderScrollComponent={(scrollProps) => (
120
- <ScrollView
121
- {...{
122
- ...scrollProps,
123
- ...scrollViewProps,
124
- waitFor: [...toArray(waitFor ?? []), refreshControlGestureRef],
125
- }}
126
- />
127
- )}
128
- // @ts-ignore we don't pass `refreshing` prop as we only want to override the ref
129
- refreshControl={
130
- refreshControl
131
- ? React.cloneElement(refreshControl, {
132
- // @ts-ignore for reasons unknown to me, `ref` doesn't exist on the type inferred by TS
133
- ref: refreshControlGestureRef,
134
- })
135
- : undefined
136
- }
37
+ {...props}
38
+ renderScrollComponent={(scrollProps) => <ScrollView {...scrollProps} />}
137
39
  />
138
- );
139
- }) as <ItemT = any>(
140
- props: PropsWithChildren<
141
- RNFlatListProps<ItemT> &
142
- RefAttributes<FlatList<ItemT>> &
143
- NativeViewGestureHandlerProps
144
- >,
145
- ref: ForwardedRef<FlatList<ItemT>>
146
- ) => ReactElement | null;
147
- // eslint-disable-next-line @typescript-eslint/no-redeclare
148
- export type FlatList<ItemT = any> = typeof FlatList & RNFlatList<ItemT>;
40
+ )
41
+ );
@@ -0,0 +1,5 @@
1
+ import { HostComponent } from 'react-native';
2
+ import { RawButtonProps } from './GestureButtons';
3
+ import RNGestureHandlerButtonNativeComponent from '../specs/RNGestureHandlerButtonNativeComponent';
4
+
5
+ export default RNGestureHandlerButtonNativeComponent as HostComponent<RawButtonProps>;
@@ -1,5 +1,6 @@
1
- import { HostComponent } from 'react-native';
2
- import { RawButtonProps } from './GestureButtons';
3
- import RNGestureHandlerButtonNativeComponent from '../specs/RNGestureHandlerButtonNativeComponent';
1
+ import * as React from 'react';
2
+ import { View } from 'react-native';
4
3
 
5
- export default RNGestureHandlerButtonNativeComponent as HostComponent<RawButtonProps>;
4
+ export default React.forwardRef<View>((props, ref) => (
5
+ <View ref={ref} accessibilityRole="button" {...props} />
6
+ ));
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { PropsWithChildren } from 'react';
3
3
  import { View, ViewProps, StyleSheet } from 'react-native';
4
+ import { maybeInitializeFabric } from '../init';
4
5
  import GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';
5
6
 
6
7
  export interface GestureHandlerRootViewProps
@@ -10,6 +11,11 @@ export default function GestureHandlerRootView({
10
11
  style,
11
12
  ...rest
12
13
  }: GestureHandlerRootViewProps) {
14
+ // try initialize fabric on the first render, at this point we can
15
+ // reliably check if fabric is enabled (the function contains a flag
16
+ // to make sure it's called only once)
17
+ maybeInitializeFabric();
18
+
13
19
  return (
14
20
  <GestureHandlerRootViewContext.Provider value>
15
21
  <View style={style ?? styles.container} {...rest} />
@@ -1,7 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { PropsWithChildren } from 'react';
3
3
  import { View, ViewProps, StyleSheet } from 'react-native';
4
- import { maybeInitializeFabric } from '../init';
5
4
  import GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';
6
5
 
7
6
  export interface GestureHandlerRootViewProps
@@ -11,11 +10,6 @@ export default function GestureHandlerRootView({
11
10
  style,
12
11
  ...rest
13
12
  }: GestureHandlerRootViewProps) {
14
- // try initialize fabric on the first render, at this point we can
15
- // reliably check if fabric is enabled (the function contains a flag
16
- // to make sure it's called only once)
17
- maybeInitializeFabric();
18
-
19
13
  return (
20
14
  <GestureHandlerRootViewContext.Provider value>
21
15
  <View style={style ?? styles.container} {...rest} />
@@ -541,6 +541,7 @@ export default class Swipeable extends Component<
541
541
  return (
542
542
  <PanGestureHandler
543
543
  activeOffsetX={[-dragOffsetFromRightEdge, dragOffsetFromLeftEdge]}
544
+ touchAction="pan-y"
544
545
  {...this.props}
545
546
  onGestureEvent={this.onGestureEvent}
546
547
  onHandlerStateChange={this.onHandlerStateChange}>
@@ -551,6 +552,7 @@ export default class Swipeable extends Component<
551
552
  {right}
552
553
  <TapGestureHandler
553
554
  enabled={rowState !== 0}
555
+ touchAction="pan-y"
554
556
  onHandlerStateChange={this.onTapHandlerStateChange}>
555
557
  <Animated.View
556
558
  pointerEvents={rowState === 0 ? 'auto' : 'box-only'}
@@ -15,6 +15,7 @@ import { BaseButton } from '../GestureButtons';
15
15
  import {
16
16
  GestureEvent,
17
17
  HandlerStateChangeEvent,
18
+ UserSelect,
18
19
  } from '../../handlers/gestureHandlerCommon';
19
20
  import { NativeViewGestureHandlerPayload } from '../../handlers/NativeViewGestureHandler';
20
21
  import { TouchableNativeFeedbackExtraProps } from './TouchableNativeFeedback.android';
@@ -51,6 +52,7 @@ export interface GenericTouchableProps
51
52
 
52
53
  containerStyle?: StyleProp<ViewStyle>;
53
54
  hitSlop?: Insets | number;
55
+ userSelect?: UserSelect;
54
56
  }
55
57
 
56
58
  interface InternalProps {
@@ -286,6 +288,7 @@ export default class GenericTouchable extends Component<
286
288
  }
287
289
  onGestureEvent={this.onGestureEvent}
288
290
  hitSlop={hitSlop}
291
+ userSelect={this.props.userSelect}
289
292
  shouldActivateOnStart={this.props.shouldActivateOnStart}
290
293
  disallowInterruption={this.props.disallowInterruption}
291
294
  testID={this.props.testID}
@@ -0,0 +1,11 @@
1
+ import pack from 'react-native/package.json';
2
+
3
+ const [majorStr, minorStr] = pack.version.split('.');
4
+ const REACT_NATIVE_VERSION = {
5
+ major: parseInt(majorStr, 10),
6
+ minor: parseInt(minorStr, 10),
7
+ };
8
+
9
+ export function getReactNativeVersion() {
10
+ return REACT_NATIVE_VERSION;
11
+ }
@@ -1,11 +1,3 @@
1
- import pack from 'react-native/package.json';
2
-
3
- const [majorStr, minorStr] = pack.version.split('.');
4
- const REACT_NATIVE_VERSION = {
5
- major: parseInt(majorStr, 10),
6
- minor: parseInt(minorStr, 10),
7
- };
8
-
9
1
  export function getReactNativeVersion() {
10
- return REACT_NATIVE_VERSION;
2
+ throw new Error('getReactNativeVersion is not supported on web');
11
3
  }
@@ -0,0 +1,44 @@
1
+ // Used by GestureDetector (unsupported on web at the moment) to check whether the
2
+ // attached view may get flattened on Fabric. This implementation causes errors
3
+ // on web due to the static resolution of `require` statements by webpack breaking
4
+ // the conditional importing. Solved by making .web file.
5
+ let findHostInstance_DEPRECATED: (ref: unknown) => void;
6
+ let getInternalInstanceHandleFromPublicInstance: (ref: unknown) => {
7
+ stateNode: { node: unknown };
8
+ };
9
+
10
+ export function getShadowNodeFromRef(ref: unknown) {
11
+ // load findHostInstance_DEPRECATED lazily because it may not be available before render
12
+ if (findHostInstance_DEPRECATED === undefined) {
13
+ try {
14
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
15
+ findHostInstance_DEPRECATED =
16
+ // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access
17
+ require('react-native/Libraries/Renderer/shims/ReactFabric').findHostInstance_DEPRECATED;
18
+ } catch (e) {
19
+ findHostInstance_DEPRECATED = (_ref: unknown) => null;
20
+ }
21
+ }
22
+
23
+ // load findHostInstance_DEPRECATED lazily because it may not be available before render
24
+ if (getInternalInstanceHandleFromPublicInstance === undefined) {
25
+ try {
26
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
27
+ getInternalInstanceHandleFromPublicInstance =
28
+ // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access
29
+ require('react-native/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance')
30
+ .getInternalInstanceHandleFromPublicInstance ??
31
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return
32
+ ((ref: any) => ref._internalInstanceHandle);
33
+ } catch (e) {
34
+ getInternalInstanceHandleFromPublicInstance = (ref: any) =>
35
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return
36
+ ref._internalInstanceHandle;
37
+ }
38
+ }
39
+
40
+ // @ts-ignore Fabric
41
+ return getInternalInstanceHandleFromPublicInstance(
42
+ findHostInstance_DEPRECATED(ref)
43
+ ).stateNode.node;
44
+ }
@@ -1,44 +1,7 @@
1
1
  // Used by GestureDetector (unsupported on web at the moment) to check whether the
2
- // attached view may get flattened on Fabric. This implementation causes errors
2
+ // attached view may get flattened on Fabric. Original implementation causes errors
3
3
  // on web due to the static resolution of `require` statements by webpack breaking
4
- // the conditional importing. Solved by making .web file.
5
- let findHostInstance_DEPRECATED: (ref: unknown) => void;
6
- let getInternalInstanceHandleFromPublicInstance: (ref: unknown) => {
7
- stateNode: { node: unknown };
8
- };
9
-
10
- export function getShadowNodeFromRef(ref: unknown) {
11
- // load findHostInstance_DEPRECATED lazily because it may not be available before render
12
- if (findHostInstance_DEPRECATED === undefined) {
13
- try {
14
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
15
- findHostInstance_DEPRECATED =
16
- // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access
17
- require('react-native/Libraries/Renderer/shims/ReactFabric').findHostInstance_DEPRECATED;
18
- } catch (e) {
19
- findHostInstance_DEPRECATED = (_ref: unknown) => null;
20
- }
21
- }
22
-
23
- // load findHostInstance_DEPRECATED lazily because it may not be available before render
24
- if (getInternalInstanceHandleFromPublicInstance === undefined) {
25
- try {
26
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
27
- getInternalInstanceHandleFromPublicInstance =
28
- // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access
29
- require('react-native/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance')
30
- .getInternalInstanceHandleFromPublicInstance ??
31
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return
32
- ((ref: any) => ref._internalInstanceHandle);
33
- } catch (e) {
34
- getInternalInstanceHandleFromPublicInstance = (ref: any) =>
35
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return
36
- ref._internalInstanceHandle;
37
- }
38
- }
39
-
40
- // @ts-ignore Fabric
41
- return getInternalInstanceHandleFromPublicInstance(
42
- findHostInstance_DEPRECATED(ref)
43
- ).stateNode.node;
4
+ // the conditional importing.
5
+ export function getShadowNodeFromRef(_ref: any) {
6
+ return null;
44
7
  }
@@ -150,7 +150,9 @@ export interface PanGestureHandlerProps
150
150
  * to 0. If only one number `p` is given a range of `(-inf, p)` will be used
151
151
  * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.
152
152
  */
153
- activeOffsetY?: number | number[];
153
+ activeOffsetY?:
154
+ | number
155
+ | [activeOffsetYStart: number, activeOffsetYEnd: number];
154
156
 
155
157
  /**
156
158
  * Range along X axis (in points) where fingers travels without activation of
@@ -160,7 +162,9 @@ export interface PanGestureHandlerProps
160
162
  * to 0. If only one number `p` is given a range of `(-inf, p)` will be used
161
163
  * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.
162
164
  */
163
- activeOffsetX?: number | number[];
165
+ activeOffsetX?:
166
+ | number
167
+ | [activeOffsetXStart: number, activeOffsetXEnd: number];
164
168
 
165
169
  /**
166
170
  * When the finger moves outside this range (in points) along Y axis and
@@ -170,7 +174,7 @@ export interface PanGestureHandlerProps
170
174
  * to 0. If only one number `p` is given a range of `(-inf, p)` will be used
171
175
  * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.
172
176
  */
173
- failOffsetY?: number | number[];
177
+ failOffsetY?: number | [failOffsetYStart: number, failOffsetYEnd: number];
174
178
 
175
179
  /**
176
180
  * When the finger moves outside this range (in points) along X axis and
@@ -180,7 +184,7 @@ export interface PanGestureHandlerProps
180
184
  * to 0. If only one number `p` is given a range of `(-inf, p)` will be used
181
185
  * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.
182
186
  */
183
- failOffsetX?: number | number[];
187
+ failOffsetX?: number | [failOffsetXStart: number, failOffsetXEnd: number];
184
188
  }
185
189
 
186
190
  export const panHandlerName = 'PanGestureHandler';
@@ -0,0 +1,2 @@
1
+ // @ts-ignore it's not exported so we need to import it from path
2
+ export { PressabilityDebugView } from 'react-native/Libraries/Pressability/PressabilityDebug';
@@ -1,2 +1,4 @@
1
- // @ts-ignore it's not exported so we need to import it from path
2
- export { PressabilityDebugView } from 'react-native/Libraries/Pressability/PressabilityDebug';
1
+ // PressabilityDebugView is not implemented in react-native-web
2
+ export function PressabilityDebugView() {
3
+ return null;
4
+ }
@@ -5,12 +5,10 @@ import {
5
5
  DeviceEventEmitter,
6
6
  EmitterSubscription,
7
7
  } from 'react-native';
8
- // @ts-ignore - its taken straight from RN
9
- import { customDirectEventTypes } from 'react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry';
8
+ import { customDirectEventTypes } from './customDirectEventTypes';
10
9
  // @ts-ignore - it isn't typed by TS & don't have definitelyTyped types
11
10
  import deepEqual from 'lodash/isEqual';
12
11
  import RNGestureHandlerModule from '../RNGestureHandlerModule';
13
- import type RNGestureHandlerModuleWeb from '../RNGestureHandlerModule.web';
14
12
  import { State } from '../State';
15
13
  import {
16
14
  handlerIDToTag,
@@ -155,6 +153,14 @@ type InternalEventHandlers = {
155
153
  onGestureHandlerStateChange?: (event: any) => void;
156
154
  };
157
155
 
156
+ type AttachGestureHandlerWeb = (
157
+ handlerTag: number,
158
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
159
+ newView: any,
160
+ _actionType: ActionType,
161
+ propsRef: React.RefObject<unknown>
162
+ ) => void;
163
+
158
164
  const UNRESOLVED_REFS_RETRY_LIMIT = 1;
159
165
 
160
166
  // TODO(TS) - make sure that BaseGestureHandlerProps doesn't need other generic parameter to work with custom properties.
@@ -321,7 +327,7 @@ export default function createHandler<
321
327
  if (Platform.OS === 'web') {
322
328
  // typecast due to dynamic resolution, attachGestureHandler should have web version signature in this branch
323
329
  (
324
- RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler
330
+ RNGestureHandlerModule.attachGestureHandler as AttachGestureHandlerWeb
325
331
  )(
326
332
  this.handlerTag,
327
333
  newViewTag,
@@ -335,18 +341,22 @@ export default function createHandler<
335
341
  });
336
342
 
337
343
  const actionType = (() => {
338
- if (
339
- (this.props?.onGestureEvent &&
340
- 'current' in this.props.onGestureEvent) ||
341
- (this.props?.onHandlerStateChange &&
342
- 'current' in this.props.onHandlerStateChange)
343
- ) {
344
+ const onGestureEvent = this.props?.onGestureEvent;
345
+ const isGestureHandlerWorklet =
346
+ onGestureEvent &&
347
+ ('current' in onGestureEvent ||
348
+ 'workletEventHandler' in onGestureEvent);
349
+ const onHandlerStateChange = this.props?.onHandlerStateChange;
350
+ const isStateChangeHandlerWorklet =
351
+ onHandlerStateChange &&
352
+ ('current' in onHandlerStateChange ||
353
+ 'workletEventHandler' in onHandlerStateChange);
354
+ const isReanimatedHandler =
355
+ isGestureHandlerWorklet || isStateChangeHandlerWorklet;
356
+ if (isReanimatedHandler) {
344
357
  // Reanimated worklet
345
358
  return ActionType.REANIMATED_WORKLET;
346
- } else if (
347
- this.props?.onGestureEvent &&
348
- '__isNative' in this.props.onGestureEvent
349
- ) {
359
+ } else if (onGestureEvent && '__isNative' in onGestureEvent) {
350
360
  // Animated.event with useNativeDriver: true
351
361
  return ActionType.NATIVE_ANIMATED_EVENT;
352
362
  } else {
@@ -0,0 +1,2 @@
1
+ // @ts-ignore - its taken straight from RN
2
+ export { customDirectEventTypes } from 'react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry';
@@ -0,0 +1,5 @@
1
+ // customDirectEventTypes doesn't exist in react-native-web, therefore importing it
2
+ // directly in createHandler.tsx would end in crash.
3
+ const customDirectEventTypes = {};
4
+
5
+ export { customDirectEventTypes };
@@ -12,7 +12,6 @@ import { handlerIDToTag } from './handlersRegistry';
12
12
  import { toArray } from '../utils';
13
13
  import RNGestureHandlerModule from '../RNGestureHandlerModule';
14
14
  import { ghQueueMicrotask } from '../ghQueueMicrotask';
15
- import { MouseButton } from '../web/interfaces';
16
15
  import { PointerType } from '../PointerType';
17
16
 
18
17
  const commonProps = [
@@ -25,6 +24,7 @@ const commonProps = [
25
24
  'activeCursor',
26
25
  'mouseButton',
27
26
  'enableContextMenu',
27
+ 'touchAction',
28
28
  ] as const;
29
29
 
30
30
  const componentInteractionProps = [
@@ -113,6 +113,32 @@ export type ActiveCursor =
113
113
  | 'zoom-in'
114
114
  | 'zoom-out';
115
115
 
116
+ export enum MouseButton {
117
+ LEFT = 1,
118
+ RIGHT = 2,
119
+ MIDDLE = 4,
120
+ BUTTON_4 = 8,
121
+ BUTTON_5 = 16,
122
+ ALL = 31,
123
+ }
124
+
125
+ export type TouchAction =
126
+ | 'auto'
127
+ | 'none'
128
+ | 'pan-x'
129
+ | 'pan-left'
130
+ | 'pan-right'
131
+ | 'pan-y'
132
+ | 'pan-up'
133
+ | 'pan-down'
134
+ | 'pinch-zoom'
135
+ | 'manipulation'
136
+ | 'inherit'
137
+ | 'initial'
138
+ | 'revert'
139
+ | 'revert-layer'
140
+ | 'unset';
141
+
116
142
  //TODO(TS) events in handlers
117
143
 
118
144
  export interface GestureEvent<ExtraEventPayloadT = Record<string, unknown>> {
@@ -156,6 +182,7 @@ export type CommonGestureConfig = {
156
182
  activeCursor?: ActiveCursor;
157
183
  mouseButton?: MouseButton;
158
184
  enableContextMenu?: boolean;
185
+ touchAction?: TouchAction;
159
186
  };
160
187
 
161
188
  // Events payloads are types instead of interfaces due to TS limitation.