react-native-gesture-handler 2.16.0 → 2.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/README.md +1 -0
  2. package/lib/commonjs/RNGestureHandlerModule.js +97 -4
  3. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
  4. package/lib/commonjs/RNGestureHandlerModule.native.js +16 -0
  5. package/lib/commonjs/RNGestureHandlerModule.native.js.map +1 -0
  6. package/lib/commonjs/RNRenderer.js +5 -10
  7. package/lib/commonjs/RNRenderer.js.map +1 -1
  8. package/lib/commonjs/RNRenderer.native.js +16 -0
  9. package/lib/commonjs/RNRenderer.native.js.map +1 -0
  10. package/lib/commonjs/components/GestureComponents.js +19 -82
  11. package/lib/commonjs/components/GestureComponents.js.map +1 -1
  12. package/lib/commonjs/components/GestureComponents.native.js +115 -0
  13. package/lib/commonjs/components/GestureComponents.native.js.map +1 -0
  14. package/lib/commonjs/components/GestureHandlerButton.js +13 -3
  15. package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
  16. package/lib/commonjs/components/GestureHandlerButton.native.js +14 -0
  17. package/lib/commonjs/components/GestureHandlerButton.native.js.map +1 -0
  18. package/lib/commonjs/components/GestureHandlerRootView.js +0 -6
  19. package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
  20. package/lib/commonjs/components/{GestureHandlerRootView.web.js → GestureHandlerRootView.native.js} +7 -1
  21. package/lib/commonjs/components/GestureHandlerRootView.native.js.map +1 -0
  22. package/lib/commonjs/getReactNativeVersion.js +1 -12
  23. package/lib/commonjs/getReactNativeVersion.js.map +1 -1
  24. package/lib/commonjs/getReactNativeVersion.native.js +22 -0
  25. package/lib/commonjs/getReactNativeVersion.native.js.map +1 -0
  26. package/lib/commonjs/getShadowNodeFromRef.js +5 -34
  27. package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
  28. package/lib/commonjs/getShadowNodeFromRef.native.js +44 -0
  29. package/lib/commonjs/getShadowNodeFromRef.native.js.map +1 -0
  30. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
  31. package/lib/commonjs/handlers/PressabilityDebugView.js +5 -7
  32. package/lib/commonjs/handlers/PressabilityDebugView.js.map +1 -1
  33. package/lib/commonjs/handlers/PressabilityDebugView.native.js +14 -0
  34. package/lib/commonjs/handlers/PressabilityDebugView.native.js.map +1 -0
  35. package/lib/commonjs/handlers/createHandler.js +9 -3
  36. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  37. package/lib/commonjs/handlers/customDirectEventTypes.js +5 -8
  38. package/lib/commonjs/handlers/customDirectEventTypes.js.map +1 -1
  39. package/lib/commonjs/handlers/customDirectEventTypes.native.js +14 -0
  40. package/lib/commonjs/handlers/customDirectEventTypes.native.js.map +1 -0
  41. package/lib/commonjs/handlers/gestures/GestureDetector.js +15 -0
  42. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  43. package/lib/commonjs/handlers/gestures/flingGesture.js +13 -0
  44. package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -1
  45. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +17 -0
  46. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
  47. package/lib/commonjs/handlers/gestures/gesture.js +135 -0
  48. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  49. package/lib/commonjs/handlers/gestures/gestureObjects.js +66 -0
  50. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
  51. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +1 -1
  52. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js.map +1 -1
  53. package/lib/commonjs/handlers/gestures/hoverGesture.js +1 -1
  54. package/lib/commonjs/handlers/gestures/hoverGesture.js.map +1 -1
  55. package/lib/commonjs/handlers/gestures/longPressGesture.js +12 -0
  56. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
  57. package/lib/commonjs/handlers/gestures/nativeGesture.js +10 -0
  58. package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -1
  59. package/lib/commonjs/handlers/gestures/panGesture.js +76 -0
  60. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
  61. package/lib/commonjs/handlers/gestures/tapGesture.js +42 -0
  62. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
  63. package/lib/commonjs/utils.js +5 -1
  64. package/lib/commonjs/utils.js.map +1 -1
  65. package/lib/commonjs/web/handlers/GestureHandler.js +7 -7
  66. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  67. package/lib/commonjs/web/handlers/PanGestureHandler.js +3 -1
  68. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  69. package/lib/commonjs/web/interfaces.js.map +1 -1
  70. package/lib/module/RNGestureHandlerModule.js +84 -4
  71. package/lib/module/RNGestureHandlerModule.js.map +1 -1
  72. package/lib/module/RNGestureHandlerModule.native.js +5 -0
  73. package/lib/module/RNGestureHandlerModule.native.js.map +1 -0
  74. package/lib/module/RNRenderer.js +3 -3
  75. package/lib/module/RNRenderer.js.map +1 -1
  76. package/lib/module/RNRenderer.native.js +4 -0
  77. package/lib/module/RNRenderer.native.js.map +1 -0
  78. package/lib/module/components/GestureComponents.js +18 -80
  79. package/lib/module/components/GestureComponents.js.map +1 -1
  80. package/lib/module/components/GestureComponents.native.js +90 -0
  81. package/lib/module/components/GestureComponents.native.js.map +1 -0
  82. package/lib/module/components/GestureHandlerButton.js +8 -2
  83. package/lib/module/components/GestureHandlerButton.js.map +1 -1
  84. package/lib/module/components/GestureHandlerButton.native.js +3 -0
  85. package/lib/module/components/GestureHandlerButton.native.js.map +1 -0
  86. package/lib/module/components/GestureHandlerRootView.js +0 -5
  87. package/lib/module/components/GestureHandlerRootView.js.map +1 -1
  88. package/lib/module/components/{GestureHandlerRootView.web.js → GestureHandlerRootView.native.js} +6 -1
  89. package/lib/module/components/GestureHandlerRootView.native.js.map +1 -0
  90. package/lib/module/getReactNativeVersion.js +1 -7
  91. package/lib/module/getReactNativeVersion.js.map +1 -1
  92. package/lib/module/getReactNativeVersion.native.js +10 -0
  93. package/lib/module/getReactNativeVersion.native.js.map +1 -0
  94. package/lib/module/getShadowNodeFromRef.js +4 -33
  95. package/lib/module/getShadowNodeFromRef.js.map +1 -1
  96. package/lib/module/getShadowNodeFromRef.native.js +37 -0
  97. package/lib/module/getShadowNodeFromRef.native.js.map +1 -0
  98. package/lib/module/handlers/PanGestureHandler.js.map +1 -1
  99. package/lib/module/handlers/PressabilityDebugView.js +4 -2
  100. package/lib/module/handlers/PressabilityDebugView.js.map +1 -1
  101. package/lib/module/handlers/PressabilityDebugView.native.js +3 -0
  102. package/lib/module/handlers/PressabilityDebugView.native.js.map +1 -0
  103. package/lib/module/handlers/createHandler.js +9 -3
  104. package/lib/module/handlers/createHandler.js.map +1 -1
  105. package/lib/module/handlers/customDirectEventTypes.js +4 -2
  106. package/lib/module/handlers/customDirectEventTypes.js.map +1 -1
  107. package/lib/module/handlers/customDirectEventTypes.native.js +3 -0
  108. package/lib/module/handlers/customDirectEventTypes.native.js.map +1 -0
  109. package/lib/module/handlers/gestures/GestureDetector.js +15 -0
  110. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  111. package/lib/module/handlers/gestures/flingGesture.js +13 -0
  112. package/lib/module/handlers/gestures/flingGesture.js.map +1 -1
  113. package/lib/module/handlers/gestures/forceTouchGesture.js +17 -0
  114. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
  115. package/lib/module/handlers/gestures/gesture.js +135 -0
  116. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  117. package/lib/module/handlers/gestures/gestureObjects.js +67 -0
  118. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
  119. package/lib/module/handlers/gestures/gestureStateManager.web.js +1 -1
  120. package/lib/module/handlers/gestures/gestureStateManager.web.js.map +1 -1
  121. package/lib/module/handlers/gestures/hoverGesture.js +1 -1
  122. package/lib/module/handlers/gestures/hoverGesture.js.map +1 -1
  123. package/lib/module/handlers/gestures/longPressGesture.js +12 -0
  124. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
  125. package/lib/module/handlers/gestures/nativeGesture.js +10 -0
  126. package/lib/module/handlers/gestures/nativeGesture.js.map +1 -1
  127. package/lib/module/handlers/gestures/panGesture.js +76 -0
  128. package/lib/module/handlers/gestures/panGesture.js.map +1 -1
  129. package/lib/module/handlers/gestures/tapGesture.js +42 -0
  130. package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
  131. package/lib/module/utils.js +5 -1
  132. package/lib/module/utils.js.map +1 -1
  133. package/lib/module/web/handlers/GestureHandler.js +7 -7
  134. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  135. package/lib/module/web/handlers/PanGestureHandler.js +3 -1
  136. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  137. package/lib/module/web/interfaces.js.map +1 -1
  138. package/lib/typescript/RNGestureHandlerModule.d.ts +15 -2
  139. package/lib/typescript/RNGestureHandlerModule.native.d.ts +2 -0
  140. package/lib/typescript/RNRenderer.d.ts +3 -1
  141. package/lib/typescript/RNRenderer.native.d.ts +1 -0
  142. package/lib/typescript/components/GestureComponents.d.ts +7 -21
  143. package/lib/typescript/components/GestureComponents.native.d.ts +22 -0
  144. package/lib/typescript/components/GestureHandlerButton.d.ts +3 -3
  145. package/lib/typescript/components/GestureHandlerButton.native.d.ts +4 -0
  146. package/lib/typescript/getReactNativeVersion.d.ts +1 -4
  147. package/lib/typescript/getReactNativeVersion.native.d.ts +4 -0
  148. package/lib/typescript/getShadowNodeFromRef.d.ts +1 -1
  149. package/lib/typescript/getShadowNodeFromRef.native.d.ts +1 -0
  150. package/lib/typescript/handlers/PanGestureHandler.d.ts +4 -4
  151. package/lib/typescript/handlers/PressabilityDebugView.d.ts +1 -1
  152. package/lib/typescript/handlers/PressabilityDebugView.native.d.ts +1 -0
  153. package/lib/typescript/handlers/customDirectEventTypes.d.ts +2 -1
  154. package/lib/typescript/handlers/customDirectEventTypes.native.d.ts +1 -0
  155. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +36 -0
  156. package/lib/typescript/handlers/gestures/flingGesture.d.ts +11 -0
  157. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +14 -0
  158. package/lib/typescript/handlers/gestures/gesture.d.ts +113 -0
  159. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +57 -0
  160. package/lib/typescript/handlers/gestures/hoverGesture.d.ts +1 -1
  161. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +10 -0
  162. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +8 -0
  163. package/lib/typescript/handlers/gestures/panGesture.d.ts +67 -4
  164. package/lib/typescript/handlers/gestures/tapGesture.d.ts +35 -0
  165. package/lib/typescript/web/handlers/GestureHandler.d.ts +2 -2
  166. package/lib/typescript/web/handlers/IGestureHandler.d.ts +1 -1
  167. package/lib/typescript/web/interfaces.d.ts +1 -0
  168. package/package.json +3 -2
  169. package/src/RNGestureHandlerModule.native.ts +5 -0
  170. package/src/RNGestureHandlerModule.ts +104 -4
  171. package/src/RNRenderer.native.ts +3 -0
  172. package/src/RNRenderer.ts +3 -3
  173. package/src/components/GestureComponents.native.tsx +148 -0
  174. package/src/components/GestureComponents.tsx +24 -131
  175. package/src/components/GestureHandlerButton.native.tsx +5 -0
  176. package/src/components/GestureHandlerButton.tsx +5 -4
  177. package/src/components/{GestureHandlerRootView.web.tsx → GestureHandlerRootView.native.tsx} +6 -0
  178. package/src/components/GestureHandlerRootView.tsx +0 -6
  179. package/src/getReactNativeVersion.native.ts +11 -0
  180. package/src/getReactNativeVersion.ts +1 -9
  181. package/src/getShadowNodeFromRef.native.ts +44 -0
  182. package/src/getShadowNodeFromRef.ts +4 -41
  183. package/src/handlers/PanGestureHandler.ts +8 -4
  184. package/src/handlers/PressabilityDebugView.native.tsx +2 -0
  185. package/src/handlers/PressabilityDebugView.tsx +4 -2
  186. package/src/handlers/createHandler.tsx +14 -10
  187. package/src/handlers/customDirectEventTypes.native.ts +2 -0
  188. package/src/handlers/customDirectEventTypes.ts +5 -2
  189. package/src/handlers/gestures/GestureDetector.tsx +47 -4
  190. package/src/handlers/gestures/flingGesture.ts +11 -0
  191. package/src/handlers/gestures/forceTouchGesture.ts +14 -0
  192. package/src/handlers/gestures/gesture.ts +113 -0
  193. package/src/handlers/gestures/gestureObjects.ts +57 -0
  194. package/src/handlers/gestures/gestureStateManager.web.ts +1 -1
  195. package/src/handlers/gestures/hoverGesture.ts +1 -1
  196. package/src/handlers/gestures/longPressGesture.ts +10 -0
  197. package/src/handlers/gestures/nativeGesture.ts +8 -0
  198. package/src/handlers/gestures/panGesture.ts +75 -4
  199. package/src/handlers/gestures/tapGesture.ts +35 -0
  200. package/src/utils.ts +9 -2
  201. package/src/web/handlers/GestureHandler.ts +9 -9
  202. package/src/web/handlers/IGestureHandler.ts +1 -1
  203. package/src/web/handlers/PanGestureHandler.ts +4 -0
  204. package/src/web/interfaces.ts +1 -0
  205. package/lib/commonjs/RNGestureHandlerModule.web.js +0 -109
  206. package/lib/commonjs/RNGestureHandlerModule.web.js.map +0 -1
  207. package/lib/commonjs/RNRenderer.web.js +0 -11
  208. package/lib/commonjs/RNRenderer.web.js.map +0 -1
  209. package/lib/commonjs/components/GestureComponents.web.js +0 -52
  210. package/lib/commonjs/components/GestureComponents.web.js.map +0 -1
  211. package/lib/commonjs/components/GestureHandlerButton.web.js +0 -24
  212. package/lib/commonjs/components/GestureHandlerButton.web.js.map +0 -1
  213. package/lib/commonjs/components/GestureHandlerRootView.web.js.map +0 -1
  214. package/lib/commonjs/getReactNativeVersion.web.js +0 -11
  215. package/lib/commonjs/getReactNativeVersion.web.js.map +0 -1
  216. package/lib/commonjs/getShadowNodeFromRef.web.js +0 -15
  217. package/lib/commonjs/getShadowNodeFromRef.web.js.map +0 -1
  218. package/lib/commonjs/handlers/PressabilityDebugView.web.js +0 -12
  219. package/lib/commonjs/handlers/PressabilityDebugView.web.js.map +0 -1
  220. package/lib/commonjs/handlers/customDirectEventTypes.web.js +0 -11
  221. package/lib/commonjs/handlers/customDirectEventTypes.web.js.map +0 -1
  222. package/lib/module/RNGestureHandlerModule.web.js +0 -85
  223. package/lib/module/RNGestureHandlerModule.web.js.map +0 -1
  224. package/lib/module/RNRenderer.web.js +0 -4
  225. package/lib/module/RNRenderer.web.js.map +0 -1
  226. package/lib/module/components/GestureComponents.web.js +0 -28
  227. package/lib/module/components/GestureComponents.web.js.map +0 -1
  228. package/lib/module/components/GestureHandlerButton.web.js +0 -9
  229. package/lib/module/components/GestureHandlerButton.web.js.map +0 -1
  230. package/lib/module/components/GestureHandlerRootView.web.js.map +0 -1
  231. package/lib/module/getReactNativeVersion.web.js +0 -4
  232. package/lib/module/getReactNativeVersion.web.js.map +0 -1
  233. package/lib/module/getShadowNodeFromRef.web.js +0 -8
  234. package/lib/module/getShadowNodeFromRef.web.js.map +0 -1
  235. package/lib/module/handlers/PressabilityDebugView.web.js +0 -5
  236. package/lib/module/handlers/PressabilityDebugView.web.js.map +0 -1
  237. package/lib/module/handlers/customDirectEventTypes.web.js +0 -5
  238. package/lib/module/handlers/customDirectEventTypes.web.js.map +0 -1
  239. package/lib/typescript/RNGestureHandlerModule.web.d.ts +0 -15
  240. package/lib/typescript/RNRenderer.web.d.ts +0 -3
  241. package/lib/typescript/components/GestureComponents.web.d.ts +0 -8
  242. package/lib/typescript/components/GestureHandlerButton.web.d.ts +0 -4
  243. package/lib/typescript/getReactNativeVersion.web.d.ts +0 -1
  244. package/lib/typescript/getShadowNodeFromRef.web.d.ts +0 -1
  245. package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +0 -1
  246. package/lib/typescript/handlers/customDirectEventTypes.web.d.ts +0 -2
  247. package/src/RNGestureHandlerModule.web.ts +0 -105
  248. package/src/RNRenderer.web.ts +0 -3
  249. package/src/components/GestureComponents.web.tsx +0 -41
  250. package/src/components/GestureHandlerButton.web.tsx +0 -6
  251. package/src/getReactNativeVersion.web.ts +0 -3
  252. package/src/getShadowNodeFromRef.web.ts +0 -7
  253. package/src/handlers/PressabilityDebugView.web.tsx +0 -4
  254. package/src/handlers/customDirectEventTypes.web.ts +0 -5
  255. /package/lib/typescript/components/{GestureHandlerRootView.web.d.ts → GestureHandlerRootView.native.d.ts} +0 -0
@@ -8,18 +8,81 @@ export type PanGestureChangeEventPayload = {
8
8
  export declare class PanGesture extends ContinousBaseGesture<PanGestureHandlerEventPayload, PanGestureChangeEventPayload> {
9
9
  config: BaseGestureConfig & PanGestureConfig;
10
10
  constructor();
11
- activeOffsetY(offset: number | number[]): this;
12
- activeOffsetX(offset: number | number[]): this;
13
- failOffsetY(offset: number | number[]): this;
14
- failOffsetX(offset: number | number[]): this;
11
+ /**
12
+ * Range along Y axis (in points) where fingers travels without activation of gesture.
13
+ * @param offset
14
+ * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture#activeoffsetyvalue-number--number
15
+ */
16
+ activeOffsetY(offset: number | [activeOffsetYStart: number, activeOffsetYEnd: number]): this;
17
+ /**
18
+ * Range along X axis (in points) where fingers travels without activation of gesture.
19
+ * @param offset
20
+ * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture#activeoffsetxvalue-number--number
21
+ */
22
+ activeOffsetX(offset: number | [activeOffsetXStart: number, activeOffsetXEnd: number]): this;
23
+ /**
24
+ * When the finger moves outside this range (in points) along Y axis and gesture hasn't yet activated it will fail recognizing the gesture.
25
+ * @param offset
26
+ * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture#failoffsetyvalue-number--number
27
+ */
28
+ failOffsetY(offset: number | [failOffsetYStart: number, failOffsetYEnd: number]): this;
29
+ /**
30
+ * When the finger moves outside this range (in points) along X axis and gesture hasn't yet activated it will fail recognizing the gesture.
31
+ * @param offset
32
+ * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture#failoffsetxvalue-number--number
33
+ */
34
+ failOffsetX(offset: number | [failOffsetXStart: number, failOffsetXEnd: number]): this;
35
+ /**
36
+ * A number of fingers that is required to be placed before gesture can activate. Should be a higher or equal to 0 integer.
37
+ * @param minPointers
38
+ */
15
39
  minPointers(minPointers: number): this;
40
+ /**
41
+ * When the given number of fingers is placed on the screen and gesture hasn't yet activated it will fail recognizing the gesture.
42
+ * Should be a higher or equal to 0 integer.
43
+ * @param maxPointers
44
+ */
16
45
  maxPointers(maxPointers: number): this;
46
+ /**
47
+ * Minimum distance the finger (or multiple finger) need to travel before the gesture activates.
48
+ * Expressed in points.
49
+ * @param distance
50
+ */
17
51
  minDistance(distance: number): this;
52
+ /**
53
+ * Minimum velocity the finger has to reach in order to activate handler.
54
+ * @param velocity
55
+ */
18
56
  minVelocity(velocity: number): this;
57
+ /**
58
+ * Minimum velocity along X axis the finger has to reach in order to activate handler.
59
+ * @param velocity
60
+ */
19
61
  minVelocityX(velocity: number): this;
62
+ /**
63
+ * Minimum velocity along Y axis the finger has to reach in order to activate handler.
64
+ * @param velocity
65
+ */
20
66
  minVelocityY(velocity: number): this;
67
+ /**
68
+ * #### Android only
69
+ * Android, by default, will calculate translation values based on the position of the leading pointer (the first one that was placed on the screen).
70
+ * This modifier allows that behavior to be changed to the one that is default on iOS - the averaged position of all active pointers will be used to calculate the translation values.
71
+ * @param value
72
+ */
21
73
  averageTouches(value: boolean): this;
74
+ /**
75
+ * #### iOS only
76
+ * Enables two-finger gestures on supported devices, for example iPads with trackpads.
77
+ * @param value
78
+ * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture/#enabletrackpadtwofingergesturevalue-boolean-ios-only
79
+ */
22
80
  enableTrackpadTwoFingerGesture(value: boolean): this;
81
+ /**
82
+ * Duration in milliseconds of the LongPress gesture before Pan is allowed to activate.
83
+ * @param duration
84
+ * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture/#activateafterlongpressduration-number
85
+ */
23
86
  activateAfterLongPress(duration: number): this;
24
87
  onChange(callback: (event: GestureUpdateEvent<PanGestureHandlerEventPayload & PanGestureChangeEventPayload>) => void): this;
25
88
  }
@@ -3,12 +3,47 @@ import { TapGestureConfig, TapGestureHandlerEventPayload } from '../TapGestureHa
3
3
  export declare class TapGesture extends BaseGesture<TapGestureHandlerEventPayload> {
4
4
  config: BaseGestureConfig & TapGestureConfig;
5
5
  constructor();
6
+ /**
7
+ * Minimum number of pointers (fingers) required to be placed before the gesture activates.
8
+ * Should be a positive integer. The default value is 1.
9
+ * @param minPointers
10
+ */
6
11
  minPointers(minPointers: number): this;
12
+ /**
13
+ * Number of tap gestures required to activate the gesture.
14
+ * The default value is 1.
15
+ * @param count
16
+ */
7
17
  numberOfTaps(count: number): this;
18
+ /**
19
+ * Maximum distance, expressed in points, that defines how far the finger is allowed to travel during a tap gesture.
20
+ * @param maxDist
21
+ * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/tap-gesture#maxdistancevalue-number
22
+ */
8
23
  maxDistance(maxDist: number): this;
24
+ /**
25
+ * Maximum time, expressed in milliseconds, that defines how fast a finger must be released after a touch.
26
+ * The default value is 500.
27
+ * @param duration
28
+ */
9
29
  maxDuration(duration: number): this;
30
+ /**
31
+ * Maximum time, expressed in milliseconds, that can pass before the next tap — if many taps are required.
32
+ * The default value is 500.
33
+ * @param delay
34
+ */
10
35
  maxDelay(delay: number): this;
36
+ /**
37
+ * Maximum distance, expressed in points, that defines how far the finger is allowed to travel along the X axis during a tap gesture.
38
+ * @param delta
39
+ * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/tap-gesture#maxdeltaxvalue-number
40
+ */
11
41
  maxDeltaX(delta: number): this;
42
+ /**
43
+ * Maximum distance, expressed in points, that defines how far the finger is allowed to travel along the Y axis during a tap gesture.
44
+ * @param delta
45
+ * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/tap-gesture#maxdeltayvalue-number
46
+ */
12
47
  maxDeltaY(delta: number): this;
13
48
  }
14
49
  export type TapGestureType = InstanceType<typeof TapGesture>;
@@ -9,7 +9,7 @@ import { PointerType } from '../../PointerType';
9
9
  export default abstract class GestureHandler implements IGestureHandler {
10
10
  private lastSentState;
11
11
  protected currentState: State;
12
- protected shouldCancellWhenOutside: boolean;
12
+ protected shouldCancelWhenOutside: boolean;
13
13
  protected hasCustomActivationCriteria: boolean;
14
14
  protected enabled: boolean;
15
15
  private viewRef;
@@ -41,7 +41,7 @@ export default abstract class GestureHandler implements IGestureHandler {
41
41
  * @param {boolean} sendIfDisabled - Used when handler becomes disabled. With this flag orchestrator will be forced to send cancel event
42
42
  */
43
43
  cancel(sendIfDisabled?: boolean): void;
44
- activate(_force?: boolean): void;
44
+ activate(force?: boolean): void;
45
45
  end(): void;
46
46
  isAwaiting(): boolean;
47
47
  setAwaiting(value: boolean): void;
@@ -16,7 +16,7 @@ export default interface IGestureHandler {
16
16
  getTracker: () => PointerTracker;
17
17
  getTrackedPointersID: () => number[];
18
18
  begin: () => void;
19
- activate: () => void;
19
+ activate: (force: boolean) => void;
20
20
  end: () => void;
21
21
  fail: () => void;
22
22
  cancel: () => void;
@@ -28,6 +28,7 @@ export interface Config extends Record<string, ConfigArgs> {
28
28
  mouseButton?: MouseButton;
29
29
  enableContextMenu?: boolean;
30
30
  touchAction?: TouchAction;
31
+ manualActivation?: boolean;
31
32
  activateAfterLongPress?: number;
32
33
  failOffsetXStart?: number;
33
34
  failOffsetYStart?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-gesture-handler",
3
- "version": "2.16.0",
3
+ "version": "2.16.1",
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",
@@ -152,5 +152,6 @@
152
152
  "android": {
153
153
  "javaPackageName": "com.swmansion.gesturehandler"
154
154
  }
155
- }
155
+ },
156
+ "packageManager": "yarn@1.22.22"
156
157
  }
@@ -0,0 +1,5 @@
1
+ // Reexport the native module spec used by codegen. The relevant files are inluded on Android
2
+ // to ensure the compatibility with the old arch, while iOS doesn't require those at all.
3
+
4
+ import Module from './specs/NativeRNGestureHandlerModule';
5
+ export default Module;
@@ -1,5 +1,105 @@
1
- // Reexport the native module spec used by codegen. The relevant files are inluded on Android
2
- // to ensure the compatibility with the old arch, while iOS doesn't require those at all.
1
+ import React from 'react';
3
2
 
4
- import Module from './specs/NativeRNGestureHandlerModule';
5
- export default Module;
3
+ import type { ActionType } from './ActionType';
4
+ import { isNewWebImplementationEnabled } from './EnableNewWebImplementation';
5
+ import { Gestures, HammerGestures } from './web/Gestures';
6
+ import type { Config } from './web/interfaces';
7
+ import InteractionManager from './web/tools/InteractionManager';
8
+ import NodeManager from './web/tools/NodeManager';
9
+ import * as HammerNodeManager from './web_hammer/NodeManager';
10
+ import { GestureHandlerWebDelegate } from './web/tools/GestureHandlerWebDelegate';
11
+
12
+ export default {
13
+ handleSetJSResponder(tag: number, blockNativeResponder: boolean) {
14
+ console.warn('handleSetJSResponder: ', tag, blockNativeResponder);
15
+ },
16
+ handleClearJSResponder() {
17
+ console.warn('handleClearJSResponder: ');
18
+ },
19
+ createGestureHandler<T>(
20
+ handlerName: keyof typeof Gestures,
21
+ handlerTag: number,
22
+ config: T
23
+ ) {
24
+ if (isNewWebImplementationEnabled()) {
25
+ if (!(handlerName in Gestures)) {
26
+ throw new Error(
27
+ `react-native-gesture-handler: ${handlerName} is not supported on web.`
28
+ );
29
+ }
30
+
31
+ const GestureClass = Gestures[handlerName];
32
+ NodeManager.createGestureHandler(
33
+ handlerTag,
34
+ new GestureClass(new GestureHandlerWebDelegate())
35
+ );
36
+ InteractionManager.getInstance().configureInteractions(
37
+ NodeManager.getHandler(handlerTag),
38
+ config as unknown as Config
39
+ );
40
+ } else {
41
+ if (!(handlerName in HammerGestures)) {
42
+ throw new Error(
43
+ `react-native-gesture-handler: ${handlerName} is not supported on web.`
44
+ );
45
+ }
46
+
47
+ // @ts-ignore If it doesn't exist, the error is thrown
48
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
49
+ const GestureClass = HammerGestures[handlerName];
50
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
51
+ HammerNodeManager.createGestureHandler(handlerTag, new GestureClass());
52
+ }
53
+
54
+ this.updateGestureHandler(handlerTag, config as unknown as Config);
55
+ },
56
+ attachGestureHandler(
57
+ handlerTag: number,
58
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
59
+ newView: any,
60
+ _actionType: ActionType,
61
+ propsRef: React.RefObject<unknown>
62
+ ) {
63
+ if (
64
+ !(newView instanceof HTMLElement || newView instanceof React.Component)
65
+ ) {
66
+ return;
67
+ }
68
+
69
+ if (isNewWebImplementationEnabled()) {
70
+ //@ts-ignore Types should be HTMLElement or React.Component
71
+ NodeManager.getHandler(handlerTag).init(newView, propsRef);
72
+ } else {
73
+ //@ts-ignore Types should be HTMLElement or React.Component
74
+ HammerNodeManager.getHandler(handlerTag).setView(newView, propsRef);
75
+ }
76
+ },
77
+ updateGestureHandler(handlerTag: number, newConfig: Config) {
78
+ if (isNewWebImplementationEnabled()) {
79
+ NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);
80
+
81
+ InteractionManager.getInstance().configureInteractions(
82
+ NodeManager.getHandler(handlerTag),
83
+ newConfig
84
+ );
85
+ } else {
86
+ HammerNodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);
87
+ }
88
+ },
89
+ getGestureHandlerNode(handlerTag: number) {
90
+ if (isNewWebImplementationEnabled()) {
91
+ return NodeManager.getHandler(handlerTag);
92
+ } else {
93
+ return HammerNodeManager.getHandler(handlerTag);
94
+ }
95
+ },
96
+ dropGestureHandler(handlerTag: number) {
97
+ if (isNewWebImplementationEnabled()) {
98
+ NodeManager.dropGestureHandler(handlerTag);
99
+ } else {
100
+ HammerNodeManager.dropGestureHandler(handlerTag);
101
+ }
102
+ },
103
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
104
+ flushOperations() {},
105
+ };
@@ -0,0 +1,3 @@
1
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
+ // @ts-nocheck
3
+ export { default as RNRenderer } from 'react-native/Libraries/Renderer/shims/ReactNative';
package/src/RNRenderer.ts CHANGED
@@ -1,3 +1,3 @@
1
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
- // @ts-nocheck
3
- export { default as RNRenderer } from 'react-native/Libraries/Renderer/shims/ReactNative';
1
+ export const RNRenderer = {
2
+ findHostInstance_DEPRECATED: (_ref: any) => null,
3
+ };
@@ -0,0 +1,148 @@
1
+ import * as React from 'react';
2
+ import {
3
+ PropsWithChildren,
4
+ ForwardedRef,
5
+ RefAttributes,
6
+ ReactElement,
7
+ } from 'react';
8
+ import {
9
+ ScrollView as RNScrollView,
10
+ ScrollViewProps as RNScrollViewProps,
11
+ Switch as RNSwitch,
12
+ SwitchProps as RNSwitchProps,
13
+ TextInput as RNTextInput,
14
+ TextInputProps as RNTextInputProps,
15
+ DrawerLayoutAndroid as RNDrawerLayoutAndroid,
16
+ DrawerLayoutAndroidProps as RNDrawerLayoutAndroidProps,
17
+ FlatList as RNFlatList,
18
+ FlatListProps as RNFlatListProps,
19
+ RefreshControl as RNRefreshControl,
20
+ } from 'react-native';
21
+
22
+ import createNativeWrapper from '../handlers/createNativeWrapper';
23
+
24
+ import {
25
+ NativeViewGestureHandlerProps,
26
+ nativeViewProps,
27
+ } from '../handlers/NativeViewGestureHandler';
28
+
29
+ import { toArray } from '../utils';
30
+
31
+ export const RefreshControl = createNativeWrapper(RNRefreshControl, {
32
+ disallowInterruption: true,
33
+ shouldCancelWhenOutside: false,
34
+ });
35
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
36
+ export type RefreshControl = typeof RefreshControl & RNRefreshControl;
37
+
38
+ const GHScrollView = createNativeWrapper<PropsWithChildren<RNScrollViewProps>>(
39
+ RNScrollView,
40
+ {
41
+ disallowInterruption: true,
42
+ shouldCancelWhenOutside: false,
43
+ }
44
+ );
45
+ export const ScrollView = React.forwardRef<
46
+ RNScrollView,
47
+ RNScrollViewProps & NativeViewGestureHandlerProps
48
+ >((props, ref) => {
49
+ const refreshControlGestureRef = React.useRef<RefreshControl>(null);
50
+ const { refreshControl, waitFor, ...rest } = props;
51
+
52
+ return (
53
+ <GHScrollView
54
+ {...rest}
55
+ // @ts-ignore `ref` exists on `GHScrollView`
56
+ ref={ref}
57
+ waitFor={[...toArray(waitFor ?? []), refreshControlGestureRef]}
58
+ // @ts-ignore we don't pass `refreshing` prop as we only want to override the ref
59
+ refreshControl={
60
+ refreshControl
61
+ ? React.cloneElement(refreshControl, {
62
+ // @ts-ignore for reasons unknown to me, `ref` doesn't exist on the type inferred by TS
63
+ ref: refreshControlGestureRef,
64
+ })
65
+ : undefined
66
+ }
67
+ />
68
+ );
69
+ });
70
+ // backward type compatibility with https://github.com/software-mansion/react-native-gesture-handler/blob/db78d3ca7d48e8ba57482d3fe9b0a15aa79d9932/react-native-gesture-handler.d.ts#L440-L457
71
+ // include methods of wrapped components by creating an intersection type with the RN component instead of duplicating them.
72
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
73
+ export type ScrollView = typeof GHScrollView & RNScrollView;
74
+
75
+ export const Switch = createNativeWrapper<RNSwitchProps>(RNSwitch, {
76
+ shouldCancelWhenOutside: false,
77
+ shouldActivateOnStart: true,
78
+ disallowInterruption: true,
79
+ });
80
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
81
+ export type Switch = typeof Switch & RNSwitch;
82
+
83
+ export const TextInput = createNativeWrapper<RNTextInputProps>(RNTextInput);
84
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
85
+ export type TextInput = typeof TextInput & RNTextInput;
86
+
87
+ export const DrawerLayoutAndroid = createNativeWrapper<
88
+ PropsWithChildren<RNDrawerLayoutAndroidProps>
89
+ >(RNDrawerLayoutAndroid, { disallowInterruption: true });
90
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
91
+ export type DrawerLayoutAndroid = typeof DrawerLayoutAndroid &
92
+ RNDrawerLayoutAndroid;
93
+
94
+ export const FlatList = React.forwardRef((props, ref) => {
95
+ const refreshControlGestureRef = React.useRef<RefreshControl>(null);
96
+
97
+ const { waitFor, refreshControl, ...rest } = props;
98
+
99
+ const flatListProps = {};
100
+ const scrollViewProps = {};
101
+ for (const [propName, value] of Object.entries(rest)) {
102
+ // https://github.com/microsoft/TypeScript/issues/26255
103
+ if ((nativeViewProps as readonly string[]).includes(propName)) {
104
+ // @ts-ignore - this function cannot have generic type so we have to ignore this error
105
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
106
+ scrollViewProps[propName] = value;
107
+ } else {
108
+ // @ts-ignore - this function cannot have generic type so we have to ignore this error
109
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
110
+ flatListProps[propName] = value;
111
+ }
112
+ }
113
+
114
+ return (
115
+ // @ts-ignore - this function cannot have generic type so we have to ignore this error
116
+ <RNFlatList
117
+ ref={ref}
118
+ {...flatListProps}
119
+ renderScrollComponent={(scrollProps) => (
120
+ <ScrollView
121
+ {...{
122
+ ...scrollProps,
123
+ ...scrollViewProps,
124
+ waitFor: [...toArray(waitFor ?? []), refreshControlGestureRef],
125
+ }}
126
+ />
127
+ )}
128
+ // @ts-ignore we don't pass `refreshing` prop as we only want to override the ref
129
+ refreshControl={
130
+ refreshControl
131
+ ? React.cloneElement(refreshControl, {
132
+ // @ts-ignore for reasons unknown to me, `ref` doesn't exist on the type inferred by TS
133
+ ref: refreshControlGestureRef,
134
+ })
135
+ : undefined
136
+ }
137
+ />
138
+ );
139
+ }) as <ItemT = any>(
140
+ props: PropsWithChildren<
141
+ RNFlatListProps<ItemT> &
142
+ RefAttributes<FlatList<ItemT>> &
143
+ NativeViewGestureHandlerProps
144
+ >,
145
+ ref: ForwardedRef<FlatList<ItemT>>
146
+ ) => ReactElement | null;
147
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
148
+ export type FlatList<ItemT = any> = typeof FlatList & RNFlatList<ItemT>;
@@ -1,148 +1,41 @@
1
1
  import * as React from 'react';
2
2
  import {
3
- PropsWithChildren,
4
- ForwardedRef,
5
- RefAttributes,
6
- ReactElement,
7
- } from 'react';
8
- import {
9
- ScrollView as RNScrollView,
10
- ScrollViewProps as RNScrollViewProps,
3
+ FlatList as RNFlatList,
11
4
  Switch as RNSwitch,
12
- SwitchProps as RNSwitchProps,
13
5
  TextInput as RNTextInput,
14
- TextInputProps as RNTextInputProps,
15
- DrawerLayoutAndroid as RNDrawerLayoutAndroid,
16
- DrawerLayoutAndroidProps as RNDrawerLayoutAndroidProps,
17
- FlatList as RNFlatList,
18
- FlatListProps as RNFlatListProps,
19
- RefreshControl as RNRefreshControl,
6
+ ScrollView as RNScrollView,
7
+ FlatListProps,
8
+ View,
20
9
  } from 'react-native';
21
10
 
22
11
  import createNativeWrapper from '../handlers/createNativeWrapper';
23
12
 
24
- import {
25
- NativeViewGestureHandlerProps,
26
- nativeViewProps,
27
- } from '../handlers/NativeViewGestureHandler';
28
-
29
- import { toArray } from '../utils';
30
-
31
- export const RefreshControl = createNativeWrapper(RNRefreshControl, {
32
- disallowInterruption: true,
33
- shouldCancelWhenOutside: false,
13
+ export const ScrollView = createNativeWrapper(RNScrollView, {
14
+ disallowInterruption: false,
34
15
  });
35
- // eslint-disable-next-line @typescript-eslint/no-redeclare
36
- export type RefreshControl = typeof RefreshControl & RNRefreshControl;
37
-
38
- const GHScrollView = createNativeWrapper<PropsWithChildren<RNScrollViewProps>>(
39
- RNScrollView,
40
- {
41
- disallowInterruption: true,
42
- shouldCancelWhenOutside: false,
43
- }
44
- );
45
- export const ScrollView = React.forwardRef<
46
- RNScrollView,
47
- RNScrollViewProps & NativeViewGestureHandlerProps
48
- >((props, ref) => {
49
- const refreshControlGestureRef = React.useRef<RefreshControl>(null);
50
- const { refreshControl, waitFor, ...rest } = props;
51
16
 
52
- return (
53
- <GHScrollView
54
- {...rest}
55
- // @ts-ignore `ref` exists on `GHScrollView`
56
- ref={ref}
57
- waitFor={[...toArray(waitFor ?? []), refreshControlGestureRef]}
58
- // @ts-ignore we don't pass `refreshing` prop as we only want to override the ref
59
- refreshControl={
60
- refreshControl
61
- ? React.cloneElement(refreshControl, {
62
- // @ts-ignore for reasons unknown to me, `ref` doesn't exist on the type inferred by TS
63
- ref: refreshControlGestureRef,
64
- })
65
- : undefined
66
- }
67
- />
68
- );
69
- });
70
- // backward type compatibility with https://github.com/software-mansion/react-native-gesture-handler/blob/db78d3ca7d48e8ba57482d3fe9b0a15aa79d9932/react-native-gesture-handler.d.ts#L440-L457
71
- // include methods of wrapped components by creating an intersection type with the RN component instead of duplicating them.
72
- // eslint-disable-next-line @typescript-eslint/no-redeclare
73
- export type ScrollView = typeof GHScrollView & RNScrollView;
74
-
75
- export const Switch = createNativeWrapper<RNSwitchProps>(RNSwitch, {
17
+ export const Switch = createNativeWrapper(RNSwitch, {
76
18
  shouldCancelWhenOutside: false,
77
19
  shouldActivateOnStart: true,
78
20
  disallowInterruption: true,
79
21
  });
80
- // eslint-disable-next-line @typescript-eslint/no-redeclare
81
- export type Switch = typeof Switch & RNSwitch;
82
-
83
- export const TextInput = createNativeWrapper<RNTextInputProps>(RNTextInput);
84
- // eslint-disable-next-line @typescript-eslint/no-redeclare
85
- export type TextInput = typeof TextInput & RNTextInput;
86
-
87
- export const DrawerLayoutAndroid = createNativeWrapper<
88
- PropsWithChildren<RNDrawerLayoutAndroidProps>
89
- >(RNDrawerLayoutAndroid, { disallowInterruption: true });
90
- // eslint-disable-next-line @typescript-eslint/no-redeclare
91
- export type DrawerLayoutAndroid = typeof DrawerLayoutAndroid &
92
- RNDrawerLayoutAndroid;
93
-
94
- export const FlatList = React.forwardRef((props, ref) => {
95
- const refreshControlGestureRef = React.useRef<RefreshControl>(null);
96
-
97
- const { waitFor, refreshControl, ...rest } = props;
98
-
99
- const flatListProps = {};
100
- const scrollViewProps = {};
101
- for (const [propName, value] of Object.entries(rest)) {
102
- // https://github.com/microsoft/TypeScript/issues/26255
103
- if ((nativeViewProps as readonly string[]).includes(propName)) {
104
- // @ts-ignore - this function cannot have generic type so we have to ignore this error
105
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
106
- scrollViewProps[propName] = value;
107
- } else {
108
- // @ts-ignore - this function cannot have generic type so we have to ignore this error
109
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
110
- flatListProps[propName] = value;
111
- }
112
- }
113
-
114
- return (
115
- // @ts-ignore - this function cannot have generic type so we have to ignore this error
22
+ export const TextInput = createNativeWrapper(RNTextInput);
23
+ export const DrawerLayoutAndroid = () => {
24
+ console.warn('DrawerLayoutAndroid is not supported on web!');
25
+ return <View />;
26
+ };
27
+
28
+ // RefreshControl is implemented as a functional component, rendering a View
29
+ // NativeViewGestureHandler needs to set a ref on its child, which cannot be done
30
+ // on functional components
31
+ export const RefreshControl = createNativeWrapper(View);
32
+
33
+ export const FlatList = React.forwardRef(
34
+ <ItemT extends any>(props: FlatListProps<ItemT>, ref: any) => (
116
35
  <RNFlatList
117
36
  ref={ref}
118
- {...flatListProps}
119
- renderScrollComponent={(scrollProps) => (
120
- <ScrollView
121
- {...{
122
- ...scrollProps,
123
- ...scrollViewProps,
124
- waitFor: [...toArray(waitFor ?? []), refreshControlGestureRef],
125
- }}
126
- />
127
- )}
128
- // @ts-ignore we don't pass `refreshing` prop as we only want to override the ref
129
- refreshControl={
130
- refreshControl
131
- ? React.cloneElement(refreshControl, {
132
- // @ts-ignore for reasons unknown to me, `ref` doesn't exist on the type inferred by TS
133
- ref: refreshControlGestureRef,
134
- })
135
- : undefined
136
- }
37
+ {...props}
38
+ renderScrollComponent={(scrollProps) => <ScrollView {...scrollProps} />}
137
39
  />
138
- );
139
- }) as <ItemT = any>(
140
- props: PropsWithChildren<
141
- RNFlatListProps<ItemT> &
142
- RefAttributes<FlatList<ItemT>> &
143
- NativeViewGestureHandlerProps
144
- >,
145
- ref: ForwardedRef<FlatList<ItemT>>
146
- ) => ReactElement | null;
147
- // eslint-disable-next-line @typescript-eslint/no-redeclare
148
- export type FlatList<ItemT = any> = typeof FlatList & RNFlatList<ItemT>;
40
+ )
41
+ );
@@ -0,0 +1,5 @@
1
+ import { HostComponent } from 'react-native';
2
+ import { RawButtonProps } from './GestureButtons';
3
+ import RNGestureHandlerButtonNativeComponent from '../specs/RNGestureHandlerButtonNativeComponent';
4
+
5
+ export default RNGestureHandlerButtonNativeComponent as HostComponent<RawButtonProps>;
@@ -1,5 +1,6 @@
1
- import { HostComponent } from 'react-native';
2
- import { RawButtonProps } from './GestureButtons';
3
- import RNGestureHandlerButtonNativeComponent from '../specs/RNGestureHandlerButtonNativeComponent';
1
+ import * as React from 'react';
2
+ import { View } from 'react-native';
4
3
 
5
- export default RNGestureHandlerButtonNativeComponent as HostComponent<RawButtonProps>;
4
+ export default React.forwardRef<View>((props, ref) => (
5
+ <View ref={ref} accessibilityRole="button" {...props} />
6
+ ));