react-native-gesture-handler 2.15.0 → 2.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (254) hide show
  1. package/RNGestureHandler.podspec +2 -23
  2. package/android/build.gradle +1 -1
  3. package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +2 -0
  4. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.java +9 -0
  5. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerInterface.java +3 -0
  6. package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +11 -6
  7. package/android/src/main/java/com/swmansion/gesturehandler/core/DiagonalDirections.kt +8 -0
  8. package/android/src/main/java/com/swmansion/gesturehandler/core/FlingGestureHandler.kt +65 -24
  9. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +86 -22
  10. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +54 -29
  11. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureUtils.kt +3 -0
  12. package/android/src/main/java/com/swmansion/gesturehandler/core/LongPressGestureHandler.kt +5 -1
  13. package/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt +5 -1
  14. package/android/src/main/java/com/swmansion/gesturehandler/core/TapGestureHandler.kt +7 -3
  15. package/android/src/main/java/com/swmansion/gesturehandler/core/Vector.kt +66 -0
  16. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +119 -19
  17. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +2 -2
  18. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +1 -4
  19. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +8 -5
  20. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +7 -4
  21. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +1 -1
  22. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +1 -4
  23. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +4 -7
  24. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/GestureHandlerEventDataBuilder.kt +3 -0
  25. package/android/src/main/jni/cpp-adapter.cpp +18 -22
  26. package/apple/Handlers/RNFlingHandler.m +5 -4
  27. package/apple/Handlers/RNForceTouchHandler.m +3 -1
  28. package/apple/Handlers/RNHoverHandler.m +2 -1
  29. package/apple/Handlers/RNLongPressHandler.m +8 -14
  30. package/apple/Handlers/RNManualHandler.m +1 -0
  31. package/apple/Handlers/RNNativeViewHandler.mm +9 -7
  32. package/apple/Handlers/RNPanHandler.m +7 -2
  33. package/apple/Handlers/RNPinchHandler.m +50 -26
  34. package/apple/Handlers/RNRotationHandler.m +43 -29
  35. package/apple/Handlers/RNTapHandler.m +6 -4
  36. package/apple/RNGestureHandler.h +9 -0
  37. package/apple/RNGestureHandler.m +41 -4
  38. package/apple/RNGestureHandlerEvents.h +18 -9
  39. package/apple/RNGestureHandlerEvents.m +29 -11
  40. package/apple/RNGestureHandlerManager.h +5 -0
  41. package/apple/RNGestureHandlerManager.mm +32 -6
  42. package/apple/RNGestureHandlerModule.h +5 -3
  43. package/apple/RNGestureHandlerModule.mm +33 -19
  44. package/apple/RNGestureHandlerPointerType.h +8 -0
  45. package/lib/commonjs/Directions.js +19 -6
  46. package/lib/commonjs/Directions.js.map +1 -1
  47. package/lib/commonjs/PointerType.js +16 -0
  48. package/lib/commonjs/PointerType.js.map +1 -0
  49. package/lib/commonjs/RNGestureHandlerModule.web.js +7 -61
  50. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  51. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  52. package/lib/commonjs/components/GestureHandlerRootView.android.js +17 -2
  53. package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -1
  54. package/lib/commonjs/components/GestureHandlerRootView.js +15 -2
  55. package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
  56. package/lib/commonjs/components/GestureHandlerRootView.web.js +15 -2
  57. package/lib/commonjs/components/GestureHandlerRootView.web.js.map +1 -1
  58. package/lib/commonjs/components/Swipeable.js +3 -1
  59. package/lib/commonjs/components/Swipeable.js.map +1 -1
  60. package/lib/commonjs/components/touchables/GenericTouchable.js +1 -0
  61. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  62. package/lib/commonjs/getShadowNodeFromRef.js +19 -2
  63. package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
  64. package/lib/commonjs/handlers/createHandler.js +5 -0
  65. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  66. package/lib/commonjs/handlers/customDirectEventTypes.js +14 -0
  67. package/lib/commonjs/handlers/customDirectEventTypes.js.map +1 -0
  68. package/lib/commonjs/handlers/customDirectEventTypes.web.js +11 -0
  69. package/lib/commonjs/handlers/customDirectEventTypes.web.js.map +1 -0
  70. package/lib/commonjs/handlers/gestureHandlerCommon.js +13 -2
  71. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  72. package/lib/commonjs/handlers/gestures/GestureDetector.js +10 -0
  73. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  74. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  75. package/lib/commonjs/index.js +11 -3
  76. package/lib/commonjs/index.js.map +1 -1
  77. package/lib/commonjs/mocks.js +2 -0
  78. package/lib/commonjs/mocks.js.map +1 -1
  79. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js.map +1 -1
  80. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  81. package/lib/commonjs/web/Gestures.js +66 -0
  82. package/lib/commonjs/web/Gestures.js.map +1 -0
  83. package/lib/commonjs/web/constants.js +3 -8
  84. package/lib/commonjs/web/constants.js.map +1 -1
  85. package/lib/commonjs/web/handlers/FlingGestureHandler.js +36 -12
  86. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  87. package/lib/commonjs/web/handlers/GestureHandler.js +10 -5
  88. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  89. package/lib/commonjs/web/handlers/IGestureHandler.js +2 -0
  90. package/lib/commonjs/web/handlers/IGestureHandler.js.map +1 -0
  91. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +5 -6
  92. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  93. package/lib/commonjs/web/interfaces.js +1 -23
  94. package/lib/commonjs/web/interfaces.js.map +1 -1
  95. package/lib/commonjs/web/tools/EventManager.js.map +1 -1
  96. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +117 -118
  97. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  98. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +10 -5
  99. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  100. package/lib/commonjs/web/tools/InteractionManager.js +12 -3
  101. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
  102. package/lib/commonjs/web/tools/NodeManager.js.map +1 -1
  103. package/lib/commonjs/web/tools/PointerEventManager.js +77 -27
  104. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
  105. package/lib/commonjs/web/tools/TouchEventManager.js +29 -6
  106. package/lib/commonjs/web/tools/TouchEventManager.js.map +1 -1
  107. package/lib/commonjs/web/tools/Vector.js +58 -0
  108. package/lib/commonjs/web/tools/Vector.js.map +1 -0
  109. package/lib/commonjs/web/utils.js +14 -0
  110. package/lib/commonjs/web/utils.js.map +1 -1
  111. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
  112. package/lib/module/Directions.js +16 -4
  113. package/lib/module/Directions.js.map +1 -1
  114. package/lib/module/PointerType.js +9 -0
  115. package/lib/module/PointerType.js.map +1 -0
  116. package/lib/module/RNGestureHandlerModule.web.js +2 -39
  117. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  118. package/lib/module/components/DrawerLayout.js.map +1 -1
  119. package/lib/module/components/GestureHandlerRootView.android.js +15 -2
  120. package/lib/module/components/GestureHandlerRootView.android.js.map +1 -1
  121. package/lib/module/components/GestureHandlerRootView.js +15 -3
  122. package/lib/module/components/GestureHandlerRootView.js.map +1 -1
  123. package/lib/module/components/GestureHandlerRootView.web.js +15 -3
  124. package/lib/module/components/GestureHandlerRootView.web.js.map +1 -1
  125. package/lib/module/components/Swipeable.js +3 -1
  126. package/lib/module/components/Swipeable.js.map +1 -1
  127. package/lib/module/components/touchables/GenericTouchable.js +1 -0
  128. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  129. package/lib/module/getShadowNodeFromRef.js +19 -2
  130. package/lib/module/getShadowNodeFromRef.js.map +1 -1
  131. package/lib/module/handlers/createHandler.js +5 -1
  132. package/lib/module/handlers/createHandler.js.map +1 -1
  133. package/lib/module/handlers/customDirectEventTypes.js +3 -0
  134. package/lib/module/handlers/customDirectEventTypes.js.map +1 -0
  135. package/lib/module/handlers/customDirectEventTypes.web.js +5 -0
  136. package/lib/module/handlers/customDirectEventTypes.web.js.map +1 -0
  137. package/lib/module/handlers/gestureHandlerCommon.js +11 -1
  138. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  139. package/lib/module/handlers/gestures/GestureDetector.js +10 -0
  140. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  141. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  142. package/lib/module/index.js +2 -1
  143. package/lib/module/index.js.map +1 -1
  144. package/lib/module/mocks.js +2 -0
  145. package/lib/module/mocks.js.map +1 -1
  146. package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -1
  147. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  148. package/lib/module/web/Gestures.js +39 -0
  149. package/lib/module/web/Gestures.js.map +1 -0
  150. package/lib/module/web/constants.js +1 -6
  151. package/lib/module/web/constants.js.map +1 -1
  152. package/lib/module/web/handlers/FlingGestureHandler.js +34 -12
  153. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  154. package/lib/module/web/handlers/GestureHandler.js +7 -4
  155. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  156. package/lib/module/web/handlers/IGestureHandler.js +2 -0
  157. package/lib/module/web/handlers/IGestureHandler.js.map +1 -0
  158. package/lib/module/web/handlers/NativeViewGestureHandler.js +5 -6
  159. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  160. package/lib/module/web/interfaces.js +0 -20
  161. package/lib/module/web/interfaces.js.map +1 -1
  162. package/lib/module/web/tools/EventManager.js.map +1 -1
  163. package/lib/module/web/tools/GestureHandlerOrchestrator.js +116 -117
  164. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  165. package/lib/module/web/tools/GestureHandlerWebDelegate.js +9 -4
  166. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  167. package/lib/module/web/tools/InteractionManager.js +9 -3
  168. package/lib/module/web/tools/InteractionManager.js.map +1 -1
  169. package/lib/module/web/tools/NodeManager.js.map +1 -1
  170. package/lib/module/web/tools/PointerEventManager.js +75 -27
  171. package/lib/module/web/tools/PointerEventManager.js.map +1 -1
  172. package/lib/module/web/tools/TouchEventManager.js +28 -6
  173. package/lib/module/web/tools/TouchEventManager.js.map +1 -1
  174. package/lib/module/web/tools/Vector.js +47 -0
  175. package/lib/module/web/tools/Vector.js.map +1 -0
  176. package/lib/module/web/utils.js +4 -0
  177. package/lib/module/web/utils.js.map +1 -1
  178. package/lib/module/web_hammer/NodeManager.js.map +1 -1
  179. package/lib/typescript/Directions.d.ts +7 -0
  180. package/lib/typescript/PointerType.d.ts +6 -0
  181. package/lib/typescript/RNGestureHandlerModule.web.d.ts +4 -39
  182. package/lib/typescript/components/DrawerLayout.d.ts +1 -2
  183. package/lib/typescript/components/GestureHandlerRootView.android.d.ts +1 -1
  184. package/lib/typescript/components/GestureHandlerRootView.d.ts +1 -1
  185. package/lib/typescript/components/GestureHandlerRootView.web.d.ts +1 -1
  186. package/lib/typescript/components/touchables/GenericTouchable.d.ts +2 -1
  187. package/lib/typescript/getShadowNodeFromRef.d.ts +1 -1
  188. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
  189. package/lib/typescript/handlers/customDirectEventTypes.d.ts +1 -0
  190. package/lib/typescript/handlers/customDirectEventTypes.web.d.ts +2 -0
  191. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +13 -2
  192. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +2 -1
  193. package/lib/typescript/handlers/gestures/gesture.d.ts +1 -2
  194. package/lib/typescript/index.d.ts +2 -1
  195. package/lib/typescript/mocks.d.ts +1 -0
  196. package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +6 -6
  197. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +4 -1
  198. package/lib/typescript/web/Gestures.d.ts +36 -0
  199. package/lib/typescript/web/constants.d.ts +1 -6
  200. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +3 -3
  201. package/lib/typescript/web/handlers/GestureHandler.d.ts +12 -9
  202. package/lib/typescript/web/handlers/IGestureHandler.d.ts +38 -0
  203. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +1 -0
  204. package/lib/typescript/web/interfaces.d.ts +9 -16
  205. package/lib/typescript/web/tools/EventManager.d.ts +15 -12
  206. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +3 -4
  207. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +7 -5
  208. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +3 -3
  209. package/lib/typescript/web/tools/InteractionManager.d.ts +6 -6
  210. package/lib/typescript/web/tools/NodeManager.d.ts +4 -3
  211. package/lib/typescript/web/tools/PointerEventManager.d.ts +11 -2
  212. package/lib/typescript/web/tools/TouchEventManager.d.ts +6 -1
  213. package/lib/typescript/web/tools/Vector.d.ts +15 -0
  214. package/lib/typescript/web/utils.d.ts +6 -4
  215. package/lib/typescript/web_hammer/NodeManager.d.ts +1 -1
  216. package/package.json +2 -1
  217. package/src/Directions.ts +21 -4
  218. package/src/PointerType.ts +6 -0
  219. package/src/RNGestureHandlerModule.web.ts +3 -44
  220. package/src/components/DrawerLayout.tsx +1 -1
  221. package/src/components/GestureHandlerRootView.android.tsx +13 -5
  222. package/src/components/GestureHandlerRootView.tsx +10 -5
  223. package/src/components/GestureHandlerRootView.web.tsx +10 -5
  224. package/src/components/Swipeable.tsx +2 -0
  225. package/src/components/touchables/GenericTouchable.tsx +3 -0
  226. package/src/getShadowNodeFromRef.ts +28 -6
  227. package/src/handlers/createHandler.tsx +14 -2
  228. package/src/handlers/customDirectEventTypes.ts +2 -0
  229. package/src/handlers/customDirectEventTypes.web.ts +5 -0
  230. package/src/handlers/gestureHandlerCommon.ts +30 -1
  231. package/src/handlers/gestures/GestureDetector.tsx +15 -0
  232. package/src/handlers/gestures/gesture.ts +1 -1
  233. package/src/index.ts +2 -1
  234. package/src/mocks.ts +2 -0
  235. package/src/specs/NativeRNGestureHandlerModule.ts +8 -8
  236. package/src/specs/RNGestureHandlerButtonNativeComponent.ts +4 -0
  237. package/src/web/Gestures.ts +41 -0
  238. package/src/web/constants.ts +1 -7
  239. package/src/web/handlers/FlingGestureHandler.ts +54 -24
  240. package/src/web/handlers/GestureHandler.ts +17 -12
  241. package/src/web/handlers/IGestureHandler.ts +50 -0
  242. package/src/web/handlers/NativeViewGestureHandler.ts +5 -6
  243. package/src/web/interfaces.ts +15 -17
  244. package/src/web/tools/EventManager.ts +16 -14
  245. package/src/web/tools/GestureHandlerDelegate.ts +3 -4
  246. package/src/web/tools/GestureHandlerOrchestrator.ts +162 -147
  247. package/src/web/tools/GestureHandlerWebDelegate.ts +14 -9
  248. package/src/web/tools/InteractionManager.ts +18 -12
  249. package/src/web/tools/NodeManager.ts +4 -3
  250. package/src/web/tools/PointerEventManager.ts +189 -154
  251. package/src/web/tools/TouchEventManager.ts +128 -120
  252. package/src/web/tools/Vector.ts +60 -0
  253. package/src/web/utils.ts +16 -4
  254. package/src/web_hammer/NodeManager.ts +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-gesture-handler",
3
- "version": "2.15.0",
3
+ "version": "2.16.0",
4
4
  "description": "Experimental implementation of a new declarative API for gesture handling in react-native",
5
5
  "scripts": {
6
6
  "prepare": "bob build && husky install",
@@ -98,6 +98,7 @@
98
98
  "husky": "^8.0.1",
99
99
  "jest": "^26.6.3",
100
100
  "lint-staged": "^12.3.2",
101
+ "madge": "^6.1.0",
101
102
  "prettier": "^2.7.1",
102
103
  "react": "18.2.0",
103
104
  "react-dom": "^16.12.0",
package/src/Directions.ts CHANGED
@@ -1,9 +1,26 @@
1
+ const RIGHT = 1;
2
+ const LEFT = 2;
3
+ const UP = 4;
4
+ const DOWN = 8;
5
+
6
+ // public interface
1
7
  export const Directions = {
2
- RIGHT: 1,
3
- LEFT: 2,
4
- UP: 4,
5
- DOWN: 8,
8
+ RIGHT: RIGHT,
9
+ LEFT: LEFT,
10
+ UP: UP,
11
+ DOWN: DOWN,
12
+ } as const;
13
+
14
+ // internal interface
15
+ export const DiagonalDirections = {
16
+ UP_RIGHT: UP | RIGHT,
17
+ DOWN_RIGHT: DOWN | RIGHT,
18
+ UP_LEFT: UP | LEFT,
19
+ DOWN_LEFT: DOWN | LEFT,
6
20
  } as const;
7
21
 
8
22
  // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value
9
23
  export type Directions = typeof Directions[keyof typeof Directions];
24
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
25
+ export type DiagonalDirections =
26
+ typeof DiagonalDirections[keyof typeof DiagonalDirections];
@@ -0,0 +1,6 @@
1
+ export enum PointerType {
2
+ TOUCH,
3
+ STYLUS,
4
+ MOUSE,
5
+ OTHER,
6
+ }
@@ -1,55 +1,14 @@
1
1
  import React from 'react';
2
2
 
3
- import { ActionType } from './ActionType';
3
+ import type { ActionType } from './ActionType';
4
4
  import { isNewWebImplementationEnabled } from './EnableNewWebImplementation';
5
-
6
- //GestureHandlers
5
+ import { Gestures, HammerGestures } from './web/Gestures';
6
+ import type { Config } from './web/interfaces';
7
7
  import InteractionManager from './web/tools/InteractionManager';
8
8
  import NodeManager from './web/tools/NodeManager';
9
- import PanGestureHandler from './web/handlers/PanGestureHandler';
10
- import TapGestureHandler from './web/handlers/TapGestureHandler';
11
- import LongPressGestureHandler from './web/handlers/LongPressGestureHandler';
12
- import PinchGestureHandler from './web/handlers/PinchGestureHandler';
13
- import RotationGestureHandler from './web/handlers/RotationGestureHandler';
14
- import FlingGestureHandler from './web/handlers/FlingGestureHandler';
15
- import NativeViewGestureHandler from './web/handlers/NativeViewGestureHandler';
16
- import ManualGestureHandler from './web/handlers/ManualGestureHandler';
17
- import HoverGestureHandler from './web/handlers/HoverGestureHandler';
18
-
19
- //Hammer Handlers
20
9
  import * as HammerNodeManager from './web_hammer/NodeManager';
21
- import HammerNativeViewGestureHandler from './web_hammer/NativeViewGestureHandler';
22
- import HammerPanGestureHandler from './web_hammer/PanGestureHandler';
23
- import HammerTapGestureHandler from './web_hammer/TapGestureHandler';
24
- import HammerLongPressGestureHandler from './web_hammer/LongPressGestureHandler';
25
- import HammerPinchGestureHandler from './web_hammer/PinchGestureHandler';
26
- import HammerRotationGestureHandler from './web_hammer/RotationGestureHandler';
27
- import HammerFlingGestureHandler from './web_hammer/FlingGestureHandler';
28
- import { Config } from './web/interfaces';
29
10
  import { GestureHandlerWebDelegate } from './web/tools/GestureHandlerWebDelegate';
30
11
 
31
- export const Gestures = {
32
- NativeViewGestureHandler,
33
- PanGestureHandler,
34
- TapGestureHandler,
35
- LongPressGestureHandler,
36
- PinchGestureHandler,
37
- RotationGestureHandler,
38
- FlingGestureHandler,
39
- ManualGestureHandler,
40
- HoverGestureHandler,
41
- };
42
-
43
- export const HammerGestures = {
44
- NativeViewGestureHandler: HammerNativeViewGestureHandler,
45
- PanGestureHandler: HammerPanGestureHandler,
46
- TapGestureHandler: HammerTapGestureHandler,
47
- LongPressGestureHandler: HammerLongPressGestureHandler,
48
- PinchGestureHandler: HammerPinchGestureHandler,
49
- RotationGestureHandler: HammerRotationGestureHandler,
50
- FlingGestureHandler: HammerFlingGestureHandler,
51
- };
52
-
53
12
  export default {
54
13
  handleSetJSResponder(tag: number, blockNativeResponder: boolean) {
55
14
  console.warn('handleSetJSResponder: ', tag, blockNativeResponder);
@@ -28,6 +28,7 @@ import {
28
28
  HandlerStateChangeEvent,
29
29
  UserSelect,
30
30
  ActiveCursor,
31
+ MouseButton,
31
32
  } from '../handlers/gestureHandlerCommon';
32
33
  import {
33
34
  PanGestureHandler,
@@ -38,7 +39,6 @@ import {
38
39
  TapGestureHandlerEventPayload,
39
40
  } from '../handlers/TapGestureHandler';
40
41
  import { State } from '../State';
41
- import { MouseButton } from '../web/interfaces';
42
42
 
43
43
  const DRAG_TOSS = 0.05;
44
44
 
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { PropsWithChildren } from 'react';
3
- import { ViewProps } from 'react-native';
3
+ import { ViewProps, StyleSheet } from 'react-native';
4
4
  import { maybeInitializeFabric } from '../init';
5
5
  import GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';
6
6
  import GestureHandlerRootViewNativeComponent from '../specs/RNGestureHandlerRootViewNativeComponent';
@@ -8,9 +8,10 @@ import GestureHandlerRootViewNativeComponent from '../specs/RNGestureHandlerRoot
8
8
  export interface GestureHandlerRootViewProps
9
9
  extends PropsWithChildren<ViewProps> {}
10
10
 
11
- export default function GestureHandlerRootView(
12
- props: GestureHandlerRootViewProps
13
- ) {
11
+ export default function GestureHandlerRootView({
12
+ style,
13
+ ...rest
14
+ }: GestureHandlerRootViewProps) {
14
15
  // try initialize fabric on the first render, at this point we can
15
16
  // reliably check if fabric is enabled (the function contains a flag
16
17
  // to make sure it's called only once)
@@ -18,7 +19,14 @@ export default function GestureHandlerRootView(
18
19
 
19
20
  return (
20
21
  <GestureHandlerRootViewContext.Provider value>
21
- <GestureHandlerRootViewNativeComponent {...props} />
22
+ <GestureHandlerRootViewNativeComponent
23
+ style={style ?? styles.container}
24
+ {...rest}
25
+ />
22
26
  </GestureHandlerRootViewContext.Provider>
23
27
  );
24
28
  }
29
+
30
+ const styles = StyleSheet.create({
31
+ container: { flex: 1 },
32
+ });
@@ -1,15 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import { PropsWithChildren } from 'react';
3
- import { View, ViewProps } from 'react-native';
3
+ import { View, ViewProps, StyleSheet } from 'react-native';
4
4
  import { maybeInitializeFabric } from '../init';
5
5
  import GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';
6
6
 
7
7
  export interface GestureHandlerRootViewProps
8
8
  extends PropsWithChildren<ViewProps> {}
9
9
 
10
- export default function GestureHandlerRootView(
11
- props: GestureHandlerRootViewProps
12
- ) {
10
+ export default function GestureHandlerRootView({
11
+ style,
12
+ ...rest
13
+ }: GestureHandlerRootViewProps) {
13
14
  // try initialize fabric on the first render, at this point we can
14
15
  // reliably check if fabric is enabled (the function contains a flag
15
16
  // to make sure it's called only once)
@@ -17,7 +18,11 @@ export default function GestureHandlerRootView(
17
18
 
18
19
  return (
19
20
  <GestureHandlerRootViewContext.Provider value>
20
- <View {...props} />
21
+ <View style={style ?? styles.container} {...rest} />
21
22
  </GestureHandlerRootViewContext.Provider>
22
23
  );
23
24
  }
25
+
26
+ const styles = StyleSheet.create({
27
+ container: { flex: 1 },
28
+ });
@@ -1,17 +1,22 @@
1
1
  import * as React from 'react';
2
2
  import { PropsWithChildren } from 'react';
3
- import { View, ViewProps } from 'react-native';
3
+ import { View, ViewProps, StyleSheet } from 'react-native';
4
4
  import GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';
5
5
 
6
6
  export interface GestureHandlerRootViewProps
7
7
  extends PropsWithChildren<ViewProps> {}
8
8
 
9
- export default function GestureHandlerRootView(
10
- props: GestureHandlerRootViewProps
11
- ) {
9
+ export default function GestureHandlerRootView({
10
+ style,
11
+ ...rest
12
+ }: GestureHandlerRootViewProps) {
12
13
  return (
13
14
  <GestureHandlerRootViewContext.Provider value>
14
- <View {...props} />
15
+ <View style={style ?? styles.container} {...rest} />
15
16
  </GestureHandlerRootViewContext.Provider>
16
17
  );
17
18
  }
19
+
20
+ const styles = StyleSheet.create({
21
+ container: { flex: 1 },
22
+ });
@@ -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}
@@ -2,21 +2,43 @@
2
2
  // attached view may get flattened on Fabric. This implementation causes errors
3
3
  // on web due to the static resolution of `require` statements by webpack breaking
4
4
  // the conditional importing. Solved by making .web file.
5
- let findHostInstance_DEPRECATED: (ref: any) => void;
5
+ let findHostInstance_DEPRECATED: (ref: unknown) => void;
6
+ let getInternalInstanceHandleFromPublicInstance: (ref: unknown) => {
7
+ stateNode: { node: unknown };
8
+ };
6
9
 
7
- export function getShadowNodeFromRef(ref: any) {
10
+ export function getShadowNodeFromRef(ref: unknown) {
8
11
  // load findHostInstance_DEPRECATED lazily because it may not be available before render
9
12
  if (findHostInstance_DEPRECATED === undefined) {
10
13
  try {
14
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
11
15
  findHostInstance_DEPRECATED =
12
- // eslint-disable-next-line @typescript-eslint/no-var-requires
16
+ // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access
13
17
  require('react-native/Libraries/Renderer/shims/ReactFabric').findHostInstance_DEPRECATED;
14
18
  } catch (e) {
15
- findHostInstance_DEPRECATED = (_ref: any) => null;
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;
16
37
  }
17
38
  }
18
39
 
19
40
  // @ts-ignore Fabric
20
- return findHostInstance_DEPRECATED(ref)._internalInstanceHandle.stateNode
21
- .node;
41
+ return getInternalInstanceHandleFromPublicInstance(
42
+ findHostInstance_DEPRECATED(ref)
43
+ ).stateNode.node;
22
44
  }
@@ -5,10 +5,10 @@ import {
5
5
  DeviceEventEmitter,
6
6
  EmitterSubscription,
7
7
  } from 'react-native';
8
+ import { customDirectEventTypes } from './customDirectEventTypes';
8
9
  // @ts-ignore - it isn't typed by TS & don't have definitelyTyped types
9
10
  import deepEqual from 'lodash/isEqual';
10
11
  import RNGestureHandlerModule from '../RNGestureHandlerModule';
11
- import type RNGestureHandlerModuleWeb from '../RNGestureHandlerModule.web';
12
12
  import { State } from '../State';
13
13
  import {
14
14
  handlerIDToTag,
@@ -33,6 +33,10 @@ import { ghQueueMicrotask } from '../ghQueueMicrotask';
33
33
 
34
34
  const UIManagerAny = UIManager as any;
35
35
 
36
+ customDirectEventTypes.topGestureHandlerEvent = {
37
+ registrationName: 'onGestureHandlerEvent',
38
+ };
39
+
36
40
  const customGHEventsConfigFabricAndroid = {
37
41
  topOnGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },
38
42
  topOnGestureHandlerStateChange: {
@@ -149,6 +153,14 @@ type InternalEventHandlers = {
149
153
  onGestureHandlerStateChange?: (event: any) => void;
150
154
  };
151
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
+
152
164
  const UNRESOLVED_REFS_RETRY_LIMIT = 1;
153
165
 
154
166
  // TODO(TS) - make sure that BaseGestureHandlerProps doesn't need other generic parameter to work with custom properties.
@@ -315,7 +327,7 @@ export default function createHandler<
315
327
  if (Platform.OS === 'web') {
316
328
  // typecast due to dynamic resolution, attachGestureHandler should have web version signature in this branch
317
329
  (
318
- RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler
330
+ RNGestureHandlerModule.attachGestureHandler as AttachGestureHandlerWeb
319
331
  )(
320
332
  this.handlerTag,
321
333
  newViewTag,
@@ -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,7 @@ 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';
15
+ import { PointerType } from '../PointerType';
16
16
 
17
17
  const commonProps = [
18
18
  'id',
@@ -24,6 +24,7 @@ const commonProps = [
24
24
  'activeCursor',
25
25
  'mouseButton',
26
26
  'enableContextMenu',
27
+ 'touchAction',
27
28
  ] as const;
28
29
 
29
30
  const componentInteractionProps = [
@@ -54,6 +55,7 @@ export interface GestureEventPayload {
54
55
  handlerTag: number;
55
56
  numberOfPointers: number;
56
57
  state: ValueOf<typeof State>;
58
+ pointerType: PointerType;
57
59
  }
58
60
  export interface HandlerStateChangeEventPayload extends GestureEventPayload {
59
61
  oldState: ValueOf<typeof State>;
@@ -111,6 +113,32 @@ export type ActiveCursor =
111
113
  | 'zoom-in'
112
114
  | 'zoom-out';
113
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
+
114
142
  //TODO(TS) events in handlers
115
143
 
116
144
  export interface GestureEvent<ExtraEventPayloadT = Record<string, unknown>> {
@@ -154,6 +182,7 @@ export type CommonGestureConfig = {
154
182
  activeCursor?: ActiveCursor;
155
183
  mouseButton?: MouseButton;
156
184
  enableContextMenu?: boolean;
185
+ touchAction?: TouchAction;
157
186
  };
158
187
 
159
188
  // Events payloads are types instead of interfaces due to TS limitation.
@@ -19,6 +19,7 @@ import {
19
19
  HandlerStateChangeEvent,
20
20
  scheduleFlushOperations,
21
21
  UserSelect,
22
+ TouchAction,
22
23
  } from '../gestureHandlerCommon';
23
24
  import {
24
25
  GestureStateManager,
@@ -614,11 +615,21 @@ const applyEnableContextMenuProp = (
614
615
  }
615
616
  };
616
617
 
618
+ const applyTouchActionProp = (
619
+ touchAction: TouchAction,
620
+ gesture: ComposedGesture | GestureType
621
+ ): void => {
622
+ for (const g of gesture.toGestureArray()) {
623
+ g.config.touchAction = touchAction;
624
+ }
625
+ };
626
+
617
627
  interface GestureDetectorProps {
618
628
  gesture: ComposedGesture | GestureType;
619
629
  children?: React.ReactNode;
620
630
  userSelect?: UserSelect;
621
631
  enableContextMenu?: boolean;
632
+ touchAction?: TouchAction;
622
633
  }
623
634
  interface GestureDetectorState {
624
635
  firstRender: boolean;
@@ -644,6 +655,10 @@ export const GestureDetector = (props: GestureDetectorProps) => {
644
655
  applyEnableContextMenuProp(props.enableContextMenu, gestureConfig);
645
656
  }
646
657
 
658
+ if (props.touchAction !== undefined) {
659
+ applyTouchActionProp(props.touchAction, gestureConfig);
660
+ }
661
+
647
662
  const gesture = gestureConfig.toGestureArray();
648
663
  const useReanimatedHook = gesture.some((g) => g.shouldUseReanimated);
649
664
 
@@ -7,6 +7,7 @@ import {
7
7
  GestureStateChangeEvent,
8
8
  GestureUpdateEvent,
9
9
  ActiveCursor,
10
+ MouseButton,
10
11
  } from '../gestureHandlerCommon';
11
12
  import { getNextHandlerTag } from '../handlersRegistry';
12
13
  import { GestureStateManagerType } from './gestureStateManager';
@@ -17,7 +18,6 @@ import { RotationGestureHandlerEventPayload } from '../RotationGestureHandler';
17
18
  import { TapGestureHandlerEventPayload } from '../TapGestureHandler';
18
19
  import { NativeViewGestureHandlerPayload } from '../NativeViewGestureHandler';
19
20
  import { isRemoteDebuggingEnabled } from '../../utils';
20
- import { MouseButton } from '../../web/interfaces';
21
21
 
22
22
  export type GestureType =
23
23
  | BaseGesture<Record<string, unknown>>
package/src/index.ts CHANGED
@@ -2,7 +2,7 @@ import { initialize } from './init';
2
2
 
3
3
  export { Directions } from './Directions';
4
4
  export { State } from './State';
5
- export { MouseButton } from './web/interfaces';
5
+ export { PointerType } from './PointerType';
6
6
  export { default as gestureHandlerRootHOC } from './components/gestureHandlerRootHOC';
7
7
  export { default as GestureHandlerRootView } from './components/GestureHandlerRootView';
8
8
  export type {
@@ -19,6 +19,7 @@ export type {
19
19
  GestureUpdateEvent,
20
20
  GestureStateChangeEvent,
21
21
  } from './handlers/gestureHandlerCommon';
22
+ export { MouseButton } from './handlers/gestureHandlerCommon';
22
23
  export type { GestureType } from './handlers/gestures/gesture';
23
24
  export type {
24
25
  TapGestureHandlerEventPayload,
package/src/mocks.ts CHANGED
@@ -22,6 +22,7 @@ const createGestureHandler = NOOP;
22
22
  const dropGestureHandler = NOOP;
23
23
  const updateGestureHandler = NOOP;
24
24
  const flushOperations = NOOP;
25
+ const install = NOOP;
25
26
  const NativeViewGestureHandler = View;
26
27
  const TapGestureHandler = View;
27
28
  const ForceTouchGestureHandler = View;
@@ -61,6 +62,7 @@ export default {
61
62
  dropGestureHandler,
62
63
  updateGestureHandler,
63
64
  flushOperations,
65
+ install,
64
66
  // probably can be removed
65
67
  Directions,
66
68
  State,
@@ -1,24 +1,24 @@
1
1
  import { TurboModuleRegistry, TurboModule } from 'react-native';
2
- import { Int32 } from 'react-native/Libraries/Types/CodegenTypes';
2
+ import { Double } from 'react-native/Libraries/Types/CodegenTypes';
3
3
 
4
4
  export interface Spec extends TurboModule {
5
- handleSetJSResponder: (tag: Int32, blockNativeResponder: boolean) => void;
5
+ handleSetJSResponder: (tag: Double, blockNativeResponder: boolean) => void;
6
6
  handleClearJSResponder: () => void;
7
7
  createGestureHandler: (
8
8
  handlerName: string,
9
- handlerTag: Int32,
9
+ handlerTag: Double,
10
10
  // Record<> is not supported by codegen
11
11
  // eslint-disable-next-line @typescript-eslint/ban-types
12
12
  config: Object
13
13
  ) => void;
14
14
  attachGestureHandler: (
15
- handlerTag: Int32,
16
- newView: Int32,
17
- actionType: Int32
15
+ handlerTag: Double,
16
+ newView: Double,
17
+ actionType: Double
18
18
  ) => void;
19
19
  // eslint-disable-next-line @typescript-eslint/ban-types
20
- updateGestureHandler: (handlerTag: Int32, newConfig: Object) => void;
21
- dropGestureHandler: (handlerTag: Int32) => void;
20
+ updateGestureHandler: (handlerTag: Double, newConfig: Object) => void;
21
+ dropGestureHandler: (handlerTag: Double) => void;
22
22
  install: () => boolean;
23
23
  flushOperations: () => void;
24
24
  }
@@ -2,6 +2,7 @@ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNati
2
2
  import type {
3
3
  Int32,
4
4
  WithDefault,
5
+ Float,
5
6
  } from 'react-native/Libraries/Types/CodegenTypes';
6
7
  import type { ViewProps, ColorValue } from 'react-native';
7
8
 
@@ -13,6 +14,9 @@ interface NativeProps extends ViewProps {
13
14
  rippleColor?: ColorValue;
14
15
  rippleRadius?: Int32;
15
16
  touchSoundDisabled?: WithDefault<boolean, false>;
17
+ borderWidth?: Float;
18
+ borderColor?: ColorValue;
19
+ borderStyle?: WithDefault<string, 'solid'>;
16
20
  }
17
21
 
18
22
  export default codegenNativeComponent<NativeProps>('RNGestureHandlerButton');
@@ -0,0 +1,41 @@
1
+ // Gesture Handlers
2
+ import PanGestureHandler from './handlers/PanGestureHandler';
3
+ import TapGestureHandler from './handlers/TapGestureHandler';
4
+ import LongPressGestureHandler from './handlers/LongPressGestureHandler';
5
+ import PinchGestureHandler from './handlers/PinchGestureHandler';
6
+ import RotationGestureHandler from './handlers/RotationGestureHandler';
7
+ import FlingGestureHandler from './handlers/FlingGestureHandler';
8
+ import NativeViewGestureHandler from './handlers/NativeViewGestureHandler';
9
+ import ManualGestureHandler from './handlers/ManualGestureHandler';
10
+ import HoverGestureHandler from './handlers/HoverGestureHandler';
11
+
12
+ //Hammer Handlers
13
+ import HammerNativeViewGestureHandler from '../web_hammer/NativeViewGestureHandler';
14
+ import HammerPanGestureHandler from '../web_hammer/PanGestureHandler';
15
+ import HammerTapGestureHandler from '../web_hammer/TapGestureHandler';
16
+ import HammerLongPressGestureHandler from '../web_hammer/LongPressGestureHandler';
17
+ import HammerPinchGestureHandler from '../web_hammer/PinchGestureHandler';
18
+ import HammerRotationGestureHandler from '../web_hammer/RotationGestureHandler';
19
+ import HammerFlingGestureHandler from '../web_hammer/FlingGestureHandler';
20
+
21
+ export const Gestures = {
22
+ NativeViewGestureHandler,
23
+ PanGestureHandler,
24
+ TapGestureHandler,
25
+ LongPressGestureHandler,
26
+ PinchGestureHandler,
27
+ RotationGestureHandler,
28
+ FlingGestureHandler,
29
+ ManualGestureHandler,
30
+ HoverGestureHandler,
31
+ };
32
+
33
+ export const HammerGestures = {
34
+ NativeViewGestureHandler: HammerNativeViewGestureHandler,
35
+ PanGestureHandler: HammerPanGestureHandler,
36
+ TapGestureHandler: HammerTapGestureHandler,
37
+ LongPressGestureHandler: HammerLongPressGestureHandler,
38
+ PinchGestureHandler: HammerPinchGestureHandler,
39
+ RotationGestureHandler: HammerRotationGestureHandler,
40
+ FlingGestureHandler: HammerFlingGestureHandler,
41
+ };
@@ -1,8 +1,2 @@
1
1
  export const DEFAULT_TOUCH_SLOP = 15;
2
-
3
- export const Direction = {
4
- RIGHT: 1,
5
- LEFT: 2,
6
- UP: 4,
7
- DOWN: 8,
8
- };
2
+ export const MINIMAL_FLING_VELOCITY = 0.1;