@amazon-devices/react-native-gesture-handler 4.0.0 → 4.0.2

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 (516) hide show
  1. package/SystemModules/amzn__react-native-gesture-handler-4.modules.txt +3 -0
  2. package/SystemModules/amzn__react-native-gesture-handler-4.private.modules.txt +81 -35
  3. package/kepler-compatibility.json +3 -1
  4. package/lib/commonjs/RNGestureHandlerModule.kepler.js.map +1 -1
  5. package/lib/commonjs/index.js +0 -268
  6. package/lib/module/RNGestureHandlerModule.kepler.js.map +1 -1
  7. package/lib/typescript/RNGestureHandlerModule.kepler.d.ts.map +1 -1
  8. package/oss-attribution/attribution.txt +0 -0
  9. package/oss-attribution/licenseInfos.json +1 -0
  10. package/package.json +1 -1
  11. package/src/index.ts +0 -168
  12. package/README.md +0 -70
  13. package/SystemBundles/6340ec90c9b9f38941444b2ca176a58b9d8116a6cd975690f53747ed00595c90.bundle +0 -14669
  14. package/SystemBundles/6340ec90c9b9f38941444b2ca176a58b9d8116a6cd975690f53747ed00595c90.map +0 -5041
  15. package/lib/commonjs/ActionType.js +0 -15
  16. package/lib/commonjs/Directions.js +0 -31
  17. package/lib/commonjs/EnableNewWebImplementation.js +0 -40
  18. package/lib/commonjs/GestureHandlerRootViewContext.js +0 -10
  19. package/lib/commonjs/PlatformConstants.js +0 -9
  20. package/lib/commonjs/PlatformConstants.kepler.js +0 -12
  21. package/lib/commonjs/PlatformConstants.web.js +0 -12
  22. package/lib/commonjs/PointerType.js +0 -15
  23. package/lib/commonjs/RNGestureHandlerModule.js +0 -12
  24. package/lib/commonjs/RNGestureHandlerModule.kepler.js +0 -32
  25. package/lib/commonjs/RNGestureHandlerModule.web.js +0 -95
  26. package/lib/commonjs/RNGestureHandlerModule.windows.js +0 -56
  27. package/lib/commonjs/RNRenderer.js +0 -14
  28. package/lib/commonjs/RNRenderer.web.js +0 -10
  29. package/lib/commonjs/State.js +0 -19
  30. package/lib/commonjs/TouchEventType.js +0 -16
  31. package/lib/commonjs/components/DrawerLayout.js +0 -548
  32. package/lib/commonjs/components/GestureButtons.js +0 -212
  33. package/lib/commonjs/components/GestureButtonsProps.js +0 -6
  34. package/lib/commonjs/components/GestureComponents.js +0 -106
  35. package/lib/commonjs/components/GestureComponents.web.js +0 -39
  36. package/lib/commonjs/components/GestureHandlerButton.js +0 -10
  37. package/lib/commonjs/components/GestureHandlerButton.web.js +0 -16
  38. package/lib/commonjs/components/GestureHandlerRootView.android.js +0 -36
  39. package/lib/commonjs/components/GestureHandlerRootView.js +0 -35
  40. package/lib/commonjs/components/GestureHandlerRootView.kepler.js +0 -21
  41. package/lib/commonjs/components/GestureHandlerRootView.web.js +0 -30
  42. package/lib/commonjs/components/Pressable/Pressable.js +0 -274
  43. package/lib/commonjs/components/Pressable/PressableProps.js +0 -6
  44. package/lib/commonjs/components/Pressable/StateMachine.js +0 -44
  45. package/lib/commonjs/components/Pressable/index.js +0 -14
  46. package/lib/commonjs/components/Pressable/stateDefinitions.js +0 -88
  47. package/lib/commonjs/components/Pressable/utils.js +0 -92
  48. package/lib/commonjs/components/ReanimatedDrawerLayout.js +0 -357
  49. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeable.js +0 -337
  50. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +0 -12
  51. package/lib/commonjs/components/ReanimatedSwipeable/index.js +0 -21
  52. package/lib/commonjs/components/Swipeable.js +0 -370
  53. package/lib/commonjs/components/Text.js +0 -60
  54. package/lib/commonjs/components/gestureHandlerRootHOC.js +0 -37
  55. package/lib/commonjs/components/touchables/ExtraButtonProps.js +0 -2
  56. package/lib/commonjs/components/touchables/GenericTouchable.js +0 -245
  57. package/lib/commonjs/components/touchables/GenericTouchableProps.js +0 -6
  58. package/lib/commonjs/components/touchables/TouchableHighlight.js +0 -93
  59. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +0 -84
  60. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +0 -13
  61. package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js +0 -6
  62. package/lib/commonjs/components/touchables/TouchableOpacity.js +0 -65
  63. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +0 -33
  64. package/lib/commonjs/components/touchables/index.js +0 -35
  65. package/lib/commonjs/components/utils.js +0 -17
  66. package/lib/commonjs/findNodeHandle.js +0 -9
  67. package/lib/commonjs/findNodeHandle.web.js +0 -39
  68. package/lib/commonjs/getShadowNodeFromRef.js +0 -51
  69. package/lib/commonjs/getShadowNodeFromRef.web.js +0 -14
  70. package/lib/commonjs/ghQueueMicrotask.js +0 -10
  71. package/lib/commonjs/handlers/FlingGestureHandler.js +0 -31
  72. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +0 -46
  73. package/lib/commonjs/handlers/GestureHandlerEventPayload.js +0 -6
  74. package/lib/commonjs/handlers/LongPressGestureHandler.js +0 -33
  75. package/lib/commonjs/handlers/NativeViewGestureHandler.js +0 -32
  76. package/lib/commonjs/handlers/PanGestureHandler.js +0 -112
  77. package/lib/commonjs/handlers/PinchGestureHandler.js +0 -29
  78. package/lib/commonjs/handlers/PressabilityDebugView.js +0 -13
  79. package/lib/commonjs/handlers/PressabilityDebugView.web.js +0 -11
  80. package/lib/commonjs/handlers/RotationGestureHandler.js +0 -29
  81. package/lib/commonjs/handlers/TapGestureHandler.js +0 -33
  82. package/lib/commonjs/handlers/createHandler.js +0 -405
  83. package/lib/commonjs/handlers/createNativeWrapper.js +0 -77
  84. package/lib/commonjs/handlers/customDirectEventTypes.js +0 -13
  85. package/lib/commonjs/handlers/customDirectEventTypes.web.js +0 -10
  86. package/lib/commonjs/handlers/gestureHandlerCommon.js +0 -27
  87. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +0 -6
  88. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js +0 -32
  89. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js +0 -41
  90. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +0 -67
  91. package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js +0 -20
  92. package/lib/commonjs/handlers/gestures/GestureDetector/index.js +0 -125
  93. package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js +0 -22
  94. package/lib/commonjs/handlers/gestures/GestureDetector/types.js +0 -6
  95. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +0 -66
  96. package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -143
  97. package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -47
  98. package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +0 -41
  99. package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -45
  100. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +0 -143
  101. package/lib/commonjs/handlers/gestures/eventReceiver.js +0 -117
  102. package/lib/commonjs/handlers/gestures/flingGesture.js +0 -37
  103. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +0 -80
  104. package/lib/commonjs/handlers/gestures/gesture.js +0 -338
  105. package/lib/commonjs/handlers/gestures/gestureComposition.js +0 -90
  106. package/lib/commonjs/handlers/gestures/gestureObjects.js +0 -132
  107. package/lib/commonjs/handlers/gestures/gestureStateManager.js +0 -70
  108. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +0 -28
  109. package/lib/commonjs/handlers/gestures/hoverGesture.js +0 -57
  110. package/lib/commonjs/handlers/gestures/longPressGesture.js +0 -46
  111. package/lib/commonjs/handlers/gestures/manualGesture.js +0 -25
  112. package/lib/commonjs/handlers/gestures/nativeGesture.js +0 -34
  113. package/lib/commonjs/handlers/gestures/panGesture.js +0 -197
  114. package/lib/commonjs/handlers/gestures/pinchGesture.js +0 -38
  115. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +0 -29
  116. package/lib/commonjs/handlers/gestures/rotationGesture.js +0 -38
  117. package/lib/commonjs/handlers/gestures/tapGesture.js +0 -87
  118. package/lib/commonjs/handlers/getNextHandlerTag.js +0 -11
  119. package/lib/commonjs/handlers/handlersRegistry.js +0 -50
  120. package/lib/commonjs/handlers/utils.js +0 -69
  121. package/lib/commonjs/init.js +0 -25
  122. package/lib/commonjs/jestUtils/index.js +0 -19
  123. package/lib/commonjs/jestUtils/jestUtils.js +0 -316
  124. package/lib/commonjs/mocks/Pressable.js +0 -13
  125. package/lib/commonjs/mocks/mocks.js +0 -70
  126. package/lib/commonjs/mocks.js +0 -61
  127. package/lib/commonjs/mountRegistry.js +0 -37
  128. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +0 -9
  129. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.kepler.js +0 -20
  130. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  131. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.kepler.js +0 -17
  132. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  133. package/lib/commonjs/typeUtils.js +0 -2
  134. package/lib/commonjs/utils.js +0 -95
  135. package/lib/commonjs/web/Gestures.js +0 -48
  136. package/lib/commonjs/web/constants.js +0 -9
  137. package/lib/commonjs/web/detectors/RotationGestureDetector.js +0 -124
  138. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +0 -111
  139. package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -143
  140. package/lib/commonjs/web/handlers/GestureHandler.js +0 -689
  141. package/lib/commonjs/web/handlers/HoverGestureHandler.js +0 -45
  142. package/lib/commonjs/web/handlers/IGestureHandler.js +0 -2
  143. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -146
  144. package/lib/commonjs/web/handlers/ManualGestureHandler.js +0 -38
  145. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -141
  146. package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -399
  147. package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -122
  148. package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -129
  149. package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -215
  150. package/lib/commonjs/web/interfaces.js +0 -32
  151. package/lib/commonjs/web/tools/CircularBuffer.js +0 -40
  152. package/lib/commonjs/web/tools/EventManager.js +0 -94
  153. package/lib/commonjs/web/tools/GestureHandlerDelegate.js +0 -6
  154. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +0 -267
  155. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +0 -165
  156. package/lib/commonjs/web/tools/InteractionManager.js +0 -96
  157. package/lib/commonjs/web/tools/KeyboardEventManager.js +0 -108
  158. package/lib/commonjs/web/tools/LeastSquareSolver.js +0 -159
  159. package/lib/commonjs/web/tools/NodeManager.js +0 -39
  160. package/lib/commonjs/web/tools/PointerEventManager.js +0 -189
  161. package/lib/commonjs/web/tools/PointerTracker.js +0 -192
  162. package/lib/commonjs/web/tools/Vector.js +0 -37
  163. package/lib/commonjs/web/tools/VelocityTracker.js +0 -85
  164. package/lib/commonjs/web/tools/WheelEventManager.js +0 -55
  165. package/lib/commonjs/web/utils.js +0 -235
  166. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +0 -93
  167. package/lib/commonjs/web_hammer/DraggingGestureHandler.js +0 -43
  168. package/lib/commonjs/web_hammer/Errors.js +0 -13
  169. package/lib/commonjs/web_hammer/FlingGestureHandler.js +0 -139
  170. package/lib/commonjs/web_hammer/GestureHandler.js +0 -484
  171. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +0 -45
  172. package/lib/commonjs/web_hammer/LongPressGestureHandler.js +0 -57
  173. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +0 -57
  174. package/lib/commonjs/web_hammer/NodeManager.js +0 -41
  175. package/lib/commonjs/web_hammer/PanGestureHandler.js +0 -167
  176. package/lib/commonjs/web_hammer/PinchGestureHandler.js +0 -31
  177. package/lib/commonjs/web_hammer/PressGestureHandler.js +0 -153
  178. package/lib/commonjs/web_hammer/RotationGestureHandler.js +0 -32
  179. package/lib/commonjs/web_hammer/TapGestureHandler.js +0 -165
  180. package/lib/commonjs/web_hammer/constants.js +0 -51
  181. package/lib/commonjs/web_hammer/utils.js +0 -32
  182. package/lib/module/ActionType.js +0 -11
  183. package/lib/module/Directions.js +0 -27
  184. package/lib/module/EnableNewWebImplementation.js +0 -34
  185. package/lib/module/GestureHandlerRootViewContext.js +0 -5
  186. package/lib/module/PlatformConstants.js +0 -5
  187. package/lib/module/PlatformConstants.kepler.js +0 -8
  188. package/lib/module/PlatformConstants.web.js +0 -8
  189. package/lib/module/PointerType.js +0 -11
  190. package/lib/module/RNGestureHandlerModule.js +0 -8
  191. package/lib/module/RNGestureHandlerModule.kepler.js +0 -26
  192. package/lib/module/RNGestureHandlerModule.web.js +0 -90
  193. package/lib/module/RNGestureHandlerModule.windows.js +0 -50
  194. package/lib/module/RNRenderer.js +0 -6
  195. package/lib/module/RNRenderer.web.js +0 -6
  196. package/lib/module/State.js +0 -15
  197. package/lib/module/TouchEventType.js +0 -12
  198. package/lib/module/components/DrawerLayout.js +0 -541
  199. package/lib/module/components/GestureButtons.js +0 -200
  200. package/lib/module/components/GestureButtonsProps.js +0 -4
  201. package/lib/module/components/GestureComponents.js +0 -100
  202. package/lib/module/components/GestureComponents.web.js +0 -32
  203. package/lib/module/components/GestureHandlerButton.js +0 -5
  204. package/lib/module/components/GestureHandlerButton.web.js +0 -11
  205. package/lib/module/components/GestureHandlerRootView.android.js +0 -30
  206. package/lib/module/components/GestureHandlerRootView.js +0 -29
  207. package/lib/module/components/GestureHandlerRootView.kepler.js +0 -15
  208. package/lib/module/components/GestureHandlerRootView.web.js +0 -24
  209. package/lib/module/components/Pressable/Pressable.js +0 -268
  210. package/lib/module/components/Pressable/PressableProps.js +0 -4
  211. package/lib/module/components/Pressable/StateMachine.js +0 -40
  212. package/lib/module/components/Pressable/index.js +0 -4
  213. package/lib/module/components/Pressable/stateDefinitions.js +0 -83
  214. package/lib/module/components/Pressable/utils.js +0 -84
  215. package/lib/module/components/ReanimatedDrawerLayout.js +0 -352
  216. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js +0 -332
  217. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +0 -8
  218. package/lib/module/components/ReanimatedSwipeable/index.js +0 -5
  219. package/lib/module/components/Swipeable.js +0 -364
  220. package/lib/module/components/Text.js +0 -55
  221. package/lib/module/components/gestureHandlerRootHOC.js +0 -33
  222. package/lib/module/components/touchables/ExtraButtonProps.js +0 -2
  223. package/lib/module/components/touchables/GenericTouchable.js +0 -239
  224. package/lib/module/components/touchables/GenericTouchableProps.js +0 -4
  225. package/lib/module/components/touchables/TouchableHighlight.js +0 -87
  226. package/lib/module/components/touchables/TouchableNativeFeedback.android.js +0 -77
  227. package/lib/module/components/touchables/TouchableNativeFeedback.js +0 -10
  228. package/lib/module/components/touchables/TouchableNativeFeedbackProps.js +0 -4
  229. package/lib/module/components/touchables/TouchableOpacity.js +0 -59
  230. package/lib/module/components/touchables/TouchableWithoutFeedback.js +0 -27
  231. package/lib/module/components/touchables/index.js +0 -7
  232. package/lib/module/components/utils.js +0 -13
  233. package/lib/module/findNodeHandle.js +0 -5
  234. package/lib/module/findNodeHandle.web.js +0 -35
  235. package/lib/module/getShadowNodeFromRef.js +0 -47
  236. package/lib/module/getShadowNodeFromRef.web.js +0 -10
  237. package/lib/module/ghQueueMicrotask.js +0 -6
  238. package/lib/module/handlers/FlingGestureHandler.js +0 -26
  239. package/lib/module/handlers/ForceTouchGestureHandler.js +0 -41
  240. package/lib/module/handlers/GestureHandlerEventPayload.js +0 -4
  241. package/lib/module/handlers/LongPressGestureHandler.js +0 -28
  242. package/lib/module/handlers/NativeViewGestureHandler.js +0 -27
  243. package/lib/module/handlers/PanGestureHandler.js +0 -105
  244. package/lib/module/handlers/PinchGestureHandler.js +0 -25
  245. package/lib/module/handlers/PressabilityDebugView.js +0 -5
  246. package/lib/module/handlers/PressabilityDebugView.web.js +0 -7
  247. package/lib/module/handlers/RotationGestureHandler.js +0 -25
  248. package/lib/module/handlers/TapGestureHandler.js +0 -28
  249. package/lib/module/handlers/createHandler.js +0 -399
  250. package/lib/module/handlers/createNativeWrapper.js +0 -74
  251. package/lib/module/handlers/customDirectEventTypes.js +0 -5
  252. package/lib/module/handlers/customDirectEventTypes.web.js +0 -7
  253. package/lib/module/handlers/gestureHandlerCommon.js +0 -26
  254. package/lib/module/handlers/gestureHandlerTypesCompat.js +0 -4
  255. package/lib/module/handlers/gestures/GestureDetector/Wrap.js +0 -26
  256. package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js +0 -36
  257. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +0 -62
  258. package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js +0 -15
  259. package/lib/module/handlers/gestures/GestureDetector/index.js +0 -117
  260. package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js +0 -18
  261. package/lib/module/handlers/gestures/GestureDetector/types.js +0 -4
  262. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +0 -61
  263. package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -139
  264. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -43
  265. package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js +0 -37
  266. package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -40
  267. package/lib/module/handlers/gestures/GestureDetector/utils.js +0 -134
  268. package/lib/module/handlers/gestures/eventReceiver.js +0 -110
  269. package/lib/module/handlers/gestures/flingGesture.js +0 -32
  270. package/lib/module/handlers/gestures/forceTouchGesture.js +0 -76
  271. package/lib/module/handlers/gestures/gesture.js +0 -332
  272. package/lib/module/handlers/gestures/gestureComposition.js +0 -83
  273. package/lib/module/handlers/gestures/gestureObjects.js +0 -129
  274. package/lib/module/handlers/gestures/gestureStateManager.js +0 -66
  275. package/lib/module/handlers/gestures/gestureStateManager.web.js +0 -23
  276. package/lib/module/handlers/gestures/hoverGesture.js +0 -52
  277. package/lib/module/handlers/gestures/longPressGesture.js +0 -41
  278. package/lib/module/handlers/gestures/manualGesture.js +0 -20
  279. package/lib/module/handlers/gestures/nativeGesture.js +0 -29
  280. package/lib/module/handlers/gestures/panGesture.js +0 -192
  281. package/lib/module/handlers/gestures/pinchGesture.js +0 -33
  282. package/lib/module/handlers/gestures/reanimatedWrapper.js +0 -26
  283. package/lib/module/handlers/gestures/rotationGesture.js +0 -33
  284. package/lib/module/handlers/gestures/tapGesture.js +0 -82
  285. package/lib/module/handlers/getNextHandlerTag.js +0 -7
  286. package/lib/module/handlers/handlersRegistry.js +0 -39
  287. package/lib/module/handlers/utils.js +0 -61
  288. package/lib/module/index.js +0 -31
  289. package/lib/module/init.js +0 -19
  290. package/lib/module/jestUtils/index.js +0 -4
  291. package/lib/module/jestUtils/jestUtils.js +0 -311
  292. package/lib/module/mocks/Pressable.js +0 -4
  293. package/lib/module/mocks/mocks.js +0 -64
  294. package/lib/module/mocks.js +0 -57
  295. package/lib/module/mountRegistry.js +0 -32
  296. package/lib/module/specs/NativeRNGestureHandlerModule.js +0 -5
  297. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.kepler.js +0 -14
  298. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  299. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.kepler.js +0 -11
  300. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  301. package/lib/module/typeUtils.js +0 -2
  302. package/lib/module/utils.js +0 -81
  303. package/lib/module/web/Gestures.js +0 -42
  304. package/lib/module/web/constants.js +0 -5
  305. package/lib/module/web/detectors/RotationGestureDetector.js +0 -119
  306. package/lib/module/web/detectors/ScaleGestureDetector.js +0 -106
  307. package/lib/module/web/handlers/FlingGestureHandler.js +0 -137
  308. package/lib/module/web/handlers/GestureHandler.js +0 -682
  309. package/lib/module/web/handlers/HoverGestureHandler.js +0 -39
  310. package/lib/module/web/handlers/IGestureHandler.js +0 -2
  311. package/lib/module/web/handlers/LongPressGestureHandler.js +0 -140
  312. package/lib/module/web/handlers/ManualGestureHandler.js +0 -32
  313. package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -135
  314. package/lib/module/web/handlers/PanGestureHandler.js +0 -393
  315. package/lib/module/web/handlers/PinchGestureHandler.js +0 -116
  316. package/lib/module/web/handlers/RotationGestureHandler.js +0 -123
  317. package/lib/module/web/handlers/TapGestureHandler.js +0 -209
  318. package/lib/module/web/interfaces.js +0 -28
  319. package/lib/module/web/tools/CircularBuffer.js +0 -35
  320. package/lib/module/web/tools/EventManager.js +0 -89
  321. package/lib/module/web/tools/GestureHandlerDelegate.js +0 -4
  322. package/lib/module/web/tools/GestureHandlerOrchestrator.js +0 -261
  323. package/lib/module/web/tools/GestureHandlerWebDelegate.js +0 -159
  324. package/lib/module/web/tools/InteractionManager.js +0 -91
  325. package/lib/module/web/tools/KeyboardEventManager.js +0 -102
  326. package/lib/module/web/tools/LeastSquareSolver.js +0 -154
  327. package/lib/module/web/tools/NodeManager.js +0 -34
  328. package/lib/module/web/tools/PointerEventManager.js +0 -183
  329. package/lib/module/web/tools/PointerTracker.js +0 -186
  330. package/lib/module/web/tools/Vector.js +0 -32
  331. package/lib/module/web/tools/VelocityTracker.js +0 -79
  332. package/lib/module/web/tools/WheelEventManager.js +0 -49
  333. package/lib/module/web/utils.js +0 -223
  334. package/lib/module/web_hammer/DiscreteGestureHandler.js +0 -87
  335. package/lib/module/web_hammer/DraggingGestureHandler.js +0 -37
  336. package/lib/module/web_hammer/Errors.js +0 -8
  337. package/lib/module/web_hammer/FlingGestureHandler.js +0 -133
  338. package/lib/module/web_hammer/GestureHandler.js +0 -478
  339. package/lib/module/web_hammer/IndiscreteGestureHandler.js +0 -41
  340. package/lib/module/web_hammer/LongPressGestureHandler.js +0 -51
  341. package/lib/module/web_hammer/NativeViewGestureHandler.js +0 -51
  342. package/lib/module/web_hammer/NodeManager.js +0 -33
  343. package/lib/module/web_hammer/PanGestureHandler.js +0 -162
  344. package/lib/module/web_hammer/PinchGestureHandler.js +0 -26
  345. package/lib/module/web_hammer/PressGestureHandler.js +0 -148
  346. package/lib/module/web_hammer/RotationGestureHandler.js +0 -27
  347. package/lib/module/web_hammer/TapGestureHandler.js +0 -160
  348. package/lib/module/web_hammer/constants.js +0 -46
  349. package/lib/module/web_hammer/utils.js +0 -21
  350. package/src/ActionType.ts +0 -9
  351. package/src/Directions.ts +0 -26
  352. package/src/EnableNewWebImplementation.ts +0 -53
  353. package/src/GestureHandlerRootViewContext.ts +0 -3
  354. package/src/PlatformConstants.kepler.ts +0 -5
  355. package/src/PlatformConstants.ts +0 -8
  356. package/src/PlatformConstants.web.ts +0 -5
  357. package/src/PointerType.ts +0 -7
  358. package/src/RNGestureHandlerModule.kepler.ts +0 -64
  359. package/src/RNGestureHandlerModule.ts +0 -5
  360. package/src/RNGestureHandlerModule.web.ts +0 -124
  361. package/src/RNGestureHandlerModule.windows.ts +0 -62
  362. package/src/RNRenderer.ts +0 -3
  363. package/src/RNRenderer.web.ts +0 -3
  364. package/src/State.ts +0 -13
  365. package/src/TouchEventType.ts +0 -11
  366. package/src/components/DrawerLayout.tsx +0 -788
  367. package/src/components/GestureButtons.tsx +0 -272
  368. package/src/components/GestureButtonsProps.ts +0 -156
  369. package/src/components/GestureComponents.tsx +0 -148
  370. package/src/components/GestureComponents.web.tsx +0 -41
  371. package/src/components/GestureHandlerButton.tsx +0 -5
  372. package/src/components/GestureHandlerButton.web.tsx +0 -6
  373. package/src/components/GestureHandlerRootView.android.tsx +0 -32
  374. package/src/components/GestureHandlerRootView.kepler.tsx +0 -18
  375. package/src/components/GestureHandlerRootView.tsx +0 -28
  376. package/src/components/GestureHandlerRootView.web.tsx +0 -22
  377. package/src/components/Pressable/Pressable.tsx +0 -401
  378. package/src/components/Pressable/PressableProps.tsx +0 -174
  379. package/src/components/Pressable/StateMachine.tsx +0 -57
  380. package/src/components/Pressable/index.ts +0 -5
  381. package/src/components/Pressable/stateDefinitions.ts +0 -126
  382. package/src/components/Pressable/utils.ts +0 -140
  383. package/src/components/ReanimatedDrawerLayout.tsx +0 -754
  384. package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +0 -607
  385. package/src/components/ReanimatedSwipeable/ReanimatedSwipeableProps.ts +0 -199
  386. package/src/components/ReanimatedSwipeable/index.ts +0 -6
  387. package/src/components/Swipeable.tsx +0 -595
  388. package/src/components/Text.tsx +0 -77
  389. package/src/components/gestureHandlerRootHOC.tsx +0 -33
  390. package/src/components/touchables/ExtraButtonProps.ts +0 -7
  391. package/src/components/touchables/GenericTouchable.tsx +0 -275
  392. package/src/components/touchables/GenericTouchableProps.ts +0 -28
  393. package/src/components/touchables/TouchableHighlight.tsx +0 -118
  394. package/src/components/touchables/TouchableNativeFeedback.android.tsx +0 -83
  395. package/src/components/touchables/TouchableNativeFeedback.tsx +0 -8
  396. package/src/components/touchables/TouchableNativeFeedbackProps.tsx +0 -10
  397. package/src/components/touchables/TouchableOpacity.tsx +0 -78
  398. package/src/components/touchables/TouchableWithoutFeedback.tsx +0 -39
  399. package/src/components/touchables/index.ts +0 -7
  400. package/src/components/utils.ts +0 -26
  401. package/src/findNodeHandle.ts +0 -3
  402. package/src/findNodeHandle.web.ts +0 -41
  403. package/src/getShadowNodeFromRef.ts +0 -50
  404. package/src/getShadowNodeFromRef.web.ts +0 -7
  405. package/src/ghQueueMicrotask.ts +0 -8
  406. package/src/handlers/FlingGestureHandler.ts +0 -64
  407. package/src/handlers/ForceTouchGestureHandler.ts +0 -88
  408. package/src/handlers/GestureHandlerEventPayload.ts +0 -229
  409. package/src/handlers/LongPressGestureHandler.ts +0 -65
  410. package/src/handlers/NativeViewGestureHandler.ts +0 -59
  411. package/src/handlers/PanGestureHandler.ts +0 -282
  412. package/src/handlers/PinchGestureHandler.ts +0 -32
  413. package/src/handlers/PressabilityDebugView.tsx +0 -2
  414. package/src/handlers/PressabilityDebugView.web.tsx +0 -4
  415. package/src/handlers/RotationGestureHandler.ts +0 -32
  416. package/src/handlers/TapGestureHandler.ts +0 -99
  417. package/src/handlers/createHandler.tsx +0 -586
  418. package/src/handlers/createNativeWrapper.tsx +0 -89
  419. package/src/handlers/customDirectEventTypes.ts +0 -2
  420. package/src/handlers/customDirectEventTypes.web.ts +0 -5
  421. package/src/handlers/gestureHandlerCommon.ts +0 -211
  422. package/src/handlers/gestureHandlerTypesCompat.ts +0 -101
  423. package/src/handlers/gestures/GestureDetector/Wrap.tsx +0 -35
  424. package/src/handlers/gestures/GestureDetector/Wrap.web.tsx +0 -42
  425. package/src/handlers/gestures/GestureDetector/attachHandlers.ts +0 -112
  426. package/src/handlers/gestures/GestureDetector/dropHandlers.ts +0 -17
  427. package/src/handlers/gestures/GestureDetector/index.tsx +0 -191
  428. package/src/handlers/gestures/GestureDetector/needsToReattach.ts +0 -27
  429. package/src/handlers/gestures/GestureDetector/types.ts +0 -32
  430. package/src/handlers/gestures/GestureDetector/updateHandlers.ts +0 -92
  431. package/src/handlers/gestures/GestureDetector/useAnimatedGesture.ts +0 -209
  432. package/src/handlers/gestures/GestureDetector/useDetectorUpdater.ts +0 -69
  433. package/src/handlers/gestures/GestureDetector/useMountReactions.ts +0 -51
  434. package/src/handlers/gestures/GestureDetector/useViewRefHandler.ts +0 -58
  435. package/src/handlers/gestures/GestureDetector/utils.ts +0 -181
  436. package/src/handlers/gestures/eventReceiver.ts +0 -173
  437. package/src/handlers/gestures/flingGesture.ts +0 -36
  438. package/src/handlers/gestures/forceTouchGesture.ts +0 -95
  439. package/src/handlers/gestures/gesture.ts +0 -472
  440. package/src/handlers/gestures/gestureComposition.ts +0 -124
  441. package/src/handlers/gestures/gestureObjects.ts +0 -143
  442. package/src/handlers/gestures/gestureStateManager.ts +0 -76
  443. package/src/handlers/gestures/gestureStateManager.web.ts +0 -26
  444. package/src/handlers/gestures/hoverGesture.ts +0 -77
  445. package/src/handlers/gestures/longPressGesture.ts +0 -45
  446. package/src/handlers/gestures/manualGesture.ts +0 -31
  447. package/src/handlers/gestures/nativeGesture.ts +0 -33
  448. package/src/handlers/gestures/panGesture.ts +0 -221
  449. package/src/handlers/gestures/pinchGesture.ts +0 -51
  450. package/src/handlers/gestures/reanimatedWrapper.ts +0 -57
  451. package/src/handlers/gestures/rotationGesture.ts +0 -51
  452. package/src/handlers/gestures/tapGesture.ts +0 -86
  453. package/src/handlers/getNextHandlerTag.ts +0 -5
  454. package/src/handlers/handlersRegistry.ts +0 -58
  455. package/src/handlers/utils.ts +0 -76
  456. package/src/init.ts +0 -18
  457. package/src/jestUtils/index.ts +0 -1
  458. package/src/jestUtils/jestUtils.ts +0 -513
  459. package/src/mocks/Pressable.tsx +0 -1
  460. package/src/mocks/mocks.tsx +0 -70
  461. package/src/mocks.ts +0 -67
  462. package/src/mountRegistry.ts +0 -51
  463. package/src/specs/NativeRNGestureHandlerModule.ts +0 -26
  464. package/src/specs/RNGestureHandlerButtonNativeComponent.kepler.ts +0 -27
  465. package/src/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  466. package/src/specs/RNGestureHandlerRootViewNativeComponent.kepler.ts +0 -21
  467. package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  468. package/src/typeUtils.ts +0 -1
  469. package/src/utils.ts +0 -107
  470. package/src/web/Gestures.ts +0 -41
  471. package/src/web/constants.ts +0 -2
  472. package/src/web/detectors/RotationGestureDetector.ts +0 -170
  473. package/src/web/detectors/ScaleGestureDetector.ts +0 -171
  474. package/src/web/handlers/FlingGestureHandler.ts +0 -196
  475. package/src/web/handlers/GestureHandler.ts +0 -881
  476. package/src/web/handlers/HoverGestureHandler.ts +0 -49
  477. package/src/web/handlers/IGestureHandler.ts +0 -49
  478. package/src/web/handlers/LongPressGestureHandler.ts +0 -175
  479. package/src/web/handlers/ManualGestureHandler.ts +0 -37
  480. package/src/web/handlers/NativeViewGestureHandler.ts +0 -175
  481. package/src/web/handlers/PanGestureHandler.ts +0 -571
  482. package/src/web/handlers/PinchGestureHandler.ts +0 -152
  483. package/src/web/handlers/RotationGestureHandler.ts +0 -166
  484. package/src/web/handlers/TapGestureHandler.ts +0 -274
  485. package/src/web/interfaces.ts +0 -190
  486. package/src/web/tools/CircularBuffer.ts +0 -42
  487. package/src/web/tools/EventManager.ts +0 -108
  488. package/src/web/tools/GestureHandlerDelegate.ts +0 -26
  489. package/src/web/tools/GestureHandlerOrchestrator.ts +0 -392
  490. package/src/web/tools/GestureHandlerWebDelegate.ts +0 -227
  491. package/src/web/tools/InteractionManager.ts +0 -135
  492. package/src/web/tools/KeyboardEventManager.ts +0 -133
  493. package/src/web/tools/LeastSquareSolver.ts +0 -182
  494. package/src/web/tools/NodeManager.ts +0 -48
  495. package/src/web/tools/PointerEventManager.ts +0 -226
  496. package/src/web/tools/PointerTracker.ts +0 -228
  497. package/src/web/tools/Vector.ts +0 -59
  498. package/src/web/tools/VelocityTracker.ts +0 -98
  499. package/src/web/tools/WheelEventManager.ts +0 -48
  500. package/src/web/utils.ts +0 -293
  501. package/src/web_hammer/DiscreteGestureHandler.ts +0 -82
  502. package/src/web_hammer/DraggingGestureHandler.ts +0 -34
  503. package/src/web_hammer/Errors.ts +0 -7
  504. package/src/web_hammer/FlingGestureHandler.ts +0 -134
  505. package/src/web_hammer/GestureHandler.ts +0 -600
  506. package/src/web_hammer/IndiscreteGestureHandler.ts +0 -33
  507. package/src/web_hammer/LongPressGestureHandler.ts +0 -56
  508. package/src/web_hammer/NativeViewGestureHandler.ts +0 -47
  509. package/src/web_hammer/NodeManager.ts +0 -33
  510. package/src/web_hammer/PanGestureHandler.ts +0 -226
  511. package/src/web_hammer/PinchGestureHandler.ts +0 -25
  512. package/src/web_hammer/PressGestureHandler.ts +0 -170
  513. package/src/web_hammer/RotationGestureHandler.ts +0 -25
  514. package/src/web_hammer/TapGestureHandler.ts +0 -172
  515. package/src/web_hammer/constants.ts +0 -48
  516. package/src/web_hammer/utils.ts +0 -24
@@ -1,191 +0,0 @@
1
- /* eslint-disable react/no-unused-prop-types */
2
- import React, {
3
- useContext,
4
- useEffect,
5
- useLayoutEffect,
6
- useMemo,
7
- useRef,
8
- } from 'react';
9
- import { Platform } from 'react-native';
10
- import findNodeHandle from '../../../findNodeHandle';
11
- import { GestureType } from '../gesture';
12
- import { UserSelect, TouchAction } from '../../gestureHandlerCommon';
13
- import { ComposedGesture } from '../gestureComposition';
14
- import { isTestEnv } from '../../../utils';
15
-
16
- import GestureHandlerRootViewContext from '../../../GestureHandlerRootViewContext';
17
- import { AttachedGestureState, GestureDetectorState } from './types';
18
- import { useAnimatedGesture } from './useAnimatedGesture';
19
- import { attachHandlers } from './attachHandlers';
20
- import { needsToReattach } from './needsToReattach';
21
- import { dropHandlers } from './dropHandlers';
22
- import { useWebEventHandlers } from './utils';
23
- import { Wrap, AnimatedWrap } from './Wrap';
24
- import { useDetectorUpdater } from './useDetectorUpdater';
25
- import { useViewRefHandler } from './useViewRefHandler';
26
- import { useMountReactions } from './useMountReactions';
27
-
28
- function propagateDetectorConfig(
29
- props: GestureDetectorProps,
30
- gesture: ComposedGesture | GestureType
31
- ) {
32
- const keysToPropagate: (keyof GestureDetectorProps)[] = [
33
- 'userSelect',
34
- 'enableContextMenu',
35
- 'touchAction',
36
- ];
37
-
38
- for (const key of keysToPropagate) {
39
- const value = props[key];
40
- if (value === undefined) {
41
- continue;
42
- }
43
-
44
- for (const g of gesture.toGestureArray()) {
45
- const config = g.config as { [key: string]: unknown };
46
- config[key] = value;
47
- }
48
- }
49
- }
50
-
51
- interface GestureDetectorProps {
52
- children?: React.ReactNode;
53
- /**
54
- * A gesture object containing the configuration and callbacks.
55
- * Can be any of:
56
- * - base gestures (`Tap`, `Pan`, ...)
57
- * - `ComposedGesture` (`Race`, `Simultaneous`, `Exclusive`)
58
- */
59
- gesture: ComposedGesture | GestureType;
60
- /**
61
- * #### Web only
62
- * This parameter allows to specify which `userSelect` property should be applied to underlying view.
63
- * Possible values are `"none" | "auto" | "text"`. Default value is set to `"none"`.
64
- */
65
- userSelect?: UserSelect;
66
- /**
67
- * #### Web only
68
- * Specifies whether context menu should be enabled after clicking on underlying view with right mouse button.
69
- * Default value is set to `false`.
70
- */
71
- enableContextMenu?: boolean;
72
- /**
73
- * #### Web only
74
- * This parameter allows to specify which `touchAction` property should be applied to underlying view.
75
- * Supports all CSS touch-action values (e.g. `"none"`, `"pan-y"`). Default value is set to `"none"`.
76
- */
77
- touchAction?: TouchAction;
78
- }
79
-
80
- /**
81
- * `GestureDetector` is responsible for creating and updating native gesture handlers based on the config of provided gesture.
82
- *
83
- * ### Props
84
- * - `gesture`
85
- * - `userSelect` (**Web only**)
86
- * - `enableContextMenu` (**Web only**)
87
- * - `touchAction` (**Web only**)
88
- *
89
- * ### Remarks
90
- * - Gesture Detector will use first native view in its subtree to recognize gestures, however if this view is used only to group its children it may get automatically collapsed.
91
- * - Using the same instance of a gesture across multiple Gesture Detectors is not possible.
92
- *
93
- * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/gesture-detector
94
- */
95
- export const GestureDetector = (props: GestureDetectorProps) => {
96
- const rootViewContext = useContext(GestureHandlerRootViewContext);
97
- if (__DEV__ && !rootViewContext && !isTestEnv() && Platform.OS !== 'web') {
98
- throw new Error(
99
- 'GestureDetector must be used as a descendant of GestureHandlerRootView. Otherwise the gestures will not be recognized. See https://docs.swmansion.com/react-native-gesture-handler/docs/fundamentals/installation for more details.'
100
- );
101
- }
102
-
103
- // Gesture config should be wrapped with useMemo to prevent unnecessary re-renders
104
- const gestureConfig = props.gesture;
105
- propagateDetectorConfig(props, gestureConfig);
106
-
107
- const gesturesToAttach = useMemo(
108
- () => gestureConfig.toGestureArray(),
109
- [gestureConfig]
110
- );
111
- const shouldUseReanimated = gesturesToAttach.some(
112
- (g) => g.shouldUseReanimated
113
- );
114
-
115
- const webEventHandlersRef = useWebEventHandlers();
116
- // Store state in ref to prevent unnecessary renders
117
- const state = useRef<GestureDetectorState>({
118
- firstRender: true,
119
- viewRef: null,
120
- previousViewTag: -1,
121
- forceRebuildReanimatedEvent: false,
122
- }).current;
123
-
124
- const preparedGesture = React.useRef<AttachedGestureState>({
125
- attachedGestures: [],
126
- animatedEventHandler: null,
127
- animatedHandlers: null,
128
- shouldUseReanimated: shouldUseReanimated,
129
- isMounted: false,
130
- }).current;
131
-
132
- const updateAttachedGestures = useDetectorUpdater(
133
- state,
134
- preparedGesture,
135
- gesturesToAttach,
136
- gestureConfig,
137
- webEventHandlersRef
138
- );
139
-
140
- const refHandler = useViewRefHandler(state, updateAttachedGestures);
141
-
142
- // Reanimated event should be rebuilt only when gestures are reattached, otherwise
143
- // config update will be enough as all necessary items are stored in shared values anyway
144
- const needsToRebuildReanimatedEvent =
145
- state.firstRender ||
146
- state.forceRebuildReanimatedEvent ||
147
- needsToReattach(preparedGesture, gesturesToAttach);
148
- state.forceRebuildReanimatedEvent = false;
149
-
150
- useAnimatedGesture(preparedGesture, needsToRebuildReanimatedEvent);
151
-
152
- useLayoutEffect(() => {
153
- const viewTag = findNodeHandle(state.viewRef) as number;
154
- preparedGesture.isMounted = true;
155
-
156
- attachHandlers({
157
- preparedGesture,
158
- gestureConfig,
159
- gesturesToAttach,
160
- webEventHandlersRef,
161
- viewTag,
162
- });
163
-
164
- return () => {
165
- preparedGesture.isMounted = false;
166
- dropHandlers(preparedGesture);
167
- };
168
- }, []);
169
-
170
- useEffect(() => {
171
- if (state.firstRender) {
172
- state.firstRender = false;
173
- } else {
174
- updateAttachedGestures();
175
- }
176
- }, [props]);
177
-
178
- useMountReactions(updateAttachedGestures, preparedGesture);
179
-
180
- if (shouldUseReanimated) {
181
- return (
182
- <AnimatedWrap
183
- ref={refHandler}
184
- onGestureHandlerEvent={preparedGesture.animatedEventHandler}>
185
- {props.children}
186
- </AnimatedWrap>
187
- );
188
- } else {
189
- return <Wrap ref={refHandler}>{props.children}</Wrap>;
190
- }
191
- };
@@ -1,27 +0,0 @@
1
- import { GestureType } from '../gesture';
2
- import { AttachedGestureState } from './types';
3
-
4
- // Checks whether the gesture should be reattached to the view, this will happen when:
5
- // - The number of gestures in the preparedGesture is different than the number of gestures in the gesture
6
- // - The handlerName is different in any of the gestures
7
- // - At least one of the gestures changed the thread it runs on
8
- export function needsToReattach(
9
- preparedGesture: AttachedGestureState,
10
- newGestures: GestureType[]
11
- ) {
12
- if (newGestures.length !== preparedGesture.attachedGestures.length) {
13
- return true;
14
- }
15
- for (let i = 0; i < newGestures.length; i++) {
16
- if (
17
- newGestures[i].handlerName !==
18
- preparedGesture.attachedGestures[i].handlerName ||
19
- newGestures[i].shouldUseReanimated !==
20
- preparedGesture.attachedGestures[i].shouldUseReanimated
21
- ) {
22
- return true;
23
- }
24
- }
25
-
26
- return false;
27
- }
@@ -1,32 +0,0 @@
1
- import { GestureType, HandlerCallbacks } from '../gesture';
2
- import { SharedValue } from '../reanimatedWrapper';
3
- import { HandlerStateChangeEvent } from '../../gestureHandlerCommon';
4
-
5
- export interface AttachedGestureState {
6
- // Array of gestures that should be attached to the view under that gesture detector
7
- attachedGestures: GestureType[];
8
- // Event handler for the gesture, returned by `useEvent` from Reanimated
9
- animatedEventHandler: unknown;
10
- // Shared value that's responsible for transferring the callbacks to the UI thread handler
11
- animatedHandlers: SharedValue<
12
- HandlerCallbacks<Record<string, unknown>>[] | null
13
- > | null;
14
- // Whether `useAnimatedGesture` should be called inside detector
15
- shouldUseReanimated: boolean;
16
- // Whether the GestureDetector is mounted
17
- isMounted: boolean;
18
- }
19
-
20
- export interface GestureDetectorState {
21
- firstRender: boolean;
22
- viewRef: React.Component | null;
23
- previousViewTag: number;
24
- forceRebuildReanimatedEvent: boolean;
25
- }
26
-
27
- export interface WebEventHandler {
28
- onGestureHandlerEvent: (event: HandlerStateChangeEvent<unknown>) => void;
29
- onGestureHandlerStateChange?: (
30
- event: HandlerStateChangeEvent<unknown>
31
- ) => void;
32
- }
@@ -1,92 +0,0 @@
1
- import { GestureType, HandlerCallbacks } from '../gesture';
2
- import { registerHandler } from '../../handlersRegistry';
3
- import RNGestureHandlerModule from '../../../RNGestureHandlerModule';
4
- import { filterConfig, scheduleFlushOperations } from '../../utils';
5
- import { ComposedGesture } from '../gestureComposition';
6
- import { ghQueueMicrotask } from '../../../ghQueueMicrotask';
7
- import { AttachedGestureState } from './types';
8
- import {
9
- extractGestureRelations,
10
- checkGestureCallbacksForWorklets,
11
- ALLOWED_PROPS,
12
- } from './utils';
13
-
14
- export function updateHandlers(
15
- preparedGesture: AttachedGestureState,
16
- gestureConfig: ComposedGesture | GestureType,
17
- newGestures: GestureType[]
18
- ) {
19
- gestureConfig.prepare();
20
-
21
- for (let i = 0; i < newGestures.length; i++) {
22
- const handler = preparedGesture.attachedGestures[i];
23
- checkGestureCallbacksForWorklets(handler);
24
-
25
- // Only update handlerTag when it's actually different, it may be the same
26
- // if gesture config object is wrapped with useMemo
27
- if (newGestures[i].handlerTag !== handler.handlerTag) {
28
- newGestures[i].handlerTag = handler.handlerTag;
29
- newGestures[i].handlers.handlerTag = handler.handlerTag;
30
- }
31
- }
32
-
33
- // Store attached gestures to avoid crash when gestures changed after queueing micro task
34
- const attachedGestures = preparedGesture.attachedGestures;
35
-
36
- // Use queueMicrotask to extract handlerTags, because when it's ran, all refs should be updated
37
- // and handlerTags in BaseGesture references should be updated in the loop above (we need to wait
38
- // in case of external relations)
39
- ghQueueMicrotask(() => {
40
- if (!preparedGesture.isMounted) {
41
- return;
42
- }
43
-
44
- // Stop if attached gestures changed after queueing micro task
45
- if (attachedGestures !== preparedGesture.attachedGestures) {
46
- return;
47
- }
48
-
49
- // If amount of gesture configs changes, we need to update the callbacks in shared value
50
- let shouldUpdateSharedValueIfUsed =
51
- attachedGestures.length !== newGestures.length;
52
-
53
- for (let i = 0; i < newGestures.length; i++) {
54
- const handler = attachedGestures[i];
55
-
56
- // If the gestureId is different (gesture isn't wrapped with useMemo or its dependencies changed),
57
- // we need to update the shared value, assuming the gesture runs on UI thread or the thread changed
58
- if (
59
- handler.handlers.gestureId !== newGestures[i].handlers.gestureId &&
60
- (newGestures[i].shouldUseReanimated || handler.shouldUseReanimated)
61
- ) {
62
- shouldUpdateSharedValueIfUsed = true;
63
- }
64
-
65
- handler.config = newGestures[i].config;
66
- handler.handlers = newGestures[i].handlers;
67
-
68
- RNGestureHandlerModule.updateGestureHandler(
69
- handler.handlerTag,
70
- filterConfig(
71
- handler.config,
72
- ALLOWED_PROPS,
73
- extractGestureRelations(handler)
74
- )
75
- );
76
-
77
- registerHandler(handler.handlerTag, handler, handler.config.testId);
78
- }
79
-
80
- if (preparedGesture.animatedHandlers && shouldUpdateSharedValueIfUsed) {
81
- const newHandlersValue = attachedGestures
82
- .filter((g) => g.shouldUseReanimated) // Ignore gestures that shouldn't run on UI
83
- .map((g) => g.handlers) as unknown as HandlerCallbacks<
84
- Record<string, unknown>
85
- >[];
86
-
87
- preparedGesture.animatedHandlers.value = newHandlersValue;
88
- }
89
-
90
- scheduleFlushOperations();
91
- });
92
- }
@@ -1,209 +0,0 @@
1
- import { HandlerCallbacks, CALLBACK_TYPE } from '../gesture';
2
- import { Reanimated } from '../reanimatedWrapper';
3
- import {
4
- GestureTouchEvent,
5
- GestureUpdateEvent,
6
- GestureStateChangeEvent,
7
- } from '../../gestureHandlerCommon';
8
- import {
9
- GestureStateManager,
10
- GestureStateManagerType,
11
- } from '../gestureStateManager';
12
- import { State } from '../../../State';
13
- import { TouchEventType } from '../../../TouchEventType';
14
- import { tagMessage } from '../../../utils';
15
- import { AttachedGestureState } from './types';
16
-
17
- function getHandler(
18
- type: CALLBACK_TYPE,
19
- gesture: HandlerCallbacks<Record<string, unknown>>
20
- ) {
21
- 'worklet';
22
- switch (type) {
23
- case CALLBACK_TYPE.BEGAN:
24
- return gesture.onBegin;
25
- case CALLBACK_TYPE.START:
26
- return gesture.onStart;
27
- case CALLBACK_TYPE.UPDATE:
28
- return gesture.onUpdate;
29
- case CALLBACK_TYPE.CHANGE:
30
- return gesture.onChange;
31
- case CALLBACK_TYPE.END:
32
- return gesture.onEnd;
33
- case CALLBACK_TYPE.FINALIZE:
34
- return gesture.onFinalize;
35
- case CALLBACK_TYPE.TOUCHES_DOWN:
36
- return gesture.onTouchesDown;
37
- case CALLBACK_TYPE.TOUCHES_MOVE:
38
- return gesture.onTouchesMove;
39
- case CALLBACK_TYPE.TOUCHES_UP:
40
- return gesture.onTouchesUp;
41
- case CALLBACK_TYPE.TOUCHES_CANCELLED:
42
- return gesture.onTouchesCancelled;
43
- }
44
- }
45
-
46
- function touchEventTypeToCallbackType(
47
- eventType: TouchEventType
48
- ): CALLBACK_TYPE {
49
- 'worklet';
50
- switch (eventType) {
51
- case TouchEventType.TOUCHES_DOWN:
52
- return CALLBACK_TYPE.TOUCHES_DOWN;
53
- case TouchEventType.TOUCHES_MOVE:
54
- return CALLBACK_TYPE.TOUCHES_MOVE;
55
- case TouchEventType.TOUCHES_UP:
56
- return CALLBACK_TYPE.TOUCHES_UP;
57
- case TouchEventType.TOUCHES_CANCELLED:
58
- return CALLBACK_TYPE.TOUCHES_CANCELLED;
59
- }
60
- return CALLBACK_TYPE.UNDEFINED;
61
- }
62
-
63
- function runWorklet(
64
- type: CALLBACK_TYPE,
65
- gesture: HandlerCallbacks<Record<string, unknown>>,
66
- event: GestureStateChangeEvent | GestureUpdateEvent | GestureTouchEvent,
67
- ...args: unknown[]
68
- ) {
69
- 'worklet';
70
- const handler = getHandler(type, gesture);
71
- if (gesture.isWorklet[type]) {
72
- // @ts-ignore Logic below makes sure the correct event is send to the
73
- // correct handler.
74
- handler?.(event, ...args);
75
- } else if (handler) {
76
- console.warn(tagMessage('Animated gesture callback must be a worklet'));
77
- }
78
- }
79
-
80
- function isStateChangeEvent(
81
- event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent
82
- ): event is GestureStateChangeEvent {
83
- 'worklet';
84
- // @ts-ignore Yes, the oldState prop is missing on GestureTouchEvent, that's the point
85
- return event.oldState != null;
86
- }
87
-
88
- function isTouchEvent(
89
- event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent
90
- ): event is GestureTouchEvent {
91
- 'worklet';
92
- return event.eventType != null;
93
- }
94
-
95
- export function useAnimatedGesture(
96
- preparedGesture: AttachedGestureState,
97
- needsRebuild: boolean
98
- ) {
99
- if (!Reanimated) {
100
- return;
101
- }
102
-
103
- // Hooks are called conditionally, but the condition is whether the
104
- // react-native-reanimated is installed, which shouldn't change while running
105
- // eslint-disable-next-line react-hooks/rules-of-hooks
106
- const sharedHandlersCallbacks = Reanimated.useSharedValue<
107
- HandlerCallbacks<Record<string, unknown>>[] | null
108
- >(null);
109
-
110
- // eslint-disable-next-line react-hooks/rules-of-hooks
111
- const lastUpdateEvent = Reanimated.useSharedValue<
112
- (GestureUpdateEvent | undefined)[]
113
- >([]);
114
-
115
- // not every gesture needs a state controller, init them lazily
116
- const stateControllers: GestureStateManagerType[] = [];
117
-
118
- const callback = (
119
- event: GestureStateChangeEvent | GestureUpdateEvent | GestureTouchEvent
120
- ) => {
121
- 'worklet';
122
-
123
- const currentCallback = sharedHandlersCallbacks.value;
124
- if (!currentCallback) {
125
- return;
126
- }
127
-
128
- for (let i = 0; i < currentCallback.length; i++) {
129
- const gesture = currentCallback[i];
130
-
131
- if (event.handlerTag !== gesture.handlerTag) {
132
- continue;
133
- }
134
-
135
- if (isStateChangeEvent(event)) {
136
- if (
137
- event.oldState === State.UNDETERMINED &&
138
- event.state === State.BEGAN
139
- ) {
140
- runWorklet(CALLBACK_TYPE.BEGAN, gesture, event);
141
- } else if (
142
- (event.oldState === State.BEGAN ||
143
- event.oldState === State.UNDETERMINED) &&
144
- event.state === State.ACTIVE
145
- ) {
146
- runWorklet(CALLBACK_TYPE.START, gesture, event);
147
- lastUpdateEvent.value[gesture.handlerTag] = undefined;
148
- } else if (
149
- event.oldState !== event.state &&
150
- event.state === State.END
151
- ) {
152
- if (event.oldState === State.ACTIVE) {
153
- runWorklet(CALLBACK_TYPE.END, gesture, event, true);
154
- }
155
- runWorklet(CALLBACK_TYPE.FINALIZE, gesture, event, true);
156
- } else if (
157
- (event.state === State.FAILED || event.state === State.CANCELLED) &&
158
- event.state !== event.oldState
159
- ) {
160
- if (event.oldState === State.ACTIVE) {
161
- runWorklet(CALLBACK_TYPE.END, gesture, event, false);
162
- }
163
- runWorklet(CALLBACK_TYPE.FINALIZE, gesture, event, false);
164
- }
165
- } else if (isTouchEvent(event)) {
166
- if (
167
- !stateControllers[i] ||
168
- stateControllers[i].handlerTag !== event.handlerTag
169
- ) {
170
- stateControllers[i] = GestureStateManager.create(event.handlerTag);
171
- }
172
-
173
- if (event.eventType !== TouchEventType.UNDETERMINED) {
174
- runWorklet(
175
- touchEventTypeToCallbackType(event.eventType),
176
- gesture,
177
- event,
178
- stateControllers[i]
179
- );
180
- }
181
- } else {
182
- runWorklet(CALLBACK_TYPE.UPDATE, gesture, event);
183
-
184
- if (gesture.onChange && gesture.changeEventCalculator) {
185
- runWorklet(
186
- CALLBACK_TYPE.CHANGE,
187
- gesture,
188
- gesture.changeEventCalculator?.(
189
- event,
190
- lastUpdateEvent.value[gesture.handlerTag]
191
- )
192
- );
193
-
194
- lastUpdateEvent.value[gesture.handlerTag] = event;
195
- }
196
- }
197
- }
198
- };
199
-
200
- // eslint-disable-next-line react-hooks/rules-of-hooks
201
- const event = Reanimated.useEvent(
202
- callback,
203
- ['onGestureHandlerStateChange', 'onGestureHandlerEvent'],
204
- needsRebuild
205
- );
206
-
207
- preparedGesture.animatedEventHandler = event;
208
- preparedGesture.animatedHandlers = sharedHandlersCallbacks;
209
- }
@@ -1,69 +0,0 @@
1
- import React, { useCallback } from 'react';
2
- import { GestureType } from '../gesture';
3
- import { ComposedGesture } from '../gestureComposition';
4
-
5
- import {
6
- AttachedGestureState,
7
- GestureDetectorState,
8
- WebEventHandler,
9
- } from './types';
10
- import { attachHandlers } from './attachHandlers';
11
- import { updateHandlers } from './updateHandlers';
12
- import { needsToReattach } from './needsToReattach';
13
- import { dropHandlers } from './dropHandlers';
14
- import { useForceRender, validateDetectorChildren } from './utils';
15
- import findNodeHandle from '../../../findNodeHandle';
16
-
17
- // Returns a function that's responsible for updating the attached gestures
18
- // If the view has changed, it will reattach the handlers to the new view
19
- // If the view remains the same, it will update the handlers with the new config
20
- export function useDetectorUpdater(
21
- state: GestureDetectorState,
22
- preparedGesture: AttachedGestureState,
23
- gesturesToAttach: GestureType[],
24
- gestureConfig: ComposedGesture | GestureType,
25
- webEventHandlersRef: React.RefObject<WebEventHandler>
26
- ) {
27
- const forceRender = useForceRender();
28
- const updateAttachedGestures = useCallback(
29
- // skipConfigUpdate is used to prevent unnecessary updates when only checking if the view has changed
30
- (skipConfigUpdate?: boolean) => {
31
- // If the underlying view has changed we need to reattach handlers to the new view
32
- const viewTag = findNodeHandle(state.viewRef) as number;
33
- const didUnderlyingViewChange = viewTag !== state.previousViewTag;
34
-
35
- if (
36
- didUnderlyingViewChange ||
37
- needsToReattach(preparedGesture, gesturesToAttach)
38
- ) {
39
- validateDetectorChildren(state.viewRef);
40
- dropHandlers(preparedGesture);
41
- attachHandlers({
42
- preparedGesture,
43
- gestureConfig,
44
- gesturesToAttach,
45
- webEventHandlersRef,
46
- viewTag,
47
- });
48
-
49
- if (didUnderlyingViewChange) {
50
- state.previousViewTag = viewTag;
51
- state.forceRebuildReanimatedEvent = true;
52
- forceRender();
53
- }
54
- } else if (!skipConfigUpdate) {
55
- updateHandlers(preparedGesture, gestureConfig, gesturesToAttach);
56
- }
57
- },
58
- [
59
- forceRender,
60
- gestureConfig,
61
- gesturesToAttach,
62
- preparedGesture,
63
- state,
64
- webEventHandlersRef,
65
- ]
66
- );
67
-
68
- return updateAttachedGestures;
69
- }
@@ -1,51 +0,0 @@
1
- import { transformIntoHandlerTags } from '../../utils';
2
- import { MountRegistry } from '../../../mountRegistry';
3
- import { AttachedGestureState } from './types';
4
- import { useEffect } from 'react';
5
- import { GestureRef } from '../gesture';
6
-
7
- function shouldUpdateDetector(
8
- relation: GestureRef[] | undefined,
9
- gesture: { handlerTag: number }
10
- ) {
11
- if (relation === undefined) {
12
- return false;
13
- }
14
-
15
- for (const tag of transformIntoHandlerTags(relation)) {
16
- if (tag === gesture.handlerTag) {
17
- return true;
18
- }
19
- }
20
-
21
- return false;
22
- }
23
-
24
- export function useMountReactions(
25
- updateDetector: () => void,
26
- state: AttachedGestureState
27
- ) {
28
- useEffect(() => {
29
- return MountRegistry.addMountListener((gesture) => {
30
- // At this point the ref in the gesture config should be updated, so we can check if one of the gestures
31
- // set in a relation with the gesture got mounted. If so, we need to update the detector to propagate
32
- // the changes to the native side.
33
- for (const attachedGesture of state.attachedGestures) {
34
- const blocksHandlers = attachedGesture.config.blocksHandlers;
35
- const requireToFail = attachedGesture.config.requireToFail;
36
- const simultaneousWith = attachedGesture.config.simultaneousWith;
37
-
38
- if (
39
- shouldUpdateDetector(blocksHandlers, gesture) ||
40
- shouldUpdateDetector(requireToFail, gesture) ||
41
- shouldUpdateDetector(simultaneousWith, gesture)
42
- ) {
43
- updateDetector();
44
-
45
- // We can safely return here, if any other gestures should be updated, they will be by the above call
46
- return;
47
- }
48
- }
49
- });
50
- }, [updateDetector, state]);
51
- }