@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,607 +0,0 @@
1
- import { useMemo, useCallback, useImperativeHandle, ForwardedRef } from 'react';
2
- import { LayoutChangeEvent, View, I18nManager, StyleSheet } from 'react-native';
3
- import Animated, {
4
- useSharedValue,
5
- interpolate,
6
- runOnJS,
7
- ReduceMotion,
8
- withSpring,
9
- useAnimatedRef,
10
- measure,
11
- runOnUI,
12
- useAnimatedStyle,
13
- } from 'react-native-reanimated';
14
- import {
15
- SwipeableProps,
16
- SwipeableMethods,
17
- SwipeDirection,
18
- } from './ReanimatedSwipeableProps';
19
- import { Gesture } from '../..';
20
- import {
21
- GestureStateChangeEvent,
22
- GestureUpdateEvent,
23
- } from '../../handlers/gestureHandlerCommon';
24
- import { PanGestureHandlerEventPayload } from '../../handlers/GestureHandlerEventPayload';
25
- import { GestureDetector } from '../../handlers/gestures/GestureDetector';
26
- import {
27
- applyRelationProp,
28
- RelationPropName,
29
- RelationPropType,
30
- } from '../utils';
31
-
32
- const DRAG_TOSS = 0.05;
33
-
34
- const DEFAULT_FRICTION = 1;
35
- const DEFAULT_OVERSHOOT_FRICTION = 1;
36
- const DEFAULT_DRAG_OFFSET = 10;
37
- const DEFAULT_ENABLE_TRACKING_TWO_FINGER_GESTURE = false;
38
-
39
- const Swipeable = (props: SwipeableProps) => {
40
- const {
41
- ref,
42
- leftThreshold,
43
- rightThreshold,
44
- enabled,
45
- containerStyle,
46
- childrenContainerStyle,
47
- animationOptions,
48
- overshootLeft,
49
- overshootRight,
50
- testID,
51
- children,
52
- enableTrackpadTwoFingerGesture = DEFAULT_ENABLE_TRACKING_TWO_FINGER_GESTURE,
53
- dragOffsetFromLeftEdge = DEFAULT_DRAG_OFFSET,
54
- dragOffsetFromRightEdge = DEFAULT_DRAG_OFFSET,
55
- friction = DEFAULT_FRICTION,
56
- overshootFriction = DEFAULT_OVERSHOOT_FRICTION,
57
- onSwipeableOpenStartDrag,
58
- onSwipeableCloseStartDrag,
59
- onSwipeableWillOpen,
60
- onSwipeableWillClose,
61
- onSwipeableOpen,
62
- onSwipeableClose,
63
- renderLeftActions,
64
- renderRightActions,
65
- simultaneousWithExternalGesture,
66
- requireExternalGestureToFail,
67
- blocksExternalGesture,
68
- hitSlop,
69
- ...remainingProps
70
- } = props;
71
-
72
- const relationProps = useMemo(
73
- () => ({
74
- simultaneousWithExternalGesture,
75
- requireExternalGestureToFail,
76
- blocksExternalGesture,
77
- }),
78
- [
79
- blocksExternalGesture,
80
- requireExternalGestureToFail,
81
- simultaneousWithExternalGesture,
82
- ]
83
- );
84
-
85
- const rowState = useSharedValue<number>(0);
86
-
87
- const userDrag = useSharedValue<number>(0);
88
-
89
- const appliedTranslation = useSharedValue<number>(0);
90
-
91
- const rowWidth = useSharedValue<number>(0);
92
- const leftWidth = useSharedValue<number>(0);
93
- const rightWidth = useSharedValue<number>(0);
94
-
95
- const showLeftProgress = useSharedValue<number>(0);
96
- const showRightProgress = useSharedValue<number>(0);
97
-
98
- const updateAnimatedEvent = useCallback(() => {
99
- 'worklet';
100
-
101
- const shouldOvershootLeft = overshootLeft ?? leftWidth.value > 0;
102
- const shouldOvershootRight = overshootRight ?? rightWidth.value > 0;
103
-
104
- const startOffset =
105
- rowState.value === 1
106
- ? leftWidth.value
107
- : rowState.value === -1
108
- ? -rightWidth.value
109
- : 0;
110
-
111
- const offsetDrag = userDrag.value / friction + startOffset;
112
-
113
- appliedTranslation.value = interpolate(
114
- offsetDrag,
115
- [
116
- -rightWidth.value - 1,
117
- -rightWidth.value,
118
- leftWidth.value,
119
- leftWidth.value + 1,
120
- ],
121
- [
122
- -rightWidth.value - (shouldOvershootRight ? 1 / overshootFriction : 0),
123
- -rightWidth.value,
124
- leftWidth.value,
125
- leftWidth.value + (shouldOvershootLeft ? 1 / overshootFriction : 0),
126
- ]
127
- );
128
-
129
- showLeftProgress.value =
130
- leftWidth.value > 0
131
- ? interpolate(
132
- appliedTranslation.value,
133
- [-1, 0, leftWidth.value],
134
- [0, 0, 1]
135
- )
136
- : 0;
137
-
138
- showRightProgress.value =
139
- rightWidth.value > 0
140
- ? interpolate(
141
- appliedTranslation.value,
142
- [-rightWidth.value, 0, 1],
143
- [1, 0, 0]
144
- )
145
- : 0;
146
- }, [
147
- appliedTranslation,
148
- friction,
149
- leftWidth,
150
- overshootFriction,
151
- rightWidth,
152
- rowState,
153
- showLeftProgress,
154
- showRightProgress,
155
- userDrag,
156
- overshootLeft,
157
- overshootRight,
158
- ]);
159
-
160
- const dispatchImmediateEvents = useCallback(
161
- (fromValue: number, toValue: number) => {
162
- 'worklet';
163
-
164
- if (onSwipeableWillOpen && toValue !== 0) {
165
- runOnJS(onSwipeableWillOpen)(
166
- toValue > 0 ? SwipeDirection.RIGHT : SwipeDirection.LEFT
167
- );
168
- }
169
-
170
- if (onSwipeableWillClose && toValue === 0) {
171
- runOnJS(onSwipeableWillClose)(
172
- fromValue > 0 ? SwipeDirection.LEFT : SwipeDirection.RIGHT
173
- );
174
- }
175
- },
176
- [onSwipeableWillClose, onSwipeableWillOpen]
177
- );
178
-
179
- const dispatchEndEvents = useCallback(
180
- (fromValue: number, toValue: number) => {
181
- 'worklet';
182
-
183
- if (onSwipeableOpen && toValue !== 0) {
184
- runOnJS(onSwipeableOpen)(
185
- toValue > 0 ? SwipeDirection.RIGHT : SwipeDirection.LEFT
186
- );
187
- }
188
-
189
- if (onSwipeableClose && toValue === 0) {
190
- runOnJS(onSwipeableClose)(
191
- fromValue > 0 ? SwipeDirection.LEFT : SwipeDirection.RIGHT
192
- );
193
- }
194
- },
195
- [onSwipeableClose, onSwipeableOpen]
196
- );
197
-
198
- const animateRow: (toValue: number, velocityX?: number) => void = useCallback(
199
- (toValue: number, velocityX?: number) => {
200
- 'worklet';
201
-
202
- const translationSpringConfig = {
203
- mass: 2,
204
- damping: 1000,
205
- stiffness: 700,
206
- velocity: velocityX,
207
- overshootClamping: true,
208
- reduceMotion: ReduceMotion.System,
209
- ...animationOptions,
210
- };
211
-
212
- const isClosing = toValue === 0;
213
- const moveToRight = isClosing ? rowState.value < 0 : toValue > 0;
214
-
215
- const usedWidth = isClosing
216
- ? moveToRight
217
- ? rightWidth.value
218
- : leftWidth.value
219
- : moveToRight
220
- ? leftWidth.value
221
- : rightWidth.value;
222
-
223
- const progressSpringConfig = {
224
- ...translationSpringConfig,
225
- restDisplacementThreshold: 0.01,
226
- restSpeedThreshold: 0.01,
227
- velocity:
228
- velocityX && interpolate(velocityX, [-usedWidth, usedWidth], [-1, 1]),
229
- };
230
-
231
- const frozenRowState = rowState.value;
232
-
233
- appliedTranslation.value = withSpring(
234
- toValue,
235
- translationSpringConfig,
236
- (isFinished) => {
237
- if (isFinished) {
238
- dispatchEndEvents(frozenRowState, toValue);
239
- }
240
- }
241
- );
242
-
243
- const progressTarget = toValue === 0 ? 0 : 1 * Math.sign(toValue);
244
-
245
- showLeftProgress.value = withSpring(
246
- Math.max(progressTarget, 0),
247
- progressSpringConfig
248
- );
249
-
250
- showRightProgress.value = withSpring(
251
- Math.max(-progressTarget, 0),
252
- progressSpringConfig
253
- );
254
-
255
- dispatchImmediateEvents(frozenRowState, toValue);
256
-
257
- rowState.value = Math.sign(toValue);
258
- },
259
- [
260
- rowState,
261
- animationOptions,
262
- appliedTranslation,
263
- showLeftProgress,
264
- leftWidth,
265
- showRightProgress,
266
- rightWidth,
267
- dispatchImmediateEvents,
268
- dispatchEndEvents,
269
- ]
270
- );
271
-
272
- const leftLayoutRef = useAnimatedRef();
273
- const leftWrapperLayoutRef = useAnimatedRef();
274
- const rightLayoutRef = useAnimatedRef();
275
-
276
- const updateElementWidths = useCallback(() => {
277
- 'worklet';
278
- const leftLayout = measure(leftLayoutRef);
279
- const leftWrapperLayout = measure(leftWrapperLayoutRef);
280
- const rightLayout = measure(rightLayoutRef);
281
- leftWidth.value =
282
- (leftLayout?.pageX ?? 0) - (leftWrapperLayout?.pageX ?? 0);
283
-
284
- rightWidth.value =
285
- rowWidth.value -
286
- (rightLayout?.pageX ?? rowWidth.value) +
287
- (leftWrapperLayout?.pageX ?? 0);
288
- }, [
289
- leftLayoutRef,
290
- leftWrapperLayoutRef,
291
- rightLayoutRef,
292
- leftWidth,
293
- rightWidth,
294
- rowWidth,
295
- ]);
296
-
297
- const swipeableMethods = useMemo<SwipeableMethods>(
298
- () => ({
299
- close() {
300
- 'worklet';
301
- if (_WORKLET) {
302
- animateRow(0);
303
- return;
304
- }
305
- runOnUI(() => {
306
- animateRow(0);
307
- })();
308
- },
309
- openLeft() {
310
- 'worklet';
311
- if (_WORKLET) {
312
- updateElementWidths();
313
- animateRow(leftWidth.value);
314
- return;
315
- }
316
- runOnUI(() => {
317
- updateElementWidths();
318
- animateRow(leftWidth.value);
319
- })();
320
- },
321
- openRight() {
322
- 'worklet';
323
- if (_WORKLET) {
324
- updateElementWidths();
325
- animateRow(-rightWidth.value);
326
- return;
327
- }
328
- runOnUI(() => {
329
- updateElementWidths();
330
- animateRow(-rightWidth.value);
331
- })();
332
- },
333
- reset() {
334
- 'worklet';
335
- userDrag.value = 0;
336
- showLeftProgress.value = 0;
337
- appliedTranslation.value = 0;
338
- rowState.value = 0;
339
- },
340
- }),
341
- [
342
- animateRow,
343
- updateElementWidths,
344
- leftWidth,
345
- rightWidth,
346
- userDrag,
347
- showLeftProgress,
348
- appliedTranslation,
349
- rowState,
350
- ]
351
- );
352
-
353
- const onRowLayout = useCallback(
354
- ({ nativeEvent }: LayoutChangeEvent) => {
355
- rowWidth.value = nativeEvent.layout.width;
356
- },
357
- [rowWidth]
358
- );
359
-
360
- // As stated in `Dimensions.get` docstring, this function should be called on every render
361
- // since dimensions may change (e.g. orientation change)
362
-
363
- const leftActionAnimation = useAnimatedStyle(() => {
364
- return {
365
- opacity: showLeftProgress.value === 0 ? 0 : 1,
366
- };
367
- });
368
-
369
- const leftElement = useCallback(
370
- () => (
371
- <Animated.View
372
- ref={leftWrapperLayoutRef}
373
- style={[styles.leftActions, leftActionAnimation]}>
374
- {renderLeftActions?.(
375
- showLeftProgress,
376
- appliedTranslation,
377
- swipeableMethods
378
- )}
379
- <Animated.View ref={leftLayoutRef} />
380
- </Animated.View>
381
- ),
382
- [
383
- appliedTranslation,
384
- leftActionAnimation,
385
- leftLayoutRef,
386
- leftWrapperLayoutRef,
387
- renderLeftActions,
388
- showLeftProgress,
389
- swipeableMethods,
390
- ]
391
- );
392
-
393
- const rightActionAnimation = useAnimatedStyle(() => {
394
- return {
395
- opacity: showRightProgress.value === 0 ? 0 : 1,
396
- };
397
- });
398
-
399
- const rightElement = useCallback(
400
- () => (
401
- <Animated.View style={[styles.rightActions, rightActionAnimation]}>
402
- {renderRightActions?.(
403
- showRightProgress,
404
- appliedTranslation,
405
- swipeableMethods
406
- )}
407
- <Animated.View ref={rightLayoutRef} />
408
- </Animated.View>
409
- ),
410
- [
411
- appliedTranslation,
412
- renderRightActions,
413
- rightActionAnimation,
414
- rightLayoutRef,
415
- showRightProgress,
416
- swipeableMethods,
417
- ]
418
- );
419
-
420
- const handleRelease = useCallback(
421
- (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => {
422
- 'worklet';
423
- const { velocityX } = event;
424
- userDrag.value = event.translationX;
425
-
426
- const leftThresholdProp = leftThreshold ?? leftWidth.value / 2;
427
- const rightThresholdProp = rightThreshold ?? rightWidth.value / 2;
428
-
429
- const translationX = (userDrag.value + DRAG_TOSS * velocityX) / friction;
430
-
431
- let toValue = 0;
432
-
433
- if (rowState.value === 0) {
434
- if (translationX > leftThresholdProp) {
435
- toValue = leftWidth.value;
436
- } else if (translationX < -rightThresholdProp) {
437
- toValue = -rightWidth.value;
438
- }
439
- } else if (rowState.value === 1) {
440
- // Swiped to left
441
- if (translationX > -leftThresholdProp) {
442
- toValue = leftWidth.value;
443
- }
444
- } else {
445
- // Swiped to right
446
- if (translationX < rightThresholdProp) {
447
- toValue = -rightWidth.value;
448
- }
449
- }
450
-
451
- animateRow(toValue, velocityX / friction);
452
- },
453
- [
454
- animateRow,
455
- friction,
456
- leftThreshold,
457
- leftWidth,
458
- rightThreshold,
459
- rightWidth,
460
- rowState,
461
- userDrag,
462
- ]
463
- );
464
-
465
- const close = useCallback(() => {
466
- 'worklet';
467
- animateRow(0);
468
- }, [animateRow]);
469
-
470
- const dragStarted = useSharedValue<boolean>(false);
471
-
472
- const tapGesture = useMemo(() => {
473
- const tap = Gesture.Tap()
474
- .shouldCancelWhenOutside(true)
475
- .onStart(() => {
476
- if (rowState.value !== 0) {
477
- close();
478
- }
479
- });
480
-
481
- Object.entries(relationProps).forEach(([relationName, relation]) => {
482
- applyRelationProp(
483
- tap,
484
- relationName as RelationPropName,
485
- relation as RelationPropType
486
- );
487
- });
488
-
489
- return tap;
490
- }, [close, relationProps, rowState]);
491
-
492
- const panGesture = useMemo(() => {
493
- const pan = Gesture.Pan()
494
- .enabled(enabled !== false)
495
- .enableTrackpadTwoFingerGesture(enableTrackpadTwoFingerGesture)
496
- .activeOffsetX([-dragOffsetFromRightEdge, dragOffsetFromLeftEdge])
497
- .onStart(updateElementWidths)
498
- .onUpdate((event: GestureUpdateEvent<PanGestureHandlerEventPayload>) => {
499
- userDrag.value = event.translationX;
500
-
501
- const direction =
502
- rowState.value === -1
503
- ? SwipeDirection.RIGHT
504
- : rowState.value === 1
505
- ? SwipeDirection.LEFT
506
- : event.translationX > 0
507
- ? SwipeDirection.RIGHT
508
- : SwipeDirection.LEFT;
509
-
510
- if (!dragStarted.value) {
511
- dragStarted.value = true;
512
- if (rowState.value === 0 && onSwipeableOpenStartDrag) {
513
- runOnJS(onSwipeableOpenStartDrag)(direction);
514
- } else if (onSwipeableCloseStartDrag) {
515
- runOnJS(onSwipeableCloseStartDrag)(direction);
516
- }
517
- }
518
-
519
- updateAnimatedEvent();
520
- })
521
- .onEnd(
522
- (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => {
523
- handleRelease(event);
524
- }
525
- )
526
- .onFinalize(() => {
527
- dragStarted.value = false;
528
- });
529
-
530
- Object.entries(relationProps).forEach(([relationName, relation]) => {
531
- applyRelationProp(
532
- pan,
533
- relationName as RelationPropName,
534
- relation as RelationPropType
535
- );
536
- });
537
-
538
- return pan;
539
- }, [
540
- enabled,
541
- enableTrackpadTwoFingerGesture,
542
- dragOffsetFromRightEdge,
543
- dragOffsetFromLeftEdge,
544
- updateElementWidths,
545
- relationProps,
546
- userDrag,
547
- rowState,
548
- dragStarted,
549
- updateAnimatedEvent,
550
- onSwipeableOpenStartDrag,
551
- onSwipeableCloseStartDrag,
552
- handleRelease,
553
- ]);
554
-
555
- useImperativeHandle(ref, () => swipeableMethods, [swipeableMethods]);
556
-
557
- const animatedStyle = useAnimatedStyle(
558
- () => ({
559
- transform: [{ translateX: appliedTranslation.value }],
560
- pointerEvents: rowState.value === 0 ? 'auto' : 'box-only',
561
- }),
562
- [appliedTranslation, rowState]
563
- );
564
-
565
- const swipeableComponent = (
566
- <GestureDetector gesture={panGesture} touchAction="pan-y">
567
- <Animated.View
568
- {...remainingProps}
569
- onLayout={onRowLayout}
570
- hitSlop={hitSlop ?? undefined}
571
- style={[styles.container, containerStyle]}>
572
- {leftElement()}
573
- {rightElement()}
574
- <GestureDetector gesture={tapGesture} touchAction="pan-y">
575
- <Animated.View style={[animatedStyle, childrenContainerStyle]}>
576
- {children}
577
- </Animated.View>
578
- </GestureDetector>
579
- </Animated.View>
580
- </GestureDetector>
581
- );
582
-
583
- return testID ? (
584
- <View testID={testID}>{swipeableComponent}</View>
585
- ) : (
586
- swipeableComponent
587
- );
588
- };
589
-
590
- export default Swipeable;
591
- export type SwipeableRef = ForwardedRef<SwipeableMethods>;
592
-
593
- const styles = StyleSheet.create({
594
- container: {
595
- overflow: 'hidden',
596
- },
597
- leftActions: {
598
- ...StyleSheet.absoluteFillObject,
599
- flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',
600
- overflow: 'hidden',
601
- },
602
- rightActions: {
603
- ...StyleSheet.absoluteFillObject,
604
- flexDirection: I18nManager.isRTL ? 'row' : 'row-reverse',
605
- overflow: 'hidden',
606
- },
607
- });