@amazon-devices/react-native-gesture-handler 4.0.1 → 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 (507) hide show
  1. package/kepler-compatibility.json +2 -1
  2. package/lib/commonjs/index.js +0 -268
  3. package/package.json +1 -1
  4. package/src/index.ts +0 -168
  5. package/README.md +0 -70
  6. package/lib/commonjs/ActionType.js +0 -15
  7. package/lib/commonjs/Directions.js +0 -31
  8. package/lib/commonjs/EnableNewWebImplementation.js +0 -40
  9. package/lib/commonjs/GestureHandlerRootViewContext.js +0 -10
  10. package/lib/commonjs/PlatformConstants.js +0 -9
  11. package/lib/commonjs/PlatformConstants.kepler.js +0 -12
  12. package/lib/commonjs/PlatformConstants.web.js +0 -12
  13. package/lib/commonjs/PointerType.js +0 -15
  14. package/lib/commonjs/RNGestureHandlerModule.js +0 -12
  15. package/lib/commonjs/RNGestureHandlerModule.kepler.js +0 -29
  16. package/lib/commonjs/RNGestureHandlerModule.web.js +0 -95
  17. package/lib/commonjs/RNGestureHandlerModule.windows.js +0 -56
  18. package/lib/commonjs/RNRenderer.js +0 -14
  19. package/lib/commonjs/RNRenderer.web.js +0 -10
  20. package/lib/commonjs/State.js +0 -19
  21. package/lib/commonjs/TouchEventType.js +0 -16
  22. package/lib/commonjs/components/DrawerLayout.js +0 -548
  23. package/lib/commonjs/components/GestureButtons.js +0 -212
  24. package/lib/commonjs/components/GestureButtonsProps.js +0 -6
  25. package/lib/commonjs/components/GestureComponents.js +0 -106
  26. package/lib/commonjs/components/GestureComponents.web.js +0 -39
  27. package/lib/commonjs/components/GestureHandlerButton.js +0 -10
  28. package/lib/commonjs/components/GestureHandlerButton.web.js +0 -16
  29. package/lib/commonjs/components/GestureHandlerRootView.android.js +0 -36
  30. package/lib/commonjs/components/GestureHandlerRootView.js +0 -35
  31. package/lib/commonjs/components/GestureHandlerRootView.kepler.js +0 -21
  32. package/lib/commonjs/components/GestureHandlerRootView.web.js +0 -30
  33. package/lib/commonjs/components/Pressable/Pressable.js +0 -274
  34. package/lib/commonjs/components/Pressable/PressableProps.js +0 -6
  35. package/lib/commonjs/components/Pressable/StateMachine.js +0 -44
  36. package/lib/commonjs/components/Pressable/index.js +0 -14
  37. package/lib/commonjs/components/Pressable/stateDefinitions.js +0 -88
  38. package/lib/commonjs/components/Pressable/utils.js +0 -92
  39. package/lib/commonjs/components/ReanimatedDrawerLayout.js +0 -357
  40. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeable.js +0 -337
  41. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +0 -12
  42. package/lib/commonjs/components/ReanimatedSwipeable/index.js +0 -21
  43. package/lib/commonjs/components/Swipeable.js +0 -370
  44. package/lib/commonjs/components/Text.js +0 -60
  45. package/lib/commonjs/components/gestureHandlerRootHOC.js +0 -37
  46. package/lib/commonjs/components/touchables/ExtraButtonProps.js +0 -2
  47. package/lib/commonjs/components/touchables/GenericTouchable.js +0 -245
  48. package/lib/commonjs/components/touchables/GenericTouchableProps.js +0 -6
  49. package/lib/commonjs/components/touchables/TouchableHighlight.js +0 -93
  50. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +0 -84
  51. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +0 -13
  52. package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js +0 -6
  53. package/lib/commonjs/components/touchables/TouchableOpacity.js +0 -65
  54. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +0 -33
  55. package/lib/commonjs/components/touchables/index.js +0 -35
  56. package/lib/commonjs/components/utils.js +0 -17
  57. package/lib/commonjs/findNodeHandle.js +0 -9
  58. package/lib/commonjs/findNodeHandle.web.js +0 -39
  59. package/lib/commonjs/getShadowNodeFromRef.js +0 -51
  60. package/lib/commonjs/getShadowNodeFromRef.web.js +0 -14
  61. package/lib/commonjs/ghQueueMicrotask.js +0 -10
  62. package/lib/commonjs/handlers/FlingGestureHandler.js +0 -31
  63. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +0 -46
  64. package/lib/commonjs/handlers/GestureHandlerEventPayload.js +0 -6
  65. package/lib/commonjs/handlers/LongPressGestureHandler.js +0 -33
  66. package/lib/commonjs/handlers/NativeViewGestureHandler.js +0 -32
  67. package/lib/commonjs/handlers/PanGestureHandler.js +0 -112
  68. package/lib/commonjs/handlers/PinchGestureHandler.js +0 -29
  69. package/lib/commonjs/handlers/PressabilityDebugView.js +0 -13
  70. package/lib/commonjs/handlers/PressabilityDebugView.web.js +0 -11
  71. package/lib/commonjs/handlers/RotationGestureHandler.js +0 -29
  72. package/lib/commonjs/handlers/TapGestureHandler.js +0 -33
  73. package/lib/commonjs/handlers/createHandler.js +0 -405
  74. package/lib/commonjs/handlers/createNativeWrapper.js +0 -77
  75. package/lib/commonjs/handlers/customDirectEventTypes.js +0 -13
  76. package/lib/commonjs/handlers/customDirectEventTypes.web.js +0 -10
  77. package/lib/commonjs/handlers/gestureHandlerCommon.js +0 -27
  78. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +0 -6
  79. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js +0 -32
  80. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js +0 -41
  81. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +0 -67
  82. package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js +0 -20
  83. package/lib/commonjs/handlers/gestures/GestureDetector/index.js +0 -125
  84. package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js +0 -22
  85. package/lib/commonjs/handlers/gestures/GestureDetector/types.js +0 -6
  86. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +0 -66
  87. package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -143
  88. package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -47
  89. package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +0 -41
  90. package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -45
  91. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +0 -143
  92. package/lib/commonjs/handlers/gestures/eventReceiver.js +0 -117
  93. package/lib/commonjs/handlers/gestures/flingGesture.js +0 -37
  94. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +0 -80
  95. package/lib/commonjs/handlers/gestures/gesture.js +0 -338
  96. package/lib/commonjs/handlers/gestures/gestureComposition.js +0 -90
  97. package/lib/commonjs/handlers/gestures/gestureObjects.js +0 -132
  98. package/lib/commonjs/handlers/gestures/gestureStateManager.js +0 -70
  99. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +0 -28
  100. package/lib/commonjs/handlers/gestures/hoverGesture.js +0 -57
  101. package/lib/commonjs/handlers/gestures/longPressGesture.js +0 -46
  102. package/lib/commonjs/handlers/gestures/manualGesture.js +0 -25
  103. package/lib/commonjs/handlers/gestures/nativeGesture.js +0 -34
  104. package/lib/commonjs/handlers/gestures/panGesture.js +0 -197
  105. package/lib/commonjs/handlers/gestures/pinchGesture.js +0 -38
  106. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +0 -29
  107. package/lib/commonjs/handlers/gestures/rotationGesture.js +0 -38
  108. package/lib/commonjs/handlers/gestures/tapGesture.js +0 -87
  109. package/lib/commonjs/handlers/getNextHandlerTag.js +0 -11
  110. package/lib/commonjs/handlers/handlersRegistry.js +0 -50
  111. package/lib/commonjs/handlers/utils.js +0 -69
  112. package/lib/commonjs/init.js +0 -25
  113. package/lib/commonjs/jestUtils/index.js +0 -19
  114. package/lib/commonjs/jestUtils/jestUtils.js +0 -316
  115. package/lib/commonjs/mocks/Pressable.js +0 -13
  116. package/lib/commonjs/mocks/mocks.js +0 -70
  117. package/lib/commonjs/mocks.js +0 -61
  118. package/lib/commonjs/mountRegistry.js +0 -37
  119. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +0 -9
  120. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.kepler.js +0 -20
  121. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  122. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.kepler.js +0 -17
  123. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  124. package/lib/commonjs/typeUtils.js +0 -2
  125. package/lib/commonjs/utils.js +0 -95
  126. package/lib/commonjs/web/Gestures.js +0 -48
  127. package/lib/commonjs/web/constants.js +0 -9
  128. package/lib/commonjs/web/detectors/RotationGestureDetector.js +0 -124
  129. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +0 -111
  130. package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -143
  131. package/lib/commonjs/web/handlers/GestureHandler.js +0 -689
  132. package/lib/commonjs/web/handlers/HoverGestureHandler.js +0 -45
  133. package/lib/commonjs/web/handlers/IGestureHandler.js +0 -2
  134. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -146
  135. package/lib/commonjs/web/handlers/ManualGestureHandler.js +0 -38
  136. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -141
  137. package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -399
  138. package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -122
  139. package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -129
  140. package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -215
  141. package/lib/commonjs/web/interfaces.js +0 -32
  142. package/lib/commonjs/web/tools/CircularBuffer.js +0 -40
  143. package/lib/commonjs/web/tools/EventManager.js +0 -94
  144. package/lib/commonjs/web/tools/GestureHandlerDelegate.js +0 -6
  145. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +0 -267
  146. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +0 -165
  147. package/lib/commonjs/web/tools/InteractionManager.js +0 -96
  148. package/lib/commonjs/web/tools/KeyboardEventManager.js +0 -108
  149. package/lib/commonjs/web/tools/LeastSquareSolver.js +0 -159
  150. package/lib/commonjs/web/tools/NodeManager.js +0 -39
  151. package/lib/commonjs/web/tools/PointerEventManager.js +0 -189
  152. package/lib/commonjs/web/tools/PointerTracker.js +0 -192
  153. package/lib/commonjs/web/tools/Vector.js +0 -37
  154. package/lib/commonjs/web/tools/VelocityTracker.js +0 -85
  155. package/lib/commonjs/web/tools/WheelEventManager.js +0 -55
  156. package/lib/commonjs/web/utils.js +0 -235
  157. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +0 -93
  158. package/lib/commonjs/web_hammer/DraggingGestureHandler.js +0 -43
  159. package/lib/commonjs/web_hammer/Errors.js +0 -13
  160. package/lib/commonjs/web_hammer/FlingGestureHandler.js +0 -139
  161. package/lib/commonjs/web_hammer/GestureHandler.js +0 -484
  162. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +0 -45
  163. package/lib/commonjs/web_hammer/LongPressGestureHandler.js +0 -57
  164. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +0 -57
  165. package/lib/commonjs/web_hammer/NodeManager.js +0 -41
  166. package/lib/commonjs/web_hammer/PanGestureHandler.js +0 -167
  167. package/lib/commonjs/web_hammer/PinchGestureHandler.js +0 -31
  168. package/lib/commonjs/web_hammer/PressGestureHandler.js +0 -153
  169. package/lib/commonjs/web_hammer/RotationGestureHandler.js +0 -32
  170. package/lib/commonjs/web_hammer/TapGestureHandler.js +0 -165
  171. package/lib/commonjs/web_hammer/constants.js +0 -51
  172. package/lib/commonjs/web_hammer/utils.js +0 -32
  173. package/lib/module/ActionType.js +0 -11
  174. package/lib/module/Directions.js +0 -27
  175. package/lib/module/EnableNewWebImplementation.js +0 -34
  176. package/lib/module/GestureHandlerRootViewContext.js +0 -5
  177. package/lib/module/PlatformConstants.js +0 -5
  178. package/lib/module/PlatformConstants.kepler.js +0 -8
  179. package/lib/module/PlatformConstants.web.js +0 -8
  180. package/lib/module/PointerType.js +0 -11
  181. package/lib/module/RNGestureHandlerModule.js +0 -8
  182. package/lib/module/RNGestureHandlerModule.kepler.js +0 -25
  183. package/lib/module/RNGestureHandlerModule.web.js +0 -90
  184. package/lib/module/RNGestureHandlerModule.windows.js +0 -50
  185. package/lib/module/RNRenderer.js +0 -6
  186. package/lib/module/RNRenderer.web.js +0 -6
  187. package/lib/module/State.js +0 -15
  188. package/lib/module/TouchEventType.js +0 -12
  189. package/lib/module/components/DrawerLayout.js +0 -541
  190. package/lib/module/components/GestureButtons.js +0 -200
  191. package/lib/module/components/GestureButtonsProps.js +0 -4
  192. package/lib/module/components/GestureComponents.js +0 -100
  193. package/lib/module/components/GestureComponents.web.js +0 -32
  194. package/lib/module/components/GestureHandlerButton.js +0 -5
  195. package/lib/module/components/GestureHandlerButton.web.js +0 -11
  196. package/lib/module/components/GestureHandlerRootView.android.js +0 -30
  197. package/lib/module/components/GestureHandlerRootView.js +0 -29
  198. package/lib/module/components/GestureHandlerRootView.kepler.js +0 -15
  199. package/lib/module/components/GestureHandlerRootView.web.js +0 -24
  200. package/lib/module/components/Pressable/Pressable.js +0 -268
  201. package/lib/module/components/Pressable/PressableProps.js +0 -4
  202. package/lib/module/components/Pressable/StateMachine.js +0 -40
  203. package/lib/module/components/Pressable/index.js +0 -4
  204. package/lib/module/components/Pressable/stateDefinitions.js +0 -83
  205. package/lib/module/components/Pressable/utils.js +0 -84
  206. package/lib/module/components/ReanimatedDrawerLayout.js +0 -352
  207. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js +0 -332
  208. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +0 -8
  209. package/lib/module/components/ReanimatedSwipeable/index.js +0 -5
  210. package/lib/module/components/Swipeable.js +0 -364
  211. package/lib/module/components/Text.js +0 -55
  212. package/lib/module/components/gestureHandlerRootHOC.js +0 -33
  213. package/lib/module/components/touchables/ExtraButtonProps.js +0 -2
  214. package/lib/module/components/touchables/GenericTouchable.js +0 -239
  215. package/lib/module/components/touchables/GenericTouchableProps.js +0 -4
  216. package/lib/module/components/touchables/TouchableHighlight.js +0 -87
  217. package/lib/module/components/touchables/TouchableNativeFeedback.android.js +0 -77
  218. package/lib/module/components/touchables/TouchableNativeFeedback.js +0 -10
  219. package/lib/module/components/touchables/TouchableNativeFeedbackProps.js +0 -4
  220. package/lib/module/components/touchables/TouchableOpacity.js +0 -59
  221. package/lib/module/components/touchables/TouchableWithoutFeedback.js +0 -27
  222. package/lib/module/components/touchables/index.js +0 -7
  223. package/lib/module/components/utils.js +0 -13
  224. package/lib/module/findNodeHandle.js +0 -5
  225. package/lib/module/findNodeHandle.web.js +0 -35
  226. package/lib/module/getShadowNodeFromRef.js +0 -47
  227. package/lib/module/getShadowNodeFromRef.web.js +0 -10
  228. package/lib/module/ghQueueMicrotask.js +0 -6
  229. package/lib/module/handlers/FlingGestureHandler.js +0 -26
  230. package/lib/module/handlers/ForceTouchGestureHandler.js +0 -41
  231. package/lib/module/handlers/GestureHandlerEventPayload.js +0 -4
  232. package/lib/module/handlers/LongPressGestureHandler.js +0 -28
  233. package/lib/module/handlers/NativeViewGestureHandler.js +0 -27
  234. package/lib/module/handlers/PanGestureHandler.js +0 -105
  235. package/lib/module/handlers/PinchGestureHandler.js +0 -25
  236. package/lib/module/handlers/PressabilityDebugView.js +0 -5
  237. package/lib/module/handlers/PressabilityDebugView.web.js +0 -7
  238. package/lib/module/handlers/RotationGestureHandler.js +0 -25
  239. package/lib/module/handlers/TapGestureHandler.js +0 -28
  240. package/lib/module/handlers/createHandler.js +0 -399
  241. package/lib/module/handlers/createNativeWrapper.js +0 -74
  242. package/lib/module/handlers/customDirectEventTypes.js +0 -5
  243. package/lib/module/handlers/customDirectEventTypes.web.js +0 -7
  244. package/lib/module/handlers/gestureHandlerCommon.js +0 -26
  245. package/lib/module/handlers/gestureHandlerTypesCompat.js +0 -4
  246. package/lib/module/handlers/gestures/GestureDetector/Wrap.js +0 -26
  247. package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js +0 -36
  248. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +0 -62
  249. package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js +0 -15
  250. package/lib/module/handlers/gestures/GestureDetector/index.js +0 -117
  251. package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js +0 -18
  252. package/lib/module/handlers/gestures/GestureDetector/types.js +0 -4
  253. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +0 -61
  254. package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -139
  255. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -43
  256. package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js +0 -37
  257. package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -40
  258. package/lib/module/handlers/gestures/GestureDetector/utils.js +0 -134
  259. package/lib/module/handlers/gestures/eventReceiver.js +0 -110
  260. package/lib/module/handlers/gestures/flingGesture.js +0 -32
  261. package/lib/module/handlers/gestures/forceTouchGesture.js +0 -76
  262. package/lib/module/handlers/gestures/gesture.js +0 -332
  263. package/lib/module/handlers/gestures/gestureComposition.js +0 -83
  264. package/lib/module/handlers/gestures/gestureObjects.js +0 -129
  265. package/lib/module/handlers/gestures/gestureStateManager.js +0 -66
  266. package/lib/module/handlers/gestures/gestureStateManager.web.js +0 -23
  267. package/lib/module/handlers/gestures/hoverGesture.js +0 -52
  268. package/lib/module/handlers/gestures/longPressGesture.js +0 -41
  269. package/lib/module/handlers/gestures/manualGesture.js +0 -20
  270. package/lib/module/handlers/gestures/nativeGesture.js +0 -29
  271. package/lib/module/handlers/gestures/panGesture.js +0 -192
  272. package/lib/module/handlers/gestures/pinchGesture.js +0 -33
  273. package/lib/module/handlers/gestures/reanimatedWrapper.js +0 -26
  274. package/lib/module/handlers/gestures/rotationGesture.js +0 -33
  275. package/lib/module/handlers/gestures/tapGesture.js +0 -82
  276. package/lib/module/handlers/getNextHandlerTag.js +0 -7
  277. package/lib/module/handlers/handlersRegistry.js +0 -39
  278. package/lib/module/handlers/utils.js +0 -61
  279. package/lib/module/index.js +0 -31
  280. package/lib/module/init.js +0 -19
  281. package/lib/module/jestUtils/index.js +0 -4
  282. package/lib/module/jestUtils/jestUtils.js +0 -311
  283. package/lib/module/mocks/Pressable.js +0 -4
  284. package/lib/module/mocks/mocks.js +0 -64
  285. package/lib/module/mocks.js +0 -57
  286. package/lib/module/mountRegistry.js +0 -32
  287. package/lib/module/specs/NativeRNGestureHandlerModule.js +0 -5
  288. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.kepler.js +0 -14
  289. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  290. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.kepler.js +0 -11
  291. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  292. package/lib/module/typeUtils.js +0 -2
  293. package/lib/module/utils.js +0 -81
  294. package/lib/module/web/Gestures.js +0 -42
  295. package/lib/module/web/constants.js +0 -5
  296. package/lib/module/web/detectors/RotationGestureDetector.js +0 -119
  297. package/lib/module/web/detectors/ScaleGestureDetector.js +0 -106
  298. package/lib/module/web/handlers/FlingGestureHandler.js +0 -137
  299. package/lib/module/web/handlers/GestureHandler.js +0 -682
  300. package/lib/module/web/handlers/HoverGestureHandler.js +0 -39
  301. package/lib/module/web/handlers/IGestureHandler.js +0 -2
  302. package/lib/module/web/handlers/LongPressGestureHandler.js +0 -140
  303. package/lib/module/web/handlers/ManualGestureHandler.js +0 -32
  304. package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -135
  305. package/lib/module/web/handlers/PanGestureHandler.js +0 -393
  306. package/lib/module/web/handlers/PinchGestureHandler.js +0 -116
  307. package/lib/module/web/handlers/RotationGestureHandler.js +0 -123
  308. package/lib/module/web/handlers/TapGestureHandler.js +0 -209
  309. package/lib/module/web/interfaces.js +0 -28
  310. package/lib/module/web/tools/CircularBuffer.js +0 -35
  311. package/lib/module/web/tools/EventManager.js +0 -89
  312. package/lib/module/web/tools/GestureHandlerDelegate.js +0 -4
  313. package/lib/module/web/tools/GestureHandlerOrchestrator.js +0 -261
  314. package/lib/module/web/tools/GestureHandlerWebDelegate.js +0 -159
  315. package/lib/module/web/tools/InteractionManager.js +0 -91
  316. package/lib/module/web/tools/KeyboardEventManager.js +0 -102
  317. package/lib/module/web/tools/LeastSquareSolver.js +0 -154
  318. package/lib/module/web/tools/NodeManager.js +0 -34
  319. package/lib/module/web/tools/PointerEventManager.js +0 -183
  320. package/lib/module/web/tools/PointerTracker.js +0 -186
  321. package/lib/module/web/tools/Vector.js +0 -32
  322. package/lib/module/web/tools/VelocityTracker.js +0 -79
  323. package/lib/module/web/tools/WheelEventManager.js +0 -49
  324. package/lib/module/web/utils.js +0 -223
  325. package/lib/module/web_hammer/DiscreteGestureHandler.js +0 -87
  326. package/lib/module/web_hammer/DraggingGestureHandler.js +0 -37
  327. package/lib/module/web_hammer/Errors.js +0 -8
  328. package/lib/module/web_hammer/FlingGestureHandler.js +0 -133
  329. package/lib/module/web_hammer/GestureHandler.js +0 -478
  330. package/lib/module/web_hammer/IndiscreteGestureHandler.js +0 -41
  331. package/lib/module/web_hammer/LongPressGestureHandler.js +0 -51
  332. package/lib/module/web_hammer/NativeViewGestureHandler.js +0 -51
  333. package/lib/module/web_hammer/NodeManager.js +0 -33
  334. package/lib/module/web_hammer/PanGestureHandler.js +0 -162
  335. package/lib/module/web_hammer/PinchGestureHandler.js +0 -26
  336. package/lib/module/web_hammer/PressGestureHandler.js +0 -148
  337. package/lib/module/web_hammer/RotationGestureHandler.js +0 -27
  338. package/lib/module/web_hammer/TapGestureHandler.js +0 -160
  339. package/lib/module/web_hammer/constants.js +0 -46
  340. package/lib/module/web_hammer/utils.js +0 -21
  341. package/src/ActionType.ts +0 -9
  342. package/src/Directions.ts +0 -26
  343. package/src/EnableNewWebImplementation.ts +0 -53
  344. package/src/GestureHandlerRootViewContext.ts +0 -3
  345. package/src/PlatformConstants.kepler.ts +0 -5
  346. package/src/PlatformConstants.ts +0 -8
  347. package/src/PlatformConstants.web.ts +0 -5
  348. package/src/PointerType.ts +0 -7
  349. package/src/RNGestureHandlerModule.kepler.ts +0 -63
  350. package/src/RNGestureHandlerModule.ts +0 -5
  351. package/src/RNGestureHandlerModule.web.ts +0 -124
  352. package/src/RNGestureHandlerModule.windows.ts +0 -62
  353. package/src/RNRenderer.ts +0 -3
  354. package/src/RNRenderer.web.ts +0 -3
  355. package/src/State.ts +0 -13
  356. package/src/TouchEventType.ts +0 -11
  357. package/src/components/DrawerLayout.tsx +0 -788
  358. package/src/components/GestureButtons.tsx +0 -272
  359. package/src/components/GestureButtonsProps.ts +0 -156
  360. package/src/components/GestureComponents.tsx +0 -148
  361. package/src/components/GestureComponents.web.tsx +0 -41
  362. package/src/components/GestureHandlerButton.tsx +0 -5
  363. package/src/components/GestureHandlerButton.web.tsx +0 -6
  364. package/src/components/GestureHandlerRootView.android.tsx +0 -32
  365. package/src/components/GestureHandlerRootView.kepler.tsx +0 -18
  366. package/src/components/GestureHandlerRootView.tsx +0 -28
  367. package/src/components/GestureHandlerRootView.web.tsx +0 -22
  368. package/src/components/Pressable/Pressable.tsx +0 -401
  369. package/src/components/Pressable/PressableProps.tsx +0 -174
  370. package/src/components/Pressable/StateMachine.tsx +0 -57
  371. package/src/components/Pressable/index.ts +0 -5
  372. package/src/components/Pressable/stateDefinitions.ts +0 -126
  373. package/src/components/Pressable/utils.ts +0 -140
  374. package/src/components/ReanimatedDrawerLayout.tsx +0 -754
  375. package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +0 -607
  376. package/src/components/ReanimatedSwipeable/ReanimatedSwipeableProps.ts +0 -199
  377. package/src/components/ReanimatedSwipeable/index.ts +0 -6
  378. package/src/components/Swipeable.tsx +0 -595
  379. package/src/components/Text.tsx +0 -77
  380. package/src/components/gestureHandlerRootHOC.tsx +0 -33
  381. package/src/components/touchables/ExtraButtonProps.ts +0 -7
  382. package/src/components/touchables/GenericTouchable.tsx +0 -275
  383. package/src/components/touchables/GenericTouchableProps.ts +0 -28
  384. package/src/components/touchables/TouchableHighlight.tsx +0 -118
  385. package/src/components/touchables/TouchableNativeFeedback.android.tsx +0 -83
  386. package/src/components/touchables/TouchableNativeFeedback.tsx +0 -8
  387. package/src/components/touchables/TouchableNativeFeedbackProps.tsx +0 -10
  388. package/src/components/touchables/TouchableOpacity.tsx +0 -78
  389. package/src/components/touchables/TouchableWithoutFeedback.tsx +0 -39
  390. package/src/components/touchables/index.ts +0 -7
  391. package/src/components/utils.ts +0 -26
  392. package/src/findNodeHandle.ts +0 -3
  393. package/src/findNodeHandle.web.ts +0 -41
  394. package/src/getShadowNodeFromRef.ts +0 -50
  395. package/src/getShadowNodeFromRef.web.ts +0 -7
  396. package/src/ghQueueMicrotask.ts +0 -8
  397. package/src/handlers/FlingGestureHandler.ts +0 -64
  398. package/src/handlers/ForceTouchGestureHandler.ts +0 -88
  399. package/src/handlers/GestureHandlerEventPayload.ts +0 -229
  400. package/src/handlers/LongPressGestureHandler.ts +0 -65
  401. package/src/handlers/NativeViewGestureHandler.ts +0 -59
  402. package/src/handlers/PanGestureHandler.ts +0 -282
  403. package/src/handlers/PinchGestureHandler.ts +0 -32
  404. package/src/handlers/PressabilityDebugView.tsx +0 -2
  405. package/src/handlers/PressabilityDebugView.web.tsx +0 -4
  406. package/src/handlers/RotationGestureHandler.ts +0 -32
  407. package/src/handlers/TapGestureHandler.ts +0 -99
  408. package/src/handlers/createHandler.tsx +0 -586
  409. package/src/handlers/createNativeWrapper.tsx +0 -89
  410. package/src/handlers/customDirectEventTypes.ts +0 -2
  411. package/src/handlers/customDirectEventTypes.web.ts +0 -5
  412. package/src/handlers/gestureHandlerCommon.ts +0 -211
  413. package/src/handlers/gestureHandlerTypesCompat.ts +0 -101
  414. package/src/handlers/gestures/GestureDetector/Wrap.tsx +0 -35
  415. package/src/handlers/gestures/GestureDetector/Wrap.web.tsx +0 -42
  416. package/src/handlers/gestures/GestureDetector/attachHandlers.ts +0 -112
  417. package/src/handlers/gestures/GestureDetector/dropHandlers.ts +0 -17
  418. package/src/handlers/gestures/GestureDetector/index.tsx +0 -191
  419. package/src/handlers/gestures/GestureDetector/needsToReattach.ts +0 -27
  420. package/src/handlers/gestures/GestureDetector/types.ts +0 -32
  421. package/src/handlers/gestures/GestureDetector/updateHandlers.ts +0 -92
  422. package/src/handlers/gestures/GestureDetector/useAnimatedGesture.ts +0 -209
  423. package/src/handlers/gestures/GestureDetector/useDetectorUpdater.ts +0 -69
  424. package/src/handlers/gestures/GestureDetector/useMountReactions.ts +0 -51
  425. package/src/handlers/gestures/GestureDetector/useViewRefHandler.ts +0 -58
  426. package/src/handlers/gestures/GestureDetector/utils.ts +0 -181
  427. package/src/handlers/gestures/eventReceiver.ts +0 -173
  428. package/src/handlers/gestures/flingGesture.ts +0 -36
  429. package/src/handlers/gestures/forceTouchGesture.ts +0 -95
  430. package/src/handlers/gestures/gesture.ts +0 -472
  431. package/src/handlers/gestures/gestureComposition.ts +0 -124
  432. package/src/handlers/gestures/gestureObjects.ts +0 -143
  433. package/src/handlers/gestures/gestureStateManager.ts +0 -76
  434. package/src/handlers/gestures/gestureStateManager.web.ts +0 -26
  435. package/src/handlers/gestures/hoverGesture.ts +0 -77
  436. package/src/handlers/gestures/longPressGesture.ts +0 -45
  437. package/src/handlers/gestures/manualGesture.ts +0 -31
  438. package/src/handlers/gestures/nativeGesture.ts +0 -33
  439. package/src/handlers/gestures/panGesture.ts +0 -221
  440. package/src/handlers/gestures/pinchGesture.ts +0 -51
  441. package/src/handlers/gestures/reanimatedWrapper.ts +0 -57
  442. package/src/handlers/gestures/rotationGesture.ts +0 -51
  443. package/src/handlers/gestures/tapGesture.ts +0 -86
  444. package/src/handlers/getNextHandlerTag.ts +0 -5
  445. package/src/handlers/handlersRegistry.ts +0 -58
  446. package/src/handlers/utils.ts +0 -76
  447. package/src/init.ts +0 -18
  448. package/src/jestUtils/index.ts +0 -1
  449. package/src/jestUtils/jestUtils.ts +0 -513
  450. package/src/mocks/Pressable.tsx +0 -1
  451. package/src/mocks/mocks.tsx +0 -70
  452. package/src/mocks.ts +0 -67
  453. package/src/mountRegistry.ts +0 -51
  454. package/src/specs/NativeRNGestureHandlerModule.ts +0 -26
  455. package/src/specs/RNGestureHandlerButtonNativeComponent.kepler.ts +0 -27
  456. package/src/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  457. package/src/specs/RNGestureHandlerRootViewNativeComponent.kepler.ts +0 -21
  458. package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  459. package/src/typeUtils.ts +0 -1
  460. package/src/utils.ts +0 -107
  461. package/src/web/Gestures.ts +0 -41
  462. package/src/web/constants.ts +0 -2
  463. package/src/web/detectors/RotationGestureDetector.ts +0 -170
  464. package/src/web/detectors/ScaleGestureDetector.ts +0 -171
  465. package/src/web/handlers/FlingGestureHandler.ts +0 -196
  466. package/src/web/handlers/GestureHandler.ts +0 -881
  467. package/src/web/handlers/HoverGestureHandler.ts +0 -49
  468. package/src/web/handlers/IGestureHandler.ts +0 -49
  469. package/src/web/handlers/LongPressGestureHandler.ts +0 -175
  470. package/src/web/handlers/ManualGestureHandler.ts +0 -37
  471. package/src/web/handlers/NativeViewGestureHandler.ts +0 -175
  472. package/src/web/handlers/PanGestureHandler.ts +0 -571
  473. package/src/web/handlers/PinchGestureHandler.ts +0 -152
  474. package/src/web/handlers/RotationGestureHandler.ts +0 -166
  475. package/src/web/handlers/TapGestureHandler.ts +0 -274
  476. package/src/web/interfaces.ts +0 -190
  477. package/src/web/tools/CircularBuffer.ts +0 -42
  478. package/src/web/tools/EventManager.ts +0 -108
  479. package/src/web/tools/GestureHandlerDelegate.ts +0 -26
  480. package/src/web/tools/GestureHandlerOrchestrator.ts +0 -392
  481. package/src/web/tools/GestureHandlerWebDelegate.ts +0 -227
  482. package/src/web/tools/InteractionManager.ts +0 -135
  483. package/src/web/tools/KeyboardEventManager.ts +0 -133
  484. package/src/web/tools/LeastSquareSolver.ts +0 -182
  485. package/src/web/tools/NodeManager.ts +0 -48
  486. package/src/web/tools/PointerEventManager.ts +0 -226
  487. package/src/web/tools/PointerTracker.ts +0 -228
  488. package/src/web/tools/Vector.ts +0 -59
  489. package/src/web/tools/VelocityTracker.ts +0 -98
  490. package/src/web/tools/WheelEventManager.ts +0 -48
  491. package/src/web/utils.ts +0 -293
  492. package/src/web_hammer/DiscreteGestureHandler.ts +0 -82
  493. package/src/web_hammer/DraggingGestureHandler.ts +0 -34
  494. package/src/web_hammer/Errors.ts +0 -7
  495. package/src/web_hammer/FlingGestureHandler.ts +0 -134
  496. package/src/web_hammer/GestureHandler.ts +0 -600
  497. package/src/web_hammer/IndiscreteGestureHandler.ts +0 -33
  498. package/src/web_hammer/LongPressGestureHandler.ts +0 -56
  499. package/src/web_hammer/NativeViewGestureHandler.ts +0 -47
  500. package/src/web_hammer/NodeManager.ts +0 -33
  501. package/src/web_hammer/PanGestureHandler.ts +0 -226
  502. package/src/web_hammer/PinchGestureHandler.ts +0 -25
  503. package/src/web_hammer/PressGestureHandler.ts +0 -170
  504. package/src/web_hammer/RotationGestureHandler.ts +0 -25
  505. package/src/web_hammer/TapGestureHandler.ts +0 -172
  506. package/src/web_hammer/constants.ts +0 -48
  507. package/src/web_hammer/utils.ts +0 -24
@@ -1,586 +0,0 @@
1
- import * as React from 'react';
2
- import {
3
- Platform,
4
- UIManager,
5
- DeviceEventEmitter,
6
- EmitterSubscription,
7
- } from 'react-native';
8
- import { customDirectEventTypes } from './customDirectEventTypes';
9
- import RNGestureHandlerModule from '../RNGestureHandlerModule';
10
- import { State } from '../State';
11
- import {
12
- handlerIDToTag,
13
- registerOldGestureHandler,
14
- unregisterOldGestureHandler,
15
- } from './handlersRegistry';
16
- import { getNextHandlerTag } from './getNextHandlerTag';
17
-
18
- import {
19
- BaseGestureHandlerProps,
20
- GestureEvent,
21
- HandlerStateChangeEvent,
22
- } from './gestureHandlerCommon';
23
- import { filterConfig, scheduleFlushOperations } from './utils';
24
- import findNodeHandle from '../findNodeHandle';
25
- import { ValueOf } from '../typeUtils';
26
- import {
27
- deepEqual,
28
- isFabric,
29
- isReact19,
30
- isTestEnv,
31
- tagMessage,
32
- } from '../utils';
33
- import { ActionType } from '../ActionType';
34
- import { PressabilityDebugView } from './PressabilityDebugView';
35
- import GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';
36
- import { ghQueueMicrotask } from '../ghQueueMicrotask';
37
- import { MountRegistry } from '../mountRegistry';
38
- import { ReactElement } from 'react';
39
-
40
- const UIManagerAny = UIManager as any;
41
-
42
- customDirectEventTypes.topGestureHandlerEvent = {
43
- registrationName: 'onGestureHandlerEvent',
44
- };
45
-
46
- customDirectEventTypes.topGestureHandlerStateChange = {
47
- registrationName: 'onGestureHandlerStateChange'
48
- }
49
-
50
- const customGHEventsConfigFabricAndroid = {
51
- topOnGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },
52
- topOnGestureHandlerStateChange: {
53
- registrationName: 'onGestureHandlerStateChange',
54
- },
55
- };
56
-
57
- const customGHEventsConfig = {
58
- onGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },
59
- onGestureHandlerStateChange: {
60
- registrationName: 'onGestureHandlerStateChange',
61
- },
62
-
63
- // When using React Native Gesture Handler for Animated.event with useNativeDriver: true
64
- // on Android with Fabric enabled, the native part still sends the native events to JS
65
- // but prefixed with "top". We cannot simply rename the events above so they are prefixed
66
- // with "top" instead of "on" because in such case Animated.events would not be registered.
67
- // That's why we need to register another pair of event names.
68
- // The incoming events will be queued but never handled.
69
- // Without this piece of code below, you'll get the following JS error:
70
- // Unsupported top level event type "topOnGestureHandlerEvent" dispatched
71
- ...(isFabric() &&
72
- Platform.OS === 'android' &&
73
- customGHEventsConfigFabricAndroid),
74
- };
75
-
76
- // Add gesture specific events to genericDirectEventTypes object exported from UIManager
77
- // native module.
78
- // Once new event types are registered with react it is possible to dispatch these
79
- // events to all kind of native views.
80
- UIManagerAny.genericDirectEventTypes = {
81
- ...UIManagerAny.genericDirectEventTypes,
82
- ...customGHEventsConfig,
83
- };
84
-
85
- // amznmod_react - getViewManagerConfig and getConstants are both deprecated and return null.
86
- // Bypassing the call on kepler to avoid a misleading error log.
87
- // @ts-ignore Need PROJ*-337000 before using Platform typedef from react-native-kepler
88
- const UIManagerConstants = Platform.OS === "kepler" ? null :
89
- UIManagerAny.getViewManagerConfig?.('getConstants') ??
90
- UIManagerAny.getConstants?.();
91
-
92
- if (UIManagerConstants) {
93
- UIManagerConstants.genericDirectEventTypes = {
94
- ...UIManagerConstants.genericDirectEventTypes,
95
- ...customGHEventsConfig,
96
- };
97
- }
98
-
99
- // Wrap JS responder calls and notify gesture handler manager
100
- const {
101
- setJSResponder: oldSetJSResponder = () => {
102
- // no-op
103
- },
104
- clearJSResponder: oldClearJSResponder = () => {
105
- // no-op
106
- },
107
- } = UIManagerAny;
108
- UIManagerAny.setJSResponder = (tag: number, blockNativeResponder: boolean) => {
109
- RNGestureHandlerModule.handleSetJSResponder(tag, blockNativeResponder);
110
- oldSetJSResponder(tag, blockNativeResponder);
111
- };
112
- UIManagerAny.clearJSResponder = () => {
113
- RNGestureHandlerModule.handleClearJSResponder();
114
- oldClearJSResponder();
115
- };
116
-
117
- let allowTouches = true;
118
- const DEV_ON_ANDROID = __DEV__ && Platform.OS === 'android';
119
- // Toggled inspector blocks touch events in order to allow inspecting on Android
120
- // This needs to be a global variable in order to set initial state for `allowTouches` property in Handler component
121
- if (DEV_ON_ANDROID) {
122
- DeviceEventEmitter.addListener('toggleElementInspector', () => {
123
- allowTouches = !allowTouches;
124
- });
125
- }
126
-
127
- type HandlerProps<T extends Record<string, unknown>> = Readonly<
128
- React.PropsWithChildren<BaseGestureHandlerProps<T>>
129
- >;
130
- function hasUnresolvedRefs<T extends Record<string, unknown>>(
131
- props: HandlerProps<T>
132
- ) {
133
- // TODO(TS) - add type for extract arg
134
- const extract = (refs: any | any[]) => {
135
- if (!Array.isArray(refs)) {
136
- return refs && refs.current === null;
137
- }
138
- return refs.some((r) => r && r.current === null);
139
- };
140
- return extract(props['simultaneousHandlers']) || extract(props['waitFor']);
141
- }
142
-
143
- const stateToPropMappings = {
144
- [State.UNDETERMINED]: undefined,
145
- [State.BEGAN]: 'onBegan',
146
- [State.FAILED]: 'onFailed',
147
- [State.CANCELLED]: 'onCancelled',
148
- [State.ACTIVE]: 'onActivated',
149
- [State.END]: 'onEnded',
150
- } as const;
151
-
152
- type CreateHandlerArgs<HandlerPropsT extends Record<string, unknown>> =
153
- Readonly<{
154
- name: string;
155
- allowedProps: Readonly<Extract<keyof HandlerPropsT, string>[]>;
156
- config: Readonly<Record<string, unknown>>;
157
- transformProps?: (props: HandlerPropsT) => HandlerPropsT;
158
- customNativeProps?: Readonly<string[]>;
159
- }>;
160
-
161
- // TODO(TS) fix event types
162
- type InternalEventHandlers = {
163
- onGestureHandlerEvent?: (event: any) => void;
164
- onGestureHandlerStateChange?: (event: any) => void;
165
- };
166
-
167
- type AttachGestureHandlerWeb = (
168
- handlerTag: number,
169
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
170
- newView: any,
171
- _actionType: ActionType,
172
- propsRef: React.RefObject<unknown>
173
- ) => void;
174
-
175
- const UNRESOLVED_REFS_RETRY_LIMIT = 1;
176
-
177
- // TODO(TS) - make sure that BaseGestureHandlerProps doesn't need other generic parameter to work with custom properties.
178
- export default function createHandler<
179
- T extends BaseGestureHandlerProps<U>,
180
- U extends Record<string, unknown>,
181
- >({
182
- name,
183
- allowedProps = [],
184
- config = {},
185
- transformProps,
186
- customNativeProps = [],
187
- }: CreateHandlerArgs<T>): React.ComponentType<T & React.RefAttributes<any>> {
188
- interface HandlerState {
189
- allowTouches: boolean;
190
- }
191
- class Handler extends React.Component<
192
- T & InternalEventHandlers,
193
- HandlerState
194
- > {
195
- static displayName = name;
196
- static contextType = GestureHandlerRootViewContext;
197
-
198
- private handlerTag = -1;
199
- private config: Record<string, unknown>;
200
- private propsRef: React.MutableRefObject<unknown>;
201
- private isMountedRef: React.MutableRefObject<boolean | null>;
202
- private viewNode: any;
203
- private viewTag?: number;
204
- private inspectorToggleListener?: EmitterSubscription;
205
-
206
- constructor(props: T & InternalEventHandlers) {
207
- super(props);
208
- this.config = {};
209
- this.propsRef = React.createRef();
210
- this.isMountedRef = React.createRef();
211
- this.state = { allowTouches };
212
- if (props.id) {
213
- if (handlerIDToTag[props.id] !== undefined) {
214
- throw new Error(`Handler with ID "${props.id}" already registered`);
215
- }
216
- handlerIDToTag[props.id] = this.handlerTag;
217
- }
218
- }
219
-
220
- componentDidMount() {
221
- const props: HandlerProps<U> = this.props;
222
- this.isMountedRef.current = true;
223
-
224
- if (DEV_ON_ANDROID) {
225
- this.inspectorToggleListener = DeviceEventEmitter.addListener(
226
- 'toggleElementInspector',
227
- () => {
228
- this.setState((_) => ({ allowTouches }));
229
- this.update(UNRESOLVED_REFS_RETRY_LIMIT);
230
- }
231
- );
232
- }
233
- if (hasUnresolvedRefs(props)) {
234
- // If there are unresolved refs (e.g. ".current" has not yet been set)
235
- // passed as `simultaneousHandlers` or `waitFor`, we enqueue a call to
236
- // _update method that will try to update native handler props using
237
- // queueMicrotask. This makes it so update() function gets called after all
238
- // react components are mounted and we expect the missing ref object to
239
- // be resolved by then.
240
- ghQueueMicrotask(() => {
241
- this.update(UNRESOLVED_REFS_RETRY_LIMIT);
242
- });
243
- }
244
-
245
- this.createGestureHandler(
246
- filterConfig(
247
- transformProps ? transformProps(this.props) : this.props,
248
- [...allowedProps, ...customNativeProps],
249
- config
250
- )
251
- );
252
-
253
- if (!this.viewNode) {
254
- throw new Error(
255
- `[Gesture Handler] Failed to obtain view for ${Handler.displayName}. Note that old API doesn't support functional components.`
256
- );
257
- }
258
-
259
- this.attachGestureHandler(findNodeHandle(this.viewNode) as number); // TODO(TS) - check if this can be null
260
- }
261
-
262
- componentDidUpdate() {
263
- const viewTag = findNodeHandle(this.viewNode);
264
- if (this.viewTag !== viewTag) {
265
- this.attachGestureHandler(viewTag as number); // TODO(TS) - check interaction between _viewTag & findNodeHandle
266
- }
267
- this.update(UNRESOLVED_REFS_RETRY_LIMIT);
268
- }
269
-
270
- componentWillUnmount() {
271
- this.inspectorToggleListener?.remove();
272
- this.isMountedRef.current = false;
273
- if (Platform.OS !== 'web') {
274
- unregisterOldGestureHandler(this.handlerTag);
275
- }
276
- RNGestureHandlerModule.dropGestureHandler(this.handlerTag);
277
- scheduleFlushOperations();
278
- // We can't use this.props.id directly due to TS generic type narrowing bug, see https://github.com/microsoft/TypeScript/issues/13995 for more context
279
- const handlerID: string | undefined = this.props.id;
280
- if (handlerID) {
281
- // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
282
- delete handlerIDToTag[handlerID];
283
- }
284
-
285
- MountRegistry.gestureHandlerWillUnmount(this);
286
- }
287
-
288
- private onGestureHandlerEvent = (event: GestureEvent<U>) => {
289
- console.log("[SWM] onGestureHandlerEvent")
290
- if (event.nativeEvent.handlerTag === this.handlerTag) {
291
- if (typeof this.props.onGestureEvent === 'function') {
292
- this.props.onGestureEvent?.(event);
293
- }
294
- } else {
295
- this.props.onGestureHandlerEvent?.(event);
296
- }
297
- };
298
-
299
- // TODO(TS) - make sure this is right type for event
300
- private onGestureHandlerStateChange = (
301
- event: HandlerStateChangeEvent<U>
302
- ) => {
303
- console.log("[SWM] onGestureHanlderStateChange", event)
304
- if (event.nativeEvent.handlerTag === this.handlerTag) {
305
- if (typeof this.props.onHandlerStateChange === 'function') {
306
- this.props.onHandlerStateChange?.(event);
307
- }
308
-
309
- const state: ValueOf<typeof State> = event.nativeEvent.state;
310
- const stateEventName = stateToPropMappings[state];
311
- const eventHandler = stateEventName && this.props[stateEventName];
312
- if (eventHandler && typeof eventHandler === 'function') {
313
- eventHandler(event);
314
- }
315
- } else {
316
- this.props.onGestureHandlerStateChange?.(event);
317
- }
318
- };
319
-
320
- private refHandler = (node: any) => {
321
- this.viewNode = node;
322
-
323
- const child = React.Children.only(this.props.children);
324
- // @ts-ignore Since React 19 ref is accessible as standard prop
325
- // https://react.dev/blog/2024/04/25/react-19-upgrade-guide#deprecated-element-ref
326
- const ref = isReact19() ? (child as ReactElement).props?.ref : child?.ref;
327
-
328
- if (!ref) {
329
- return;
330
- }
331
-
332
- if (typeof ref === 'function') {
333
- ref(node);
334
- } else {
335
- ref.current = node;
336
- }
337
- };
338
-
339
- private createGestureHandler = (
340
- newConfig: Readonly<Record<string, unknown>>
341
- ) => {
342
- this.handlerTag = getNextHandlerTag();
343
- this.config = newConfig;
344
-
345
- RNGestureHandlerModule.createGestureHandler(
346
- name,
347
- this.handlerTag,
348
- newConfig
349
- );
350
- };
351
-
352
- private attachGestureHandler = (newViewTag: number) => {
353
- this.viewTag = newViewTag;
354
-
355
- if (Platform.OS === 'web') {
356
- // Typecast due to dynamic resolution, attachGestureHandler should have web version signature in this branch
357
- (
358
- RNGestureHandlerModule.attachGestureHandler as AttachGestureHandlerWeb
359
- )(
360
- this.handlerTag,
361
- newViewTag,
362
- ActionType.JS_FUNCTION_OLD_API, // ignored on web
363
- this.propsRef
364
- );
365
- } else {
366
- registerOldGestureHandler(this.handlerTag, {
367
- onGestureEvent: this.onGestureHandlerEvent,
368
- onGestureStateChange: this.onGestureHandlerStateChange,
369
- });
370
-
371
- const actionType = (() => {
372
- const onGestureEvent = this.props?.onGestureEvent;
373
- const isGestureHandlerWorklet =
374
- onGestureEvent &&
375
- ('current' in onGestureEvent ||
376
- 'workletEventHandler' in onGestureEvent);
377
- const onHandlerStateChange = this.props?.onHandlerStateChange;
378
- const isStateChangeHandlerWorklet =
379
- onHandlerStateChange &&
380
- ('current' in onHandlerStateChange ||
381
- 'workletEventHandler' in onHandlerStateChange);
382
- const isReanimatedHandler =
383
- isGestureHandlerWorklet || isStateChangeHandlerWorklet;
384
- if (isReanimatedHandler) {
385
- // Reanimated worklet
386
- console.log("[SWM] worklet")
387
- return ActionType.REANIMATED_WORKLET;
388
- } else if (onGestureEvent && '__isNative' in onGestureEvent) {
389
- // Animated.event with useNativeDriver: true
390
- console.log("[SWM] native animated event")
391
- return ActionType.NATIVE_ANIMATED_EVENT;
392
- } else {
393
- console.log("[SWM] old_api")
394
- // JS callback or Animated.event with useNativeDriver: false
395
- return ActionType.JS_FUNCTION_OLD_API;
396
- }
397
- })();
398
-
399
- RNGestureHandlerModule.attachGestureHandler(
400
- this.handlerTag,
401
- newViewTag,
402
- actionType
403
- );
404
- }
405
-
406
- scheduleFlushOperations();
407
-
408
- ghQueueMicrotask(() => {
409
- MountRegistry.gestureHandlerWillMount(this);
410
- });
411
- };
412
-
413
- private updateGestureHandler = (
414
- newConfig: Readonly<Record<string, unknown>>
415
- ) => {
416
- this.config = newConfig;
417
-
418
- RNGestureHandlerModule.updateGestureHandler(this.handlerTag, newConfig);
419
- scheduleFlushOperations();
420
- };
421
-
422
- private update(remainingTries: number) {
423
- if (!this.isMountedRef.current) {
424
- return;
425
- }
426
-
427
- const props: HandlerProps<U> = this.props;
428
-
429
- // When ref is set via a function i.e. `ref={(r) => refObject.current = r}` instead of
430
- // `ref={refObject}` it's possible that it won't be resolved in time. Seems like trying
431
- // again is easy enough fix.
432
- if (hasUnresolvedRefs(props) && remainingTries > 0) {
433
- ghQueueMicrotask(() => {
434
- this.update(remainingTries - 1);
435
- });
436
- } else {
437
- const newConfig = filterConfig(
438
- transformProps ? transformProps(this.props) : this.props,
439
- [...allowedProps, ...customNativeProps],
440
- config
441
- );
442
- if (!deepEqual(this.config, newConfig)) {
443
- this.updateGestureHandler(newConfig);
444
- }
445
- }
446
- }
447
-
448
- // eslint-disable-next-line @eslint-react/no-unused-class-component-members
449
- setNativeProps(updates: any) {
450
- const mergedProps = { ...this.props, ...updates };
451
- const newConfig = filterConfig(
452
- transformProps ? transformProps(mergedProps) : mergedProps,
453
- [...allowedProps, ...customNativeProps],
454
- config
455
- );
456
- this.updateGestureHandler(newConfig);
457
- }
458
-
459
- render() {
460
- if (__DEV__ && !this.context && !isTestEnv() && Platform.OS !== 'web') {
461
- throw new Error(
462
- name +
463
- ' 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.'
464
- );
465
- }
466
-
467
- let gestureEventHandler = this.onGestureHandlerEvent;
468
- // Another instance of https://github.com/microsoft/TypeScript/issues/13995
469
- type OnGestureEventHandlers = {
470
- onGestureEvent?: BaseGestureHandlerProps<U>['onGestureEvent'];
471
- onGestureHandlerEvent?: InternalEventHandlers['onGestureHandlerEvent'];
472
- };
473
- const { onGestureEvent, onGestureHandlerEvent }: OnGestureEventHandlers =
474
- this.props;
475
- if (onGestureEvent && typeof onGestureEvent !== 'function') {
476
- // If it's not a method it should be an native Animated.event
477
- // object. We set it directly as the handler for the view
478
- // In this case nested handlers are not going to be supported
479
- if (onGestureHandlerEvent) {
480
- throw new Error(
481
- 'Nesting touch handlers with native animated driver is not supported yet'
482
- );
483
- }
484
- gestureEventHandler = onGestureEvent;
485
- } else {
486
- if (
487
- onGestureHandlerEvent &&
488
- typeof onGestureHandlerEvent !== 'function'
489
- ) {
490
- throw new Error(
491
- 'Nesting touch handlers with native animated driver is not supported yet'
492
- );
493
- }
494
- }
495
-
496
- let gestureStateEventHandler = this.onGestureHandlerStateChange;
497
- // Another instance of https://github.com/microsoft/TypeScript/issues/13995
498
- type OnGestureStateChangeHandlers = {
499
- onHandlerStateChange?: BaseGestureHandlerProps<U>['onHandlerStateChange'];
500
- onGestureHandlerStateChange?: InternalEventHandlers['onGestureHandlerStateChange'];
501
- };
502
- const {
503
- onHandlerStateChange,
504
- onGestureHandlerStateChange,
505
- }: OnGestureStateChangeHandlers = this.props;
506
- if (onHandlerStateChange && typeof onHandlerStateChange !== 'function') {
507
- // If it's not a method it should be an native Animated.event
508
- // object. We set it directly as the handler for the view
509
- // In this case nested handlers are not going to be supported
510
- if (onGestureHandlerStateChange) {
511
- throw new Error(
512
- 'Nesting touch handlers with native animated driver is not supported yet'
513
- );
514
- }
515
- gestureStateEventHandler = onHandlerStateChange;
516
- } else {
517
- if (
518
- onGestureHandlerStateChange &&
519
- typeof onGestureHandlerStateChange !== 'function'
520
- ) {
521
- throw new Error(
522
- 'Nesting touch handlers with native animated driver is not supported yet'
523
- );
524
- }
525
- }
526
- const events = {
527
- onGestureHandlerEvent: this.state.allowTouches
528
- ? gestureEventHandler
529
- : undefined,
530
- onGestureHandlerStateChange: this.state.allowTouches
531
- ? gestureStateEventHandler
532
- : undefined,
533
- };
534
-
535
- this.propsRef.current = events;
536
-
537
- let child: any = null;
538
- try {
539
- child = React.Children.only(this.props.children);
540
- } catch (e) {
541
- throw new Error(
542
- tagMessage(
543
- `${name} got more than one view as a child. If you want the gesture to work on multiple views, wrap them with a common parent and attach the gesture to that view.`
544
- )
545
- );
546
- }
547
-
548
- let grandChildren = child.props.children;
549
- if (
550
- __DEV__ &&
551
- child.type &&
552
- (child.type === 'RNGestureHandlerButton' ||
553
- child.type.name === 'View' ||
554
- child.type.displayName === 'View')
555
- ) {
556
- grandChildren = React.Children.toArray(grandChildren);
557
- grandChildren.push(
558
- <PressabilityDebugView
559
- key="pressabilityDebugView"
560
- color="mediumspringgreen"
561
- hitSlop={child.props.hitSlop}
562
- />
563
- );
564
- }
565
-
566
- return React.cloneElement(
567
- child,
568
- {
569
- ref: this.refHandler,
570
- collapsable: false,
571
- ...(isTestEnv()
572
- ? {
573
- handlerType: name,
574
- handlerTag: this.handlerTag,
575
- enabled: this.props.enabled,
576
- }
577
- : {}),
578
- testID: this.props.testID ?? child.props.testID,
579
- ...events,
580
- },
581
- grandChildren
582
- );
583
- }
584
- }
585
- return Handler;
586
- }
@@ -1,89 +0,0 @@
1
- import * as React from 'react';
2
- import { useImperativeHandle, useRef } from 'react';
3
-
4
- import {
5
- NativeViewGestureHandler,
6
- NativeViewGestureHandlerProps,
7
- nativeViewProps,
8
- } from './NativeViewGestureHandler';
9
-
10
- /*
11
- * This array should consist of:
12
- * - All keys in propTypes from NativeGestureHandler
13
- * (and all keys in GestureHandlerPropTypes)
14
- * - 'onGestureHandlerEvent'
15
- * - 'onGestureHandlerStateChange'
16
- */
17
- const NATIVE_WRAPPER_PROPS_FILTER = [
18
- ...nativeViewProps,
19
- 'onGestureHandlerEvent',
20
- 'onGestureHandlerStateChange',
21
- ] as const;
22
-
23
- export default function createNativeWrapper<P>(
24
- Component: React.ComponentType<P>,
25
- config: Readonly<NativeViewGestureHandlerProps> = {}
26
- ) {
27
- const ComponentWrapper = React.forwardRef<
28
- React.ComponentType<any>,
29
- P & NativeViewGestureHandlerProps
30
- >((props, ref) => {
31
- // Filter out props that should be passed to gesture handler wrapper
32
- const { gestureHandlerProps, childProps } = Object.keys(props).reduce(
33
- (res, key) => {
34
- // TS being overly protective with it's types, see https://github.com/microsoft/TypeScript/issues/26255#issuecomment-458013731 for more info
35
- const allowedKeys: readonly string[] = NATIVE_WRAPPER_PROPS_FILTER;
36
- if (allowedKeys.includes(key)) {
37
- // @ts-ignore FIXME(TS)
38
- res.gestureHandlerProps[key] = props[key];
39
- } else {
40
- // @ts-ignore FIXME(TS)
41
- res.childProps[key] = props[key];
42
- }
43
- return res;
44
- },
45
- {
46
- gestureHandlerProps: { ...config }, // Watch out not to modify config
47
- childProps: {
48
- enabled: props.enabled,
49
- hitSlop: props.hitSlop,
50
- testID: props.testID,
51
- } as P,
52
- }
53
- );
54
- const _ref = useRef<React.ComponentType<P>>(null);
55
- const _gestureHandlerRef = useRef<React.ComponentType<P>>(null);
56
- useImperativeHandle(
57
- ref,
58
- // @ts-ignore TODO(TS) decide how nulls work in this context
59
- () => {
60
- const node = _gestureHandlerRef.current;
61
- // Add handlerTag for relations config
62
- if (_ref.current && node) {
63
- // @ts-ignore FIXME(TS) think about createHandler return type
64
- _ref.current.handlerTag = node.handlerTag;
65
- return _ref.current;
66
- }
67
- return null;
68
- },
69
- [_ref, _gestureHandlerRef]
70
- );
71
- return (
72
- <NativeViewGestureHandler
73
- {...gestureHandlerProps}
74
- ref={_gestureHandlerRef}>
75
- <Component {...childProps} ref={_ref} />
76
- </NativeViewGestureHandler>
77
- );
78
- });
79
-
80
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
81
- ComponentWrapper.displayName =
82
- Component?.displayName ||
83
- // @ts-ignore if render doesn't exist it will return undefined and go further
84
- Component?.render?.name ||
85
- (typeof Component === 'string' && Component) ||
86
- 'ComponentWrapper';
87
-
88
- return ComponentWrapper;
89
- }
@@ -1,2 +0,0 @@
1
- // @ts-ignore - its taken straight from RN
2
- export { customDirectEventTypes } from 'react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry';
@@ -1,5 +0,0 @@
1
- // customDirectEventTypes doesn't exist in react-native-web, therefore importing it
2
- // directly in createHandler.tsx would end in crash.
3
- const customDirectEventTypes = {};
4
-
5
- export { customDirectEventTypes };