react-native-gesture-handler 1.10.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/README.md +7 -6
  2. package/android/build.gradle +23 -1
  3. package/android/gradle.properties +19 -0
  4. package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.kt +18 -0
  5. package/android/lib/src/main/java/com/swmansion/gesturehandler/Extensions.kt +11 -0
  6. package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +96 -0
  7. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +710 -0
  8. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.kt +8 -0
  9. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +562 -0
  10. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.kt +8 -0
  11. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.kt +21 -0
  12. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.kt +49 -0
  13. package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +97 -0
  14. package/android/lib/src/main/java/com/swmansion/gesturehandler/ManualGestureHandler.kt +11 -0
  15. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +129 -0
  16. package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.kt +9 -0
  17. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +289 -0
  18. package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.kt +88 -0
  19. package/android/lib/src/main/java/com/swmansion/gesturehandler/{PointerEventsConfig.java → PointerEventsConfig.kt} +3 -5
  20. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.kt +125 -0
  21. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.kt +79 -0
  22. package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +167 -0
  23. package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.kt +10 -0
  24. package/android/src/main/java/com/swmansion/common/GestureHandlerStateManager.kt +5 -0
  25. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +348 -0
  26. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +57 -0
  27. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +59 -0
  28. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +8 -0
  29. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +61 -0
  30. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +686 -0
  31. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.kt +17 -0
  32. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +95 -0
  33. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +132 -0
  34. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.kt +5 -0
  35. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +68 -0
  36. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +34 -0
  37. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +66 -0
  38. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +69 -0
  39. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +51 -0
  40. package/ios/Handlers/RNFlingHandler.m +78 -5
  41. package/ios/Handlers/RNForceTouchHandler.m +29 -4
  42. package/ios/Handlers/RNLongPressHandler.m +105 -3
  43. package/ios/Handlers/RNManualHandler.h +4 -0
  44. package/ios/Handlers/RNManualHandler.m +73 -0
  45. package/ios/Handlers/RNNativeViewHandler.m +30 -2
  46. package/ios/Handlers/RNPanHandler.m +64 -4
  47. package/ios/Handlers/RNPinchHandler.m +61 -2
  48. package/ios/Handlers/RNRotationHandler.m +60 -1
  49. package/ios/Handlers/RNTapHandler.m +55 -8
  50. package/ios/RNGestureHandler.h +18 -4
  51. package/ios/RNGestureHandler.m +123 -13
  52. package/ios/RNGestureHandler.xcodeproj/xcuserdata/mdk.xcuserdatad/xcschemes/RNGestureHandler.xcscheme +80 -0
  53. package/ios/RNGestureHandler.xcodeproj/xcuserdata/mdk.xcuserdatad/xcschemes/xcschememanagement.plist +27 -0
  54. package/ios/RNGestureHandlerEvents.h +9 -0
  55. package/ios/RNGestureHandlerEvents.m +34 -0
  56. package/ios/RNGestureHandlerManager.h +7 -0
  57. package/ios/RNGestureHandlerManager.m +62 -34
  58. package/ios/RNGestureHandlerModule.m +39 -3
  59. package/ios/RNGestureHandlerPointerTracker.h +25 -0
  60. package/ios/RNGestureHandlerPointerTracker.m +237 -0
  61. package/ios/RNGestureHandlerRegistry.h +1 -0
  62. package/ios/RNGestureHandlerRegistry.m +10 -0
  63. package/ios/RNGestureHandlerStateManager.h +5 -0
  64. package/ios/RNManualActivationRecognizer.h +10 -0
  65. package/ios/RNManualActivationRecognizer.m +80 -0
  66. package/ios/RNRootViewGestureRecognizer.m +1 -1
  67. package/ios/RNTouchEventType.h +9 -0
  68. package/lib/commonjs/EventType.js +16 -0
  69. package/lib/commonjs/EventType.js.map +1 -0
  70. package/lib/commonjs/GestureHandlerRootView.android.js +1 -13
  71. package/lib/commonjs/GestureHandlerRootView.android.js.map +1 -1
  72. package/lib/commonjs/GestureHandlerRootView.js +11 -3
  73. package/lib/commonjs/GestureHandlerRootView.js.map +1 -1
  74. package/lib/commonjs/RNGestureHandlerModule.js +3 -1
  75. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
  76. package/lib/commonjs/RNGestureHandlerModule.web.js +2 -2
  77. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  78. package/lib/commonjs/components/DrawerLayout.js +41 -37
  79. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  80. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  81. package/lib/commonjs/components/GestureComponents.js +31 -12
  82. package/lib/commonjs/components/GestureComponents.js.map +1 -1
  83. package/lib/commonjs/components/Swipeable.js +10 -6
  84. package/lib/commonjs/components/Swipeable.js.map +1 -1
  85. package/lib/commonjs/components/touchables/GenericTouchable.js +2 -1
  86. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  87. package/lib/commonjs/components/touchables/TouchableOpacity.js +1 -1
  88. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  89. package/lib/commonjs/gestureHandlerRootHOC.js +1 -1
  90. package/lib/commonjs/gestureHandlerRootHOC.js.map +1 -1
  91. package/lib/commonjs/handlers/FlingGestureHandler.js +23 -0
  92. package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -0
  93. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +44 -0
  94. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -0
  95. package/lib/commonjs/handlers/LongPressGestureHandler.js +23 -0
  96. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -0
  97. package/lib/commonjs/handlers/NativeViewGestureHandler.js +6 -4
  98. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
  99. package/lib/commonjs/handlers/PanGestureHandler.js +121 -0
  100. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -0
  101. package/lib/commonjs/handlers/PinchGestureHandler.js +21 -0
  102. package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -0
  103. package/lib/commonjs/handlers/RotationGestureHandler.js +21 -0
  104. package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -0
  105. package/lib/commonjs/handlers/TapGestureHandler.js +23 -0
  106. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -0
  107. package/lib/commonjs/handlers/createHandler.js +52 -83
  108. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  109. package/lib/commonjs/handlers/gestureHandlerCommon.js +80 -0
  110. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -0
  111. package/lib/commonjs/handlers/gestures/GestureDetector.js +415 -0
  112. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -0
  113. package/lib/commonjs/handlers/gestures/eventReceiver.js +112 -0
  114. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -0
  115. package/lib/commonjs/handlers/gestures/flingGesture.js +34 -0
  116. package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -0
  117. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +39 -0
  118. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -0
  119. package/lib/commonjs/handlers/gestures/gesture.js +177 -0
  120. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -0
  121. package/lib/commonjs/handlers/gestures/gestureComposition.js +94 -0
  122. package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -0
  123. package/lib/commonjs/handlers/gestures/gestureObjects.js +85 -0
  124. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -0
  125. package/lib/commonjs/handlers/gestures/gestureStateManager.js +58 -0
  126. package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -0
  127. package/lib/commonjs/handlers/gestures/longPressGesture.js +34 -0
  128. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -0
  129. package/lib/commonjs/handlers/gestures/manualGesture.js +19 -0
  130. package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -0
  131. package/lib/commonjs/handlers/gestures/nativeGesture.js +34 -0
  132. package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -0
  133. package/lib/commonjs/handlers/gestures/panGesture.js +116 -0
  134. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -0
  135. package/lib/commonjs/handlers/gestures/pinchGesture.js +19 -0
  136. package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -0
  137. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +24 -0
  138. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -0
  139. package/lib/commonjs/handlers/gestures/rotationGesture.js +19 -0
  140. package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -0
  141. package/lib/commonjs/handlers/gestures/tapGesture.js +59 -0
  142. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -0
  143. package/lib/commonjs/handlers/handlersRegistry.js +31 -0
  144. package/lib/commonjs/handlers/handlersRegistry.js.map +1 -0
  145. package/lib/commonjs/index.js +146 -8
  146. package/lib/commonjs/index.js.map +1 -1
  147. package/lib/commonjs/init.js +13 -0
  148. package/lib/commonjs/init.js.map +1 -0
  149. package/lib/commonjs/mocks.js +31 -2
  150. package/lib/commonjs/mocks.js.map +1 -1
  151. package/lib/commonjs/utils.js +15 -0
  152. package/lib/commonjs/utils.js.map +1 -0
  153. package/lib/commonjs/web/Errors.js +1 -1
  154. package/lib/commonjs/web/Errors.js.map +1 -1
  155. package/lib/commonjs/web/GestureHandler.js +4 -6
  156. package/lib/commonjs/web/GestureHandler.js.map +1 -1
  157. package/lib/commonjs/web/NodeManager.js +8 -2
  158. package/lib/commonjs/web/NodeManager.js.map +1 -1
  159. package/lib/module/EventType.js +8 -0
  160. package/lib/module/EventType.js.map +1 -0
  161. package/lib/module/GestureHandlerRootView.android.js +2 -14
  162. package/lib/module/GestureHandlerRootView.android.js.map +1 -1
  163. package/lib/module/GestureHandlerRootView.js +5 -1
  164. package/lib/module/GestureHandlerRootView.js.map +1 -1
  165. package/lib/module/RNGestureHandlerModule.js +3 -1
  166. package/lib/module/RNGestureHandlerModule.js.map +1 -1
  167. package/lib/module/RNGestureHandlerModule.web.js +2 -2
  168. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  169. package/lib/module/components/DrawerLayout.js +43 -40
  170. package/lib/module/components/DrawerLayout.js.map +1 -1
  171. package/lib/module/components/GestureButtons.js.map +1 -1
  172. package/lib/module/components/GestureComponents.js +29 -11
  173. package/lib/module/components/GestureComponents.js.map +1 -1
  174. package/lib/module/components/Swipeable.js +9 -6
  175. package/lib/module/components/Swipeable.js.map +1 -1
  176. package/lib/module/components/touchables/GenericTouchable.js +2 -1
  177. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  178. package/lib/module/components/touchables/TouchableOpacity.js +1 -1
  179. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  180. package/lib/module/gestureHandlerRootHOC.js +1 -1
  181. package/lib/module/gestureHandlerRootHOC.js.map +1 -1
  182. package/lib/module/handlers/FlingGestureHandler.js +10 -0
  183. package/lib/module/handlers/FlingGestureHandler.js.map +1 -0
  184. package/lib/module/handlers/ForceTouchGestureHandler.js +29 -0
  185. package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -0
  186. package/lib/module/handlers/LongPressGestureHandler.js +10 -0
  187. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -0
  188. package/lib/module/handlers/NativeViewGestureHandler.js +4 -3
  189. package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
  190. package/lib/module/handlers/PanGestureHandler.js +106 -0
  191. package/lib/module/handlers/PanGestureHandler.js.map +1 -0
  192. package/lib/module/handlers/PinchGestureHandler.js +9 -0
  193. package/lib/module/handlers/PinchGestureHandler.js.map +1 -0
  194. package/lib/module/handlers/RotationGestureHandler.js +9 -0
  195. package/lib/module/handlers/RotationGestureHandler.js.map +1 -0
  196. package/lib/module/handlers/TapGestureHandler.js +10 -0
  197. package/lib/module/handlers/TapGestureHandler.js.map +1 -0
  198. package/lib/module/handlers/createHandler.js +41 -76
  199. package/lib/module/handlers/createHandler.js.map +1 -1
  200. package/lib/module/handlers/gestureHandlerCommon.js +66 -0
  201. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -0
  202. package/lib/module/handlers/gestures/GestureDetector.js +378 -0
  203. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -0
  204. package/lib/module/handlers/gestures/eventReceiver.js +97 -0
  205. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -0
  206. package/lib/module/handlers/gestures/flingGesture.js +24 -0
  207. package/lib/module/handlers/gestures/flingGesture.js.map +1 -0
  208. package/lib/module/handlers/gestures/forceTouchGesture.js +29 -0
  209. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -0
  210. package/lib/module/handlers/gestures/gesture.js +159 -0
  211. package/lib/module/handlers/gestures/gesture.js.map +1 -0
  212. package/lib/module/handlers/gestures/gestureComposition.js +79 -0
  213. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -0
  214. package/lib/module/handlers/gestures/gestureObjects.js +67 -0
  215. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -0
  216. package/lib/module/handlers/gestures/gestureStateManager.js +48 -0
  217. package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -0
  218. package/lib/module/handlers/gestures/longPressGesture.js +24 -0
  219. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -0
  220. package/lib/module/handlers/gestures/manualGesture.js +9 -0
  221. package/lib/module/handlers/gestures/manualGesture.js.map +1 -0
  222. package/lib/module/handlers/gestures/nativeGesture.js +24 -0
  223. package/lib/module/handlers/gestures/nativeGesture.js.map +1 -0
  224. package/lib/module/handlers/gestures/panGesture.js +106 -0
  225. package/lib/module/handlers/gestures/panGesture.js.map +1 -0
  226. package/lib/module/handlers/gestures/pinchGesture.js +9 -0
  227. package/lib/module/handlers/gestures/pinchGesture.js.map +1 -0
  228. package/lib/module/handlers/gestures/reanimatedWrapper.js +19 -0
  229. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -0
  230. package/lib/module/handlers/gestures/rotationGesture.js +9 -0
  231. package/lib/module/handlers/gestures/rotationGesture.js.map +1 -0
  232. package/lib/module/handlers/gestures/tapGesture.js +49 -0
  233. package/lib/module/handlers/gestures/tapGesture.js.map +1 -0
  234. package/lib/module/handlers/handlersRegistry.js +16 -0
  235. package/lib/module/handlers/handlersRegistry.js.map +1 -0
  236. package/lib/module/index.js +22 -1
  237. package/lib/module/index.js.map +1 -1
  238. package/lib/module/init.js +5 -0
  239. package/lib/module/init.js.map +1 -0
  240. package/lib/module/mocks.js +31 -2
  241. package/lib/module/mocks.js.map +1 -1
  242. package/lib/module/utils.js +8 -0
  243. package/lib/module/utils.js.map +1 -0
  244. package/lib/module/web/Errors.js +1 -1
  245. package/lib/module/web/Errors.js.map +1 -1
  246. package/lib/module/web/GestureHandler.js +4 -6
  247. package/lib/module/web/GestureHandler.js.map +1 -1
  248. package/lib/module/web/NodeManager.js +8 -2
  249. package/lib/module/web/NodeManager.js.map +1 -1
  250. package/lib/typescript/EventType.d.ts +8 -0
  251. package/lib/typescript/GestureHandlerRootView.android.d.ts +2 -4
  252. package/lib/typescript/GestureHandlerRootView.d.ts +5 -2
  253. package/lib/typescript/RNGestureHandlerModule.d.ts +1 -1
  254. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
  255. package/lib/typescript/components/DrawerLayout.d.ts +50 -1
  256. package/lib/typescript/components/GestureButtons.d.ts +36 -0
  257. package/lib/typescript/components/GestureComponents.d.ts +8 -35
  258. package/lib/typescript/components/Swipeable.d.ts +73 -6
  259. package/lib/typescript/components/touchables/GenericTouchable.d.ts +2 -2
  260. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +1 -0
  261. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +1 -0
  262. package/lib/typescript/handlers/FlingGestureHandler.d.ts +33 -0
  263. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +43 -0
  264. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +55 -0
  265. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +19 -4
  266. package/lib/typescript/handlers/PanGestureHandler.d.ts +137 -0
  267. package/lib/typescript/handlers/PinchGestureHandler.d.ts +28 -0
  268. package/lib/typescript/handlers/RotationGestureHandler.d.ts +28 -0
  269. package/lib/typescript/handlers/TapGestureHandler.d.ts +56 -0
  270. package/lib/typescript/handlers/createHandler.d.ts +1 -1
  271. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +62 -0
  272. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +8 -1
  273. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +16 -0
  274. package/lib/typescript/handlers/gestures/eventReceiver.d.ts +2 -0
  275. package/lib/typescript/handlers/gestures/flingGesture.d.ts +9 -0
  276. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +10 -0
  277. package/lib/typescript/handlers/gestures/gesture.d.ts +90 -0
  278. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +21 -0
  279. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +39 -0
  280. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +9 -0
  281. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +9 -0
  282. package/lib/typescript/handlers/gestures/manualGesture.d.ts +5 -0
  283. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +9 -0
  284. package/lib/typescript/handlers/gestures/panGesture.d.ts +19 -0
  285. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +6 -0
  286. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +14 -0
  287. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +6 -0
  288. package/lib/typescript/handlers/gestures/tapGesture.d.ts +14 -0
  289. package/lib/typescript/handlers/handlersRegistry.d.ts +6 -0
  290. package/lib/typescript/index.d.ts +29 -2
  291. package/lib/typescript/init.d.ts +1 -0
  292. package/lib/typescript/mocks.d.ts +21 -2
  293. package/lib/typescript/utils.d.ts +1 -0
  294. package/lib/typescript/web/FlingGestureHandler.d.ts +0 -1
  295. package/lib/typescript/web/GestureHandler.d.ts +0 -1
  296. package/lib/typescript/web/PanGestureHandler.d.ts +0 -1
  297. package/lib/typescript/web/PinchGestureHandler.d.ts +0 -1
  298. package/lib/typescript/web/PressGestureHandler.d.ts +0 -1
  299. package/lib/typescript/web/RotationGestureHandler.d.ts +0 -1
  300. package/lib/typescript/web/TapGestureHandler.d.ts +0 -1
  301. package/package.json +7 -5
  302. package/src/EventType.ts +10 -0
  303. package/src/GestureHandlerRootView.android.tsx +9 -25
  304. package/src/GestureHandlerRootView.tsx +11 -2
  305. package/src/RNGestureHandlerModule.ts +5 -1
  306. package/src/RNGestureHandlerModule.web.ts +1 -0
  307. package/src/components/DrawerLayout.tsx +114 -41
  308. package/src/components/GestureButtons.tsx +45 -5
  309. package/src/components/GestureComponents.tsx +47 -41
  310. package/src/components/Swipeable.tsx +108 -21
  311. package/src/components/touchables/GenericTouchable.tsx +2 -1
  312. package/src/components/touchables/TouchableOpacity.tsx +1 -1
  313. package/src/handlers/FlingGestureHandler.ts +57 -0
  314. package/src/handlers/ForceTouchGestureHandler.ts +83 -0
  315. package/src/handlers/LongPressGestureHandler.ts +84 -0
  316. package/src/handlers/NativeViewGestureHandler.ts +31 -7
  317. package/src/handlers/PanGestureHandler.ts +321 -0
  318. package/src/handlers/PinchGestureHandler.ts +46 -0
  319. package/src/handlers/RotationGestureHandler.ts +46 -0
  320. package/src/handlers/TapGestureHandler.ts +90 -0
  321. package/src/handlers/createHandler.ts +54 -79
  322. package/src/handlers/gestureHandlerCommon.ts +185 -0
  323. package/src/handlers/gestureHandlerTypesCompat.ts +19 -5
  324. package/src/handlers/gestures/GestureDetector.tsx +490 -0
  325. package/src/handlers/gestures/eventReceiver.ts +129 -0
  326. package/src/handlers/gestures/flingGesture.ts +27 -0
  327. package/src/handlers/gestures/forceTouchGesture.ts +32 -0
  328. package/src/handlers/gestures/gesture.ts +262 -0
  329. package/src/handlers/gestures/gestureComposition.ts +109 -0
  330. package/src/handlers/gestures/gestureObjects.ts +79 -0
  331. package/src/handlers/gestures/gestureStateManager.ts +60 -0
  332. package/src/handlers/gestures/longPressGesture.ts +27 -0
  333. package/src/handlers/gestures/manualGesture.ts +11 -0
  334. package/src/handlers/gestures/nativeGesture.ts +27 -0
  335. package/src/handlers/gestures/panGesture.ts +105 -0
  336. package/src/handlers/gestures/pinchGesture.ts +12 -0
  337. package/src/handlers/gestures/reanimatedWrapper.ts +45 -0
  338. package/src/handlers/gestures/rotationGesture.ts +12 -0
  339. package/src/handlers/gestures/tapGesture.ts +52 -0
  340. package/src/handlers/handlersRegistry.ts +22 -0
  341. package/src/index.ts +57 -17
  342. package/src/init.ts +5 -0
  343. package/src/mocks.ts +42 -2
  344. package/src/utils.ts +7 -0
  345. package/src/web/GestureHandler.ts +1 -2
  346. package/src/web/NodeManager.ts +5 -0
  347. package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.java +0 -23
  348. package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.java +0 -110
  349. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.java +0 -531
  350. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.java +0 -8
  351. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.java +0 -543
  352. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.java +0 -10
  353. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.java +0 -29
  354. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.java +0 -53
  355. package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.java +0 -81
  356. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.java +0 -110
  357. package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.java +0 -8
  358. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.java +0 -312
  359. package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.java +0 -109
  360. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.java +0 -169
  361. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.java +0 -96
  362. package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.java +0 -172
  363. package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.java +0 -10
  364. package/android/src/main/java/com/facebook/react/views/modal/RNGHModalUtils.java +0 -21
  365. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.java +0 -296
  366. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.java +0 -72
  367. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.java +0 -77
  368. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.java +0 -8
  369. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.java +0 -86
  370. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.java +0 -731
  371. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.java +0 -31
  372. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.java +0 -101
  373. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.java +0 -151
  374. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.java +0 -7
  375. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.java +0 -76
  376. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.java +0 -49
  377. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.java +0 -82
  378. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.java +0 -61
  379. package/lib/commonjs/handlers/gestureHandlers.js +0 -236
  380. package/lib/commonjs/handlers/gestureHandlers.js.map +0 -1
  381. package/lib/module/handlers/gestureHandlers.js +0 -216
  382. package/lib/module/handlers/gestureHandlers.js.map +0 -1
  383. package/lib/typescript/handlers/gestureHandlers.d.ts +0 -158
  384. package/src/handlers/gestureHandlers.ts +0 -511
@@ -1,31 +1,28 @@
1
1
  import * as React from 'react';
2
2
  import {
3
- findNodeHandle as findNodeHandleRN,
4
- NativeModules,
5
3
  Platform,
6
4
  Touchable,
5
+ UIManager,
6
+ DeviceEventEmitter,
7
+ EmitterSubscription,
7
8
  } from 'react-native';
8
9
  // @ts-ignore - it isn't typed by TS & don't have definitelyTyped types
9
- import deepEqual from 'fbjs/lib/areEqual';
10
+ import deepEqual from 'lodash/isEqual';
10
11
  import RNGestureHandlerModule from '../RNGestureHandlerModule';
11
12
  import type RNGestureHandlerModuleWeb from '../RNGestureHandlerModule.web';
12
13
  import { State } from '../State';
14
+ import { handlerIDToTag, getNextHandlerTag } from './handlersRegistry';
13
15
 
14
16
  import {
15
17
  BaseGestureHandlerProps,
18
+ filterConfig,
16
19
  GestureEvent,
17
20
  HandlerStateChangeEvent,
18
- } from './gestureHandlers';
21
+ findNodeHandle,
22
+ } from './gestureHandlerCommon';
19
23
  import { ValueOf } from '../typeUtils';
20
24
 
21
- function findNodeHandle(
22
- node: null | number | React.Component<any, any> | React.ComponentClass<any>
23
- ): null | number | React.Component<any, any> | React.ComponentClass<any> {
24
- if (Platform.OS === 'web') return node;
25
- return findNodeHandleRN(node);
26
- }
27
-
28
- const { UIManager = {} } = NativeModules;
25
+ const UIManagerAny = UIManager as any;
29
26
 
30
27
  const customGHEventsConfig = {
31
28
  onGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },
@@ -38,16 +35,16 @@ const customGHEventsConfig = {
38
35
  // native module.
39
36
  // Once new event types are registered with react it is possible to dispatch these
40
37
  // events to all kind of native views.
41
- UIManager.genericDirectEventTypes = {
42
- ...UIManager.genericDirectEventTypes,
38
+ UIManagerAny.genericDirectEventTypes = {
39
+ ...UIManagerAny.genericDirectEventTypes,
43
40
  ...customGHEventsConfig,
44
41
  };
45
42
  // In newer versions of RN the `genericDirectEventTypes` is located in the object
46
43
  // returned by UIManager.getViewManagerConfig('getConstants') or in older RN UIManager.getConstants(), we need to add it there as well to make
47
44
  // it compatible with RN 61+
48
45
  const UIManagerConstants =
49
- UIManager.getViewManagerConfig?.('getConstants') ??
50
- UIManager.getConstants?.();
46
+ UIManagerAny.getViewManagerConfig?.('getConstants') ??
47
+ UIManagerAny.getConstants?.();
51
48
 
52
49
  if (UIManagerConstants) {
53
50
  UIManagerConstants.genericDirectEventTypes = {
@@ -64,71 +61,24 @@ const {
64
61
  clearJSResponder: oldClearJSResponder = () => {
65
62
  //no operation
66
63
  },
67
- } = UIManager;
68
- UIManager.setJSResponder = (tag: number, blockNativeResponder: boolean) => {
64
+ } = UIManagerAny;
65
+ UIManagerAny.setJSResponder = (tag: number, blockNativeResponder: boolean) => {
69
66
  RNGestureHandlerModule.handleSetJSResponder(tag, blockNativeResponder);
70
67
  oldSetJSResponder(tag, blockNativeResponder);
71
68
  };
72
- UIManager.clearJSResponder = () => {
69
+ UIManagerAny.clearJSResponder = () => {
73
70
  RNGestureHandlerModule.handleClearJSResponder();
74
71
  oldClearJSResponder();
75
72
  };
76
73
 
77
- let handlerTag = 1;
78
- const handlerIDToTag: Record<string, number> = {};
79
-
80
- function isConfigParam(param: unknown, name: string) {
81
- // param !== Object(param) returns false if `param` is a function
82
- // or an object and returns true if `param` is null
83
- return (
84
- param !== undefined &&
85
- (param !== Object(param) ||
86
- !('__isNative' in (param as Record<string, unknown>))) &&
87
- name !== 'onHandlerStateChange' &&
88
- name !== 'onGestureEvent'
89
- );
90
- }
91
-
92
- function filterConfig(
93
- props: Record<string, unknown>,
94
- validProps: string[],
95
- defaults: Record<string, unknown> = {}
96
- ) {
97
- const res = { ...defaults };
98
- validProps.forEach((key) => {
99
- const value = props[key];
100
- if (isConfigParam(value, key)) {
101
- let value = props[key];
102
- if (key === 'simultaneousHandlers' || key === 'waitFor') {
103
- value = transformIntoHandlerTags(props[key]);
104
- } else if (key === 'hitSlop') {
105
- if (typeof value !== 'object') {
106
- value = { top: value, left: value, bottom: value, right: value };
107
- }
108
- }
109
- res[key] = value;
110
- }
74
+ let allowTouches = true;
75
+ const DEV_ON_ANDROID = __DEV__ && Platform.OS === 'android';
76
+ // Toggled inspector blocks touch events in order to allow inspecting on Android
77
+ // This needs to be a global variable in order to set initial state for `allowTouches` property in Handler component
78
+ if (DEV_ON_ANDROID) {
79
+ DeviceEventEmitter.addListener('toggleElementInspector', () => {
80
+ allowTouches = !allowTouches;
111
81
  });
112
- return res;
113
- }
114
-
115
- function transformIntoHandlerTags(handlerIDs: any) {
116
- if (!Array.isArray(handlerIDs)) {
117
- handlerIDs = [handlerIDs];
118
- }
119
-
120
- if (Platform.OS === 'web') {
121
- return handlerIDs
122
- .map(({ current }: { current: any }) => current)
123
- .filter((handle: any) => handle);
124
- }
125
- // converts handler string IDs into their numeric tags
126
- return handlerIDs
127
- .map(
128
- (handlerID: any) =>
129
- handlerIDToTag[handlerID] || handlerID.current?.handlerTag || -1
130
- )
131
- .filter((handlerTag: number) => handlerTag > 0);
132
82
  }
133
83
 
134
84
  type HandlerProps<T extends Record<string, unknown>> = Readonly<
@@ -183,7 +133,13 @@ export default function createHandler<
183
133
  transformProps,
184
134
  customNativeProps = [],
185
135
  }: CreateHandlerArgs<T>): React.ComponentType<T & React.RefAttributes<any>> {
186
- class Handler extends React.Component<T & InternalEventHandlers> {
136
+ interface HandlerState {
137
+ allowTouches: boolean;
138
+ }
139
+ class Handler extends React.Component<
140
+ T & InternalEventHandlers,
141
+ HandlerState
142
+ > {
187
143
  static displayName = name;
188
144
 
189
145
  private handlerTag: number;
@@ -192,12 +148,14 @@ export default function createHandler<
192
148
  private viewNode: any;
193
149
  private viewTag?: number;
194
150
  private updateEnqueued: ReturnType<typeof setImmediate> | null = null;
151
+ private inspectorToggleListener?: EmitterSubscription;
195
152
 
196
153
  constructor(props: T & InternalEventHandlers) {
197
154
  super(props);
198
- this.handlerTag = handlerTag++;
155
+ this.handlerTag = getNextHandlerTag();
199
156
  this.config = {};
200
157
  this.propsRef = React.createRef();
158
+ this.state = { allowTouches };
201
159
  if (props.id) {
202
160
  if (handlerIDToTag[props.id] !== undefined) {
203
161
  throw new Error(`Handler with ID "${props.id}" already registered`);
@@ -208,11 +166,21 @@ export default function createHandler<
208
166
 
209
167
  componentDidMount() {
210
168
  const props: HandlerProps<U> = this.props;
169
+
170
+ if (DEV_ON_ANDROID) {
171
+ this.inspectorToggleListener = DeviceEventEmitter.addListener(
172
+ 'toggleElementInspector',
173
+ () => {
174
+ this.setState((_) => ({ allowTouches }));
175
+ this.update();
176
+ }
177
+ );
178
+ }
211
179
  if (hasUnresolvedRefs(props)) {
212
180
  // If there are unresolved refs (e.g. ".current" has not yet been set)
213
181
  // passed as `simultaneousHandlers` or `waitFor`, we enqueue a call to
214
182
  // _update method that will try to update native handler props using
215
- // setImmediate. This makes it so _update function gets called after all
183
+ // setImmediate. This makes it so update() function gets called after all
216
184
  // react components are mounted and we expect the missing ref object to
217
185
  // be resolved by then.
218
186
  this.updateEnqueued = setImmediate(() => {
@@ -241,6 +209,7 @@ export default function createHandler<
241
209
  }
242
210
 
243
211
  componentWillUnmount() {
212
+ this.inspectorToggleListener?.remove();
244
213
  RNGestureHandlerModule.dropGestureHandler(this.handlerTag);
245
214
  if (this.updateEnqueued) {
246
215
  clearImmediate(this.updateEnqueued);
@@ -314,12 +283,14 @@ export default function createHandler<
314
283
  (RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler)(
315
284
  this.handlerTag,
316
285
  newViewTag,
286
+ false,
317
287
  this.propsRef
318
288
  );
319
289
  } else {
320
290
  RNGestureHandlerModule.attachGestureHandler(
321
291
  this.handlerTag,
322
- newViewTag
292
+ newViewTag,
293
+ false
323
294
  );
324
295
  }
325
296
  };
@@ -416,8 +387,12 @@ export default function createHandler<
416
387
  }
417
388
  }
418
389
  const events = {
419
- onGestureHandlerEvent: gestureEventHandler,
420
- onGestureHandlerStateChange: gestureStateEventHandler,
390
+ onGestureHandlerEvent: this.state.allowTouches
391
+ ? gestureEventHandler
392
+ : undefined,
393
+ onGestureHandlerStateChange: this.state.allowTouches
394
+ ? gestureStateEventHandler
395
+ : undefined,
421
396
  };
422
397
 
423
398
  this.propsRef.current = events;
@@ -0,0 +1,185 @@
1
+ // Previous types exported gesture handlers as classes which creates an interface and variable, both named the same as class.
2
+ // Without those types, we'd introduce breaking change, forcing users to prefix every handler type specification with typeof
3
+ // e.g. React.createRef<TapGestureHandler> -> React.createRef<typeof TapGestureHandler>.
4
+ // See https://www.typescriptlang.org/docs/handbook/classes.html#constructor-functions for reference.
5
+ import * as React from 'react';
6
+ import { Platform, findNodeHandle as findNodeHandleRN } from 'react-native';
7
+
8
+ import { State } from '../State';
9
+ import { EventType } from '../EventType';
10
+ import { ValueOf } from '../typeUtils';
11
+ import { handlerIDToTag } from './handlersRegistry';
12
+ import { toArray } from '../utils';
13
+
14
+ const commonProps = [
15
+ 'id',
16
+ 'enabled',
17
+ 'shouldCancelWhenOutside',
18
+ 'hitSlop',
19
+ ] as const;
20
+
21
+ const componentInteractionProps = ['waitFor', 'simultaneousHandlers'] as const;
22
+
23
+ export const baseGestureHandlerProps = [
24
+ ...commonProps,
25
+ ...componentInteractionProps,
26
+ 'onBegan',
27
+ 'onFailed',
28
+ 'onCancelled',
29
+ 'onActivated',
30
+ 'onEnded',
31
+ 'onGestureEvent',
32
+ 'onHandlerStateChange',
33
+ ] as const;
34
+
35
+ export const baseGestureHandlerWithMonitorProps = [
36
+ ...commonProps,
37
+ 'needsPointerData',
38
+ 'manualActivation',
39
+ ];
40
+
41
+ export interface GestureEventPayload {
42
+ handlerTag: number;
43
+ numberOfPointers: number;
44
+ state: ValueOf<typeof State>;
45
+ }
46
+
47
+ export interface HandlerStateChangeEventPayload {
48
+ handlerTag: number;
49
+ numberOfPointers: number;
50
+ state: ValueOf<typeof State>;
51
+ oldState: ValueOf<typeof State>;
52
+ }
53
+
54
+ export type HitSlop =
55
+ | number
56
+ | Partial<
57
+ Record<
58
+ 'left' | 'right' | 'top' | 'bottom' | 'vertical' | 'horizontal',
59
+ number
60
+ >
61
+ >
62
+ | Record<'width' | 'left', number>
63
+ | Record<'width' | 'right', number>
64
+ | Record<'height' | 'top', number>
65
+ | Record<'height' | 'bottom', number>;
66
+
67
+ //TODO(TS) events in handlers
68
+
69
+ export interface GestureEvent<ExtraEventPayloadT = Record<string, unknown>> {
70
+ nativeEvent: Readonly<GestureEventPayload & ExtraEventPayloadT>;
71
+ }
72
+ export interface HandlerStateChangeEvent<
73
+ ExtraEventPayloadT = Record<string, unknown>
74
+ > {
75
+ nativeEvent: Readonly<HandlerStateChangeEventPayload & ExtraEventPayloadT>;
76
+ }
77
+
78
+ export type TouchData = {
79
+ id: number;
80
+ x: number;
81
+ y: number;
82
+ absoluteX: number;
83
+ absoluteY: number;
84
+ };
85
+
86
+ export type GestureTouchEvent = {
87
+ handlerTag: number;
88
+ numberOfTouches: number;
89
+ state: ValueOf<typeof State>;
90
+ eventType: EventType;
91
+ allTouches: TouchData[];
92
+ changedTouches: TouchData[];
93
+ };
94
+
95
+ export type GestureUpdateEvent<
96
+ GestureEventPayloadT = Record<string, unknown>
97
+ > = GestureEventPayload & GestureEventPayloadT;
98
+
99
+ export type GestureStateChangeEvent<
100
+ GestureStateChangeEventPayloadT = Record<string, unknown>
101
+ > = HandlerStateChangeEventPayload & GestureStateChangeEventPayloadT;
102
+
103
+ export type CommonGestureConfig = {
104
+ enabled?: boolean;
105
+ shouldCancelWhenOutside?: boolean;
106
+ hitSlop?: HitSlop;
107
+ };
108
+
109
+ // Events payloads are types instead of interfaces due to TS limitation.
110
+ // See https://github.com/microsoft/TypeScript/issues/15300 for more info.
111
+ export type BaseGestureHandlerProps<
112
+ ExtraEventPayloadT extends Record<string, unknown> = Record<string, unknown>
113
+ > = CommonGestureConfig & {
114
+ id?: string;
115
+ waitFor?: React.Ref<unknown> | React.Ref<unknown>[];
116
+ simultaneousHandlers?: React.Ref<unknown> | React.Ref<unknown>[];
117
+ // TODO(TS) - fix event types
118
+ onBegan?: (event: HandlerStateChangeEvent) => void;
119
+ onFailed?: (event: HandlerStateChangeEvent) => void;
120
+ onCancelled?: (event: HandlerStateChangeEvent) => void;
121
+ onActivated?: (event: HandlerStateChangeEvent) => void;
122
+ onEnded?: (event: HandlerStateChangeEvent) => void;
123
+
124
+ //TODO(TS) consider using NativeSyntheticEvent
125
+ onGestureEvent?: (event: GestureEvent<ExtraEventPayloadT>) => void;
126
+ onHandlerStateChange?: (
127
+ event: HandlerStateChangeEvent<ExtraEventPayloadT>
128
+ ) => void;
129
+ };
130
+
131
+ function isConfigParam(param: unknown, name: string) {
132
+ // param !== Object(param) returns false if `param` is a function
133
+ // or an object and returns true if `param` is null
134
+ return (
135
+ param !== undefined &&
136
+ (param !== Object(param) ||
137
+ !('__isNative' in (param as Record<string, unknown>))) &&
138
+ name !== 'onHandlerStateChange' &&
139
+ name !== 'onGestureEvent'
140
+ );
141
+ }
142
+
143
+ export function filterConfig(
144
+ props: Record<string, unknown>,
145
+ validProps: string[],
146
+ defaults: Record<string, unknown> = {}
147
+ ) {
148
+ const filteredConfig = { ...defaults };
149
+ for (const key of validProps) {
150
+ let value = props[key];
151
+ if (isConfigParam(value, key)) {
152
+ if (key === 'simultaneousHandlers' || key === 'waitFor') {
153
+ value = transformIntoHandlerTags(props[key]);
154
+ } else if (key === 'hitSlop' && typeof value !== 'object') {
155
+ value = { top: value, left: value, bottom: value, right: value };
156
+ }
157
+ filteredConfig[key] = value;
158
+ }
159
+ }
160
+ return filteredConfig;
161
+ }
162
+
163
+ function transformIntoHandlerTags(handlerIDs: any) {
164
+ handlerIDs = toArray(handlerIDs);
165
+
166
+ if (Platform.OS === 'web') {
167
+ return handlerIDs
168
+ .map(({ current }: { current: any }) => current)
169
+ .filter((handle: any) => handle);
170
+ }
171
+ // converts handler string IDs into their numeric tags
172
+ return handlerIDs
173
+ .map(
174
+ (handlerID: any) =>
175
+ handlerIDToTag[handlerID] || handlerID.current?.handlerTag || -1
176
+ )
177
+ .filter((handlerTag: number) => handlerTag > 0);
178
+ }
179
+
180
+ export function findNodeHandle(
181
+ node: null | number | React.Component<any, any> | React.ComponentClass<any>
182
+ ): null | number | React.Component<any, any> | React.ComponentClass<any> {
183
+ if (Platform.OS === 'web') return node;
184
+ return findNodeHandleRN(node);
185
+ }
@@ -5,25 +5,39 @@ import {
5
5
  RectButtonProps,
6
6
  } from '../components/GestureButtons';
7
7
  import {
8
- FlingGestureHandlerEventPayload,
9
- FlingGestureHandlerProps,
10
- ForceTouchGestureHandlerEventPayload,
11
- ForceTouchGestureHandlerProps,
12
8
  GestureEvent,
13
9
  GestureEventPayload,
14
10
  HandlerStateChangeEvent,
15
11
  HandlerStateChangeEventPayload,
12
+ } from './gestureHandlerCommon';
13
+ import {
14
+ FlingGestureHandlerEventPayload,
15
+ FlingGestureHandlerProps,
16
+ } from './FlingGestureHandler';
17
+ import {
18
+ ForceTouchGestureHandlerEventPayload,
19
+ ForceTouchGestureHandlerProps,
20
+ } from './ForceTouchGestureHandler';
21
+ import {
16
22
  LongPressGestureHandlerEventPayload,
17
23
  LongPressGestureHandlerProps,
24
+ } from './LongPressGestureHandler';
25
+ import {
18
26
  PanGestureHandlerEventPayload,
19
27
  PanGestureHandlerProps,
28
+ } from './PanGestureHandler';
29
+ import {
20
30
  PinchGestureHandlerEventPayload,
21
31
  PinchGestureHandlerProps,
32
+ } from './PinchGestureHandler';
33
+ import {
22
34
  RotationGestureHandlerEventPayload,
23
35
  RotationGestureHandlerProps,
36
+ } from './RotationGestureHandler';
37
+ import {
24
38
  TapGestureHandlerEventPayload,
25
39
  TapGestureHandlerProps,
26
- } from './gestureHandlers';
40
+ } from './TapGestureHandler';
27
41
  import {
28
42
  NativeViewGestureHandlerPayload,
29
43
  NativeViewGestureHandlerProps,