react-native-gesture-handler 1.10.3 → 2.2.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 +10 -8
  2. package/android/build.gradle +49 -1
  3. package/android/common/src/main/java/com/swmansion/common/GestureHandlerStateManager.kt +5 -0
  4. package/android/gradle.properties +19 -0
  5. package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.kt +18 -0
  6. package/android/lib/src/main/java/com/swmansion/gesturehandler/Extensions.kt +11 -0
  7. package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +96 -0
  8. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +744 -0
  9. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.kt +8 -0
  10. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +596 -0
  11. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.kt +8 -0
  12. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.kt +21 -0
  13. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.kt +49 -0
  14. package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +97 -0
  15. package/android/lib/src/main/java/com/swmansion/gesturehandler/ManualGestureHandler.kt +11 -0
  16. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +129 -0
  17. package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.kt +9 -0
  18. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +292 -0
  19. package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.kt +90 -0
  20. package/android/lib/src/main/java/com/swmansion/gesturehandler/{PointerEventsConfig.java → PointerEventsConfig.kt} +3 -5
  21. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.kt +125 -0
  22. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.kt +81 -0
  23. package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +167 -0
  24. package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.kt +10 -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/project.xcworkspace/xcuserdata/jakubpiasecki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  53. package/ios/RNGestureHandler.xcodeproj/xcuserdata/jakubpiasecki.xcuserdatad/xcschemes/xcschememanagement.plist +19 -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 +65 -84
  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 +440 -0
  112. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -0
  113. package/lib/commonjs/handlers/gestures/eventReceiver.js +135 -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 +65 -0
  118. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -0
  119. package/lib/commonjs/handlers/gestures/gesture.js +193 -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 +31 -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 +144 -0
  134. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -0
  135. package/lib/commonjs/handlers/gestures/pinchGesture.js +45 -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 +45 -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 +40 -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 +55 -77
  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 +402 -0
  203. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -0
  204. package/lib/module/handlers/gestures/eventReceiver.js +120 -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 +56 -0
  209. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -0
  210. package/lib/module/handlers/gestures/gesture.js +175 -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 +22 -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 +135 -0
  225. package/lib/module/handlers/gestures/panGesture.js.map +1 -0
  226. package/lib/module/handlers/gestures/pinchGesture.js +36 -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 +36 -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 +11 -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 +16 -0
  277. package/lib/typescript/handlers/gestures/gesture.d.ts +97 -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 +7 -0
  283. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +9 -0
  284. package/lib/typescript/handlers/gestures/panGesture.d.ts +26 -0
  285. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +12 -0
  286. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +14 -0
  287. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +12 -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 +8 -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 +67 -79
  322. package/src/handlers/gestureHandlerCommon.ts +185 -0
  323. package/src/handlers/gestureHandlerTypesCompat.ts +19 -5
  324. package/src/handlers/gestures/GestureDetector.tsx +519 -0
  325. package/src/handlers/gestures/eventReceiver.ts +151 -0
  326. package/src/handlers/gestures/flingGesture.ts +27 -0
  327. package/src/handlers/gestures/forceTouchGesture.ts +74 -0
  328. package/src/handlers/gestures/gesture.ts +292 -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 +31 -0
  334. package/src/handlers/gestures/nativeGesture.ts +27 -0
  335. package/src/handlers/gestures/panGesture.ts +147 -0
  336. package/src/handlers/gestures/pinchGesture.ts +51 -0
  337. package/src/handlers/gestures/reanimatedWrapper.ts +45 -0
  338. package/src/handlers/gestures/rotationGesture.ts +51 -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
@@ -0,0 +1,147 @@
1
+ import { BaseGestureConfig, ContinousBaseGesture } from './gesture';
2
+ import { GestureUpdateEvent } from '../gestureHandlerCommon';
3
+ import {
4
+ PanGestureConfig,
5
+ PanGestureHandlerEventPayload,
6
+ } from '../PanGestureHandler';
7
+
8
+ type PanGestureChangeEventPayload = {
9
+ changeX: number;
10
+ changeY: number;
11
+ };
12
+
13
+ function changeEventCalculator(
14
+ current: GestureUpdateEvent<PanGestureHandlerEventPayload>,
15
+ previous?: GestureUpdateEvent<PanGestureHandlerEventPayload>
16
+ ) {
17
+ 'worklet';
18
+ let changePayload: PanGestureChangeEventPayload;
19
+ if (previous === undefined) {
20
+ changePayload = {
21
+ changeX: current.translationX,
22
+ changeY: current.translationY,
23
+ };
24
+ } else {
25
+ changePayload = {
26
+ changeX: current.translationX - previous.translationX,
27
+ changeY: current.translationY - previous.translationY,
28
+ };
29
+ }
30
+
31
+ return { ...current, ...changePayload };
32
+ }
33
+
34
+ export class PanGesture extends ContinousBaseGesture<
35
+ PanGestureHandlerEventPayload,
36
+ PanGestureChangeEventPayload
37
+ > {
38
+ public config: BaseGestureConfig & PanGestureConfig = {};
39
+
40
+ constructor() {
41
+ super();
42
+
43
+ this.handlerName = 'PanGestureHandler';
44
+ }
45
+
46
+ activeOffsetY(offset: number | number[]) {
47
+ if (Array.isArray(offset)) {
48
+ this.config.activeOffsetYStart = offset[0];
49
+ this.config.activeOffsetYEnd = offset[1];
50
+ } else if (offset < 0) {
51
+ this.config.activeOffsetYStart = offset;
52
+ } else {
53
+ this.config.activeOffsetYEnd = offset;
54
+ }
55
+ return this;
56
+ }
57
+
58
+ activeOffsetX(offset: number | number[]) {
59
+ if (Array.isArray(offset)) {
60
+ this.config.activeOffsetXStart = offset[0];
61
+ this.config.activeOffsetXEnd = offset[1];
62
+ } else if (offset < 0) {
63
+ this.config.activeOffsetXStart = offset;
64
+ } else {
65
+ this.config.activeOffsetXEnd = offset;
66
+ }
67
+ return this;
68
+ }
69
+
70
+ failOffsetY(offset: number | number[]) {
71
+ if (Array.isArray(offset)) {
72
+ this.config.failOffsetYStart = offset[0];
73
+ this.config.failOffsetYEnd = offset[1];
74
+ } else if (offset < 0) {
75
+ this.config.failOffsetYStart = offset;
76
+ } else {
77
+ this.config.failOffsetYEnd = offset;
78
+ }
79
+ return this;
80
+ }
81
+
82
+ failOffsetX(offset: number | number[]) {
83
+ if (Array.isArray(offset)) {
84
+ this.config.failOffsetXStart = offset[0];
85
+ this.config.failOffsetXEnd = offset[1];
86
+ } else if (offset < 0) {
87
+ this.config.failOffsetXStart = offset;
88
+ } else {
89
+ this.config.failOffsetXEnd = offset;
90
+ }
91
+ return this;
92
+ }
93
+
94
+ minPointers(minPointers: number) {
95
+ this.config.minPointers = minPointers;
96
+ return this;
97
+ }
98
+
99
+ maxPointers(maxPointers: number) {
100
+ this.config.maxPointers = maxPointers;
101
+ return this;
102
+ }
103
+
104
+ minDistance(distance: number) {
105
+ this.config.minDist = distance;
106
+ return this;
107
+ }
108
+
109
+ minVelocity(velocity: number) {
110
+ this.config.minVelocity = velocity;
111
+ return this;
112
+ }
113
+
114
+ minVelocityX(velocity: number) {
115
+ this.config.minVelocityX = velocity;
116
+ return this;
117
+ }
118
+
119
+ minVelocityY(velocity: number) {
120
+ this.config.minVelocityY = velocity;
121
+ return this;
122
+ }
123
+
124
+ averageTouches(value: boolean) {
125
+ this.config.avgTouches = value;
126
+ return this;
127
+ }
128
+
129
+ enableTrackpadTwoFingerGesture(value: boolean) {
130
+ this.config.enableTrackpadTwoFingerGesture = value;
131
+ return this;
132
+ }
133
+
134
+ onChange(
135
+ callback: (
136
+ event: GestureUpdateEvent<
137
+ PanGestureHandlerEventPayload & PanGestureChangeEventPayload
138
+ >
139
+ ) => void
140
+ ) {
141
+ // @ts-ignore TS being overprotective, PanGestureHandlerEventPayload is Record
142
+ this.handlers.changeEventCalculator = changeEventCalculator;
143
+ return super.onChange(callback);
144
+ }
145
+ }
146
+
147
+ export type PanGestureType = InstanceType<typeof PanGesture>;
@@ -0,0 +1,51 @@
1
+ import { ContinousBaseGesture } from './gesture';
2
+ import { PinchGestureHandlerEventPayload } from '../PinchGestureHandler';
3
+ import { GestureUpdateEvent } from '../gestureHandlerCommon';
4
+
5
+ type PinchGestureChangeEventPayload = {
6
+ scaleChange: number;
7
+ };
8
+
9
+ function changeEventCalculator(
10
+ current: GestureUpdateEvent<PinchGestureHandlerEventPayload>,
11
+ previous?: GestureUpdateEvent<PinchGestureHandlerEventPayload>
12
+ ) {
13
+ 'worklet';
14
+ let changePayload: PinchGestureChangeEventPayload;
15
+ if (previous === undefined) {
16
+ changePayload = {
17
+ scaleChange: current.scale,
18
+ };
19
+ } else {
20
+ changePayload = {
21
+ scaleChange: current.scale / previous.scale,
22
+ };
23
+ }
24
+
25
+ return { ...current, ...changePayload };
26
+ }
27
+
28
+ export class PinchGesture extends ContinousBaseGesture<
29
+ PinchGestureHandlerEventPayload,
30
+ PinchGestureChangeEventPayload
31
+ > {
32
+ constructor() {
33
+ super();
34
+
35
+ this.handlerName = 'PinchGestureHandler';
36
+ }
37
+
38
+ onChange(
39
+ callback: (
40
+ event: GestureUpdateEvent<
41
+ PinchGestureHandlerEventPayload & PinchGestureChangeEventPayload
42
+ >
43
+ ) => void
44
+ ) {
45
+ // @ts-ignore TS being overprotective, PinchGestureHandlerEventPayload is Record
46
+ this.handlers.changeEventCalculator = changeEventCalculator;
47
+ return super.onChange(callback);
48
+ }
49
+ }
50
+
51
+ export type PinchGestureType = InstanceType<typeof PinchGesture>;
@@ -0,0 +1,45 @@
1
+ import { ComponentClass } from 'react';
2
+ import {
3
+ GestureUpdateEvent,
4
+ GestureStateChangeEvent,
5
+ } from '../gestureHandlerCommon';
6
+
7
+ export interface SharedValue<T> {
8
+ value: T;
9
+ }
10
+
11
+ let Reanimated: {
12
+ default: {
13
+ // Slightly modified definition copied from 'react-native-reanimated'
14
+ // eslint-disable-next-line @typescript-eslint/ban-types
15
+ createAnimatedComponent<P extends object>(
16
+ component: ComponentClass<P>,
17
+ options?: unknown
18
+ ): ComponentClass<P>;
19
+ };
20
+ useEvent: (
21
+ callback: (event: GestureUpdateEvent | GestureStateChangeEvent) => void,
22
+ events: string[],
23
+ rebuild: boolean
24
+ ) => unknown;
25
+ useSharedValue: <T>(value: T) => SharedValue<T>;
26
+ setGestureState: (handlerTag: number, newState: number) => void;
27
+ };
28
+
29
+ try {
30
+ Reanimated = require('react-native-reanimated');
31
+
32
+ if (!Reanimated.setGestureState) {
33
+ Reanimated.setGestureState = () => {
34
+ 'worklet';
35
+ console.warn(
36
+ 'Please use newer version of react-native-reanimated in order to control state of the gestures.'
37
+ );
38
+ };
39
+ }
40
+ // When 'react-native-reanimated' is not available we want to
41
+ // quietly continue
42
+ // eslint-disable-next-line no-empty
43
+ } catch (e) {}
44
+
45
+ export { Reanimated };
@@ -0,0 +1,51 @@
1
+ import { ContinousBaseGesture } from './gesture';
2
+ import { RotationGestureHandlerEventPayload } from '../RotationGestureHandler';
3
+ import { GestureUpdateEvent } from '../gestureHandlerCommon';
4
+
5
+ type RotationGestureChangeEventPayload = {
6
+ rotationChange: number;
7
+ };
8
+
9
+ function changeEventCalculator(
10
+ current: GestureUpdateEvent<RotationGestureHandlerEventPayload>,
11
+ previous?: GestureUpdateEvent<RotationGestureHandlerEventPayload>
12
+ ) {
13
+ 'worklet';
14
+ let changePayload: RotationGestureChangeEventPayload;
15
+ if (previous === undefined) {
16
+ changePayload = {
17
+ rotationChange: current.rotation,
18
+ };
19
+ } else {
20
+ changePayload = {
21
+ rotationChange: current.rotation - previous.rotation,
22
+ };
23
+ }
24
+
25
+ return { ...current, ...changePayload };
26
+ }
27
+
28
+ export class RotationGesture extends ContinousBaseGesture<
29
+ RotationGestureHandlerEventPayload,
30
+ RotationGestureChangeEventPayload
31
+ > {
32
+ constructor() {
33
+ super();
34
+
35
+ this.handlerName = 'RotationGestureHandler';
36
+ }
37
+
38
+ onChange(
39
+ callback: (
40
+ event: GestureUpdateEvent<
41
+ RotationGestureHandlerEventPayload & RotationGestureChangeEventPayload
42
+ >
43
+ ) => void
44
+ ) {
45
+ // @ts-ignore TS being overprotective, RotationGestureHandlerEventPayload is Record
46
+ this.handlers.changeEventCalculator = changeEventCalculator;
47
+ return super.onChange(callback);
48
+ }
49
+ }
50
+
51
+ export type RotationGestureType = InstanceType<typeof RotationGesture>;
@@ -0,0 +1,52 @@
1
+ import { BaseGestureConfig, BaseGesture } from './gesture';
2
+ import {
3
+ TapGestureConfig,
4
+ TapGestureHandlerEventPayload,
5
+ } from '../TapGestureHandler';
6
+
7
+ export class TapGesture extends BaseGesture<TapGestureHandlerEventPayload> {
8
+ public config: BaseGestureConfig & TapGestureConfig = {};
9
+
10
+ constructor() {
11
+ super();
12
+
13
+ this.handlerName = 'TapGestureHandler';
14
+ }
15
+
16
+ minPointers(minPointers: number) {
17
+ this.config.minPointers = minPointers;
18
+ return this;
19
+ }
20
+
21
+ numberOfTaps(count: number) {
22
+ this.config.numberOfTaps = count;
23
+ return this;
24
+ }
25
+
26
+ maxDistance(maxDist: number) {
27
+ this.config.maxDist = maxDist;
28
+ return this;
29
+ }
30
+
31
+ maxDuration(duration: number) {
32
+ this.config.maxDurationMs = duration;
33
+ return this;
34
+ }
35
+
36
+ maxDelay(delay: number) {
37
+ this.config.maxDelayMs = delay;
38
+ return this;
39
+ }
40
+
41
+ maxDeltaX(delta: number) {
42
+ this.config.maxDeltaX = delta;
43
+ return this;
44
+ }
45
+
46
+ maxDeltaY(delta: number) {
47
+ this.config.maxDeltaY = delta;
48
+ return this;
49
+ }
50
+ }
51
+
52
+ export type TapGestureType = InstanceType<typeof TapGesture>;
@@ -0,0 +1,22 @@
1
+ import { GestureType } from './gestures/gesture';
2
+
3
+ export const handlerIDToTag: Record<string, number> = {};
4
+ const handlers = new Map<number, GestureType>();
5
+
6
+ let handlerTag = 1;
7
+
8
+ export function getNextHandlerTag(): number {
9
+ return handlerTag++;
10
+ }
11
+
12
+ export function registerHandler(handlerTag: number, handler: GestureType) {
13
+ handlers.set(handlerTag, handler);
14
+ }
15
+
16
+ export function unregisterHandler(handlerTag: number) {
17
+ handlers.delete(handlerTag);
18
+ }
19
+
20
+ export function findHandler(handlerTag: number) {
21
+ return handlers.get(handlerTag);
22
+ }
package/src/index.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { initialize } from './init';
2
+
1
3
  export { Directions } from './Directions';
2
4
  export { State } from './State';
3
5
  export { default as gestureHandlerRootHOC } from './gestureHandlerRootHOC';
@@ -9,36 +11,72 @@ export type {
9
11
  // event payloads types
10
12
  GestureEventPayload,
11
13
  HandlerStateChangeEventPayload,
14
+ // pointer events
15
+ GestureTouchEvent,
16
+ TouchData,
17
+ // new api event types
18
+ GestureUpdateEvent,
19
+ GestureStateChangeEvent,
20
+ } from './handlers/gestureHandlerCommon';
21
+ export type { GestureType } from './handlers/gestures/gesture';
22
+ export type {
12
23
  TapGestureHandlerEventPayload,
13
- ForceTouchGestureHandlerEventPayload,
14
- LongPressGestureHandlerEventPayload,
15
- PanGestureHandlerEventPayload,
16
- PinchGestureHandlerEventPayload,
17
- RotationGestureHandlerEventPayload,
18
- FlingGestureHandlerEventPayload,
19
- // gesture handlers props types
20
24
  TapGestureHandlerProps,
25
+ } from './handlers/TapGestureHandler';
26
+ export type {
27
+ ForceTouchGestureHandlerEventPayload,
21
28
  ForceTouchGestureHandlerProps,
29
+ } from './handlers/ForceTouchGestureHandler';
30
+ export type {
31
+ LongPressGestureHandlerEventPayload,
22
32
  LongPressGestureHandlerProps,
33
+ } from './handlers/LongPressGestureHandler';
34
+ export type {
35
+ PanGestureHandlerEventPayload,
23
36
  PanGestureHandlerProps,
37
+ } from './handlers/PanGestureHandler';
38
+ export type {
39
+ PinchGestureHandlerEventPayload,
24
40
  PinchGestureHandlerProps,
41
+ } from './handlers/PinchGestureHandler';
42
+ export type {
43
+ RotationGestureHandlerEventPayload,
25
44
  RotationGestureHandlerProps,
45
+ } from './handlers/RotationGestureHandler';
46
+ export type {
47
+ FlingGestureHandlerEventPayload,
26
48
  FlingGestureHandlerProps,
27
- } from './handlers/gestureHandlers';
28
- export {
29
- TapGestureHandler,
30
- ForceTouchGestureHandler,
31
- LongPressGestureHandler,
32
- PanGestureHandler,
33
- PinchGestureHandler,
34
- RotationGestureHandler,
35
- FlingGestureHandler,
36
- } from './handlers/gestureHandlers';
49
+ } from './handlers/FlingGestureHandler';
50
+ export { TapGestureHandler } from './handlers/TapGestureHandler';
51
+ export { ForceTouchGestureHandler } from './handlers/ForceTouchGestureHandler';
52
+ export { LongPressGestureHandler } from './handlers/LongPressGestureHandler';
53
+ export { PanGestureHandler } from './handlers/PanGestureHandler';
54
+ export { PinchGestureHandler } from './handlers/PinchGestureHandler';
55
+ export { RotationGestureHandler } from './handlers/RotationGestureHandler';
56
+ export { FlingGestureHandler } from './handlers/FlingGestureHandler';
37
57
  export { default as createNativeWrapper } from './handlers/createNativeWrapper';
38
58
  export type {
39
59
  NativeViewGestureHandlerPayload,
40
60
  NativeViewGestureHandlerProps,
41
61
  } from './handlers/NativeViewGestureHandler';
62
+ export { GestureDetector } from './handlers/gestures/GestureDetector';
63
+ export { GestureObjects as Gesture } from './handlers/gestures/gestureObjects';
64
+ export type { TapGestureType as TapGesture } from './handlers/gestures/tapGesture';
65
+ export type { PanGestureType as PanGesture } from './handlers/gestures/panGesture';
66
+ export type { FlingGestureType as FlingGesture } from './handlers/gestures/flingGesture';
67
+ export type { LongPressGestureType as LongPressGesture } from './handlers/gestures/longPressGesture';
68
+ export type { PinchGestureType as PinchGesture } from './handlers/gestures/pinchGesture';
69
+ export type { RotationGestureType as RotationGesture } from './handlers/gestures/rotationGesture';
70
+ export type { ForceTouchGestureType as ForceTouchGesture } from './handlers/gestures/forceTouchGesture';
71
+ export type { NativeGestureType as NativeGesture } from './handlers/gestures/nativeGesture';
72
+ export type { ManualGestureType as ManualGesture } from './handlers/gestures/manualGesture';
73
+ export type {
74
+ ComposedGestureType as ComposedGesture,
75
+ RaceGestureType as RaceGesture,
76
+ SimultaneousGestureType as SimultaneousGesture,
77
+ ExclusiveGestureType as ExclusiveGesture,
78
+ } from './handlers/gestures/gestureComposition';
79
+ export type { GestureStateManagerType as GestureStateManager } from './handlers/gestures/gestureStateManager';
42
80
  export { NativeViewGestureHandler } from './handlers/NativeViewGestureHandler';
43
81
  export type {
44
82
  RawButtonProps,
@@ -114,3 +152,5 @@ export type {
114
152
  DrawerKeyboardDismissMode,
115
153
  } from './components/DrawerLayout';
116
154
  export { default as DrawerLayout } from './components/DrawerLayout';
155
+
156
+ initialize();
package/src/init.ts ADDED
@@ -0,0 +1,5 @@
1
+ import { startListening } from './handlers/gestures/eventReceiver';
2
+
3
+ export function initialize() {
4
+ startListening();
5
+ }
package/src/mocks.ts CHANGED
@@ -1,19 +1,59 @@
1
- import { View, ScrollView as RNScrollView } from 'react-native';
1
+ import {
2
+ TouchableHighlight,
3
+ TouchableNativeFeedback,
4
+ TouchableOpacity,
5
+ TouchableWithoutFeedback,
6
+ ScrollView,
7
+ FlatList,
8
+ Switch,
9
+ TextInput,
10
+ DrawerLayoutAndroid,
11
+ View,
12
+ } from 'react-native';
2
13
  import { State } from './State';
3
14
  import { Directions } from './Directions';
4
15
 
5
16
  const NOOP = () => {
6
17
  // do nothing
7
18
  };
8
- const ScrollView = RNScrollView;
9
19
  const PanGestureHandler = View;
10
20
  const attachGestureHandler = NOOP;
11
21
  const createGestureHandler = NOOP;
12
22
  const dropGestureHandler = NOOP;
13
23
  const updateGestureHandler = NOOP;
24
+ const NativeViewGestureHandler = View;
25
+ const TapGestureHandler = View;
26
+ const ForceTouchGestureHandler = View;
27
+ const LongPressGestureHandler = View;
28
+ const PinchGestureHandler = View;
29
+ const RotationGestureHandler = View;
30
+ const FlingGestureHandler = View;
31
+ const RawButton = TouchableNativeFeedback;
32
+ const BaseButton = TouchableNativeFeedback;
33
+ const RectButton = TouchableNativeFeedback;
34
+ const BorderlessButton = TouchableNativeFeedback;
14
35
 
15
36
  export default {
37
+ TouchableHighlight,
38
+ TouchableNativeFeedback,
39
+ TouchableOpacity,
40
+ TouchableWithoutFeedback,
16
41
  ScrollView,
42
+ FlatList,
43
+ Switch,
44
+ TextInput,
45
+ DrawerLayoutAndroid,
46
+ NativeViewGestureHandler,
47
+ TapGestureHandler,
48
+ ForceTouchGestureHandler,
49
+ LongPressGestureHandler,
50
+ PinchGestureHandler,
51
+ RotationGestureHandler,
52
+ FlingGestureHandler,
53
+ RawButton,
54
+ BaseButton,
55
+ RectButton,
56
+ BorderlessButton,
17
57
  PanGestureHandler,
18
58
  attachGestureHandler,
19
59
  createGestureHandler,
package/src/utils.ts ADDED
@@ -0,0 +1,7 @@
1
+ export function toArray<T>(object: T | T[]): T[] {
2
+ if (!Array.isArray(object)) {
3
+ return [object];
4
+ }
5
+
6
+ return object;
7
+ }
@@ -466,8 +466,7 @@ function invokeNullableMethod(
466
466
  if ('__nodeConfig' in method) {
467
467
  const { argMapping } = method.__nodeConfig;
468
468
  if (Array.isArray(argMapping)) {
469
- for (const index in argMapping) {
470
- const [key, value] = argMapping[index];
469
+ for (const [index, [key, value]] of argMapping.entries()) {
471
470
  if (key in event.nativeEvent) {
472
471
  // @ts-ignore fix method type
473
472
  const nativeValue = event.nativeEvent[key];
@@ -22,6 +22,11 @@ export function createGestureHandler(
22
22
  }
23
23
 
24
24
  export function dropGestureHandler(handlerTag: number) {
25
+ // Since React 18, there are cases where componentWillUnmount gets called twice in a row
26
+ // so skip this if the tag was already removed.
27
+ if (!(handlerTag in gestures)) {
28
+ return;
29
+ }
25
30
  getHandler(handlerTag).destroy();
26
31
  // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
27
32
  delete gestures[handlerTag];
@@ -1,23 +0,0 @@
1
- package com.swmansion.gesturehandler;
2
-
3
- public abstract class BaseGestureHandlerInteractionController
4
- implements GestureHandlerInteractionController {
5
-
6
- @Override
7
- public boolean shouldWaitForHandlerFailure(GestureHandler handler,
8
- GestureHandler otherHandler) {
9
- return false;
10
- }
11
-
12
- @Override
13
- public boolean shouldRequireHandlerToWaitForFailure(GestureHandler handler,
14
- GestureHandler otherHandler) {
15
- return false;
16
- }
17
-
18
- @Override
19
- public boolean shouldRecognizeSimultaneously(GestureHandler handler,
20
- GestureHandler otherHandler) {
21
- return false;
22
- }
23
- }