react-native-gesture-handler 2.27.1 → 2.28.0

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 (426) hide show
  1. package/RNGestureHandler.podspec +3 -2
  2. package/ReanimatedSwipeable/package.json +4 -4
  3. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +14 -8
  4. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +10 -5
  5. package/android/src/main/jni/CMakeLists.txt +5 -0
  6. package/android/src/main/jni/cpp-adapter.cpp +6 -0
  7. package/apple/RNGestureHandler.h +4 -0
  8. package/apple/RNGestureHandler.mm +41 -6
  9. package/apple/RNGestureHandlerModule.mm +5 -0
  10. package/jestSetup.js +22 -3
  11. package/lib/commonjs/components/Pressable/Pressable.js +12 -21
  12. package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
  13. package/lib/commonjs/components/Pressable/StateMachine.js +8 -2
  14. package/lib/commonjs/components/Pressable/StateMachine.js.map +1 -1
  15. package/lib/commonjs/components/Pressable/stateDefinitions.js +22 -23
  16. package/lib/commonjs/components/Pressable/stateDefinitions.js.map +1 -1
  17. package/lib/commonjs/components/{ReanimatedSwipeable.js → ReanimatedSwipeable/ReanimatedSwipeable.js} +30 -39
  18. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -0
  19. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +12 -0
  20. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js.map +1 -0
  21. package/lib/commonjs/components/ReanimatedSwipeable/index.js +21 -0
  22. package/lib/commonjs/components/ReanimatedSwipeable/index.js.map +1 -0
  23. package/lib/commonjs/components/gestureHandlerRootHOC.js +4 -1
  24. package/lib/commonjs/components/gestureHandlerRootHOC.js.map +1 -1
  25. package/lib/commonjs/handlers/createHandler.js +1 -1
  26. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  27. package/lib/commonjs/handlers/gestures/GestureDetector/index.js +1 -1
  28. package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
  29. package/lib/commonjs/mocks/Pressable.js +13 -0
  30. package/lib/commonjs/mocks/Pressable.js.map +1 -0
  31. package/lib/commonjs/{mocks.js → mocks/mocks.js} +8 -11
  32. package/lib/commonjs/mocks/mocks.js.map +1 -0
  33. package/lib/commonjs/web/handlers/GestureHandler.js +5 -2
  34. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  35. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +0 -5
  36. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  37. package/lib/commonjs/web/tools/KeyboardEventManager.js +34 -8
  38. package/lib/commonjs/web/tools/KeyboardEventManager.js.map +1 -1
  39. package/lib/module/components/Pressable/Pressable.js +14 -23
  40. package/lib/module/components/Pressable/Pressable.js.map +1 -1
  41. package/lib/module/components/Pressable/StateMachine.js +8 -2
  42. package/lib/module/components/Pressable/StateMachine.js.map +1 -1
  43. package/lib/module/components/Pressable/stateDefinitions.js +21 -22
  44. package/lib/module/components/Pressable/stateDefinitions.js.map +1 -1
  45. package/lib/module/components/{ReanimatedSwipeable.js → ReanimatedSwipeable/ReanimatedSwipeable.js} +24 -33
  46. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -0
  47. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +8 -0
  48. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js.map +1 -0
  49. package/lib/module/components/ReanimatedSwipeable/index.js +5 -0
  50. package/lib/module/components/ReanimatedSwipeable/index.js.map +1 -0
  51. package/lib/module/components/gestureHandlerRootHOC.js +5 -0
  52. package/lib/module/components/gestureHandlerRootHOC.js.map +1 -1
  53. package/lib/module/handlers/createHandler.js +1 -1
  54. package/lib/module/handlers/createHandler.js.map +1 -1
  55. package/lib/module/handlers/gestures/GestureDetector/index.js +1 -1
  56. package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
  57. package/lib/module/mocks/Pressable.js +4 -0
  58. package/lib/module/mocks/Pressable.js.map +1 -0
  59. package/lib/module/{mocks.js → mocks/mocks.js} +7 -11
  60. package/lib/module/mocks/mocks.js.map +1 -0
  61. package/lib/module/web/handlers/GestureHandler.js +5 -2
  62. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  63. package/lib/module/web/tools/GestureHandlerWebDelegate.js +0 -5
  64. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  65. package/lib/module/web/tools/KeyboardEventManager.js +34 -8
  66. package/lib/module/web/tools/KeyboardEventManager.js.map +1 -1
  67. package/lib/typescript/ActionType.d.ts +1 -0
  68. package/lib/typescript/Directions.d.ts +1 -0
  69. package/lib/typescript/EnableNewWebImplementation.d.ts +1 -0
  70. package/lib/typescript/GestureHandlerRootViewContext.d.ts +1 -0
  71. package/lib/typescript/PlatformConstants.d.ts +1 -0
  72. package/lib/typescript/PlatformConstants.web.d.ts +1 -0
  73. package/lib/typescript/PointerType.d.ts +1 -0
  74. package/lib/typescript/RNGestureHandlerModule.d.ts +1 -0
  75. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -0
  76. package/lib/typescript/RNGestureHandlerModule.windows.d.ts +1 -0
  77. package/lib/typescript/RNRenderer.d.ts +1 -0
  78. package/lib/typescript/RNRenderer.web.d.ts +1 -0
  79. package/lib/typescript/State.d.ts +1 -0
  80. package/lib/typescript/TouchEventType.d.ts +1 -0
  81. package/lib/typescript/components/DrawerLayout.d.ts +1 -0
  82. package/lib/typescript/components/GestureButtons.d.ts +1 -0
  83. package/lib/typescript/components/GestureButtonsProps.d.ts +10 -1
  84. package/lib/typescript/components/GestureButtonsProps.d.ts.map +1 -1
  85. package/lib/typescript/components/GestureComponents.d.ts +1 -0
  86. package/lib/typescript/components/GestureComponents.web.d.ts +1 -0
  87. package/lib/typescript/components/GestureHandlerButton.d.ts +1 -0
  88. package/lib/typescript/components/GestureHandlerButton.web.d.ts +1 -0
  89. package/lib/typescript/components/GestureHandlerRootView.android.d.ts +1 -0
  90. package/lib/typescript/components/GestureHandlerRootView.d.ts +1 -0
  91. package/lib/typescript/components/GestureHandlerRootView.web.d.ts +1 -0
  92. package/lib/typescript/components/Pressable/Pressable.d.ts +1 -0
  93. package/lib/typescript/components/Pressable/Pressable.d.ts.map +1 -1
  94. package/lib/typescript/components/Pressable/PressableProps.d.ts +3 -4
  95. package/lib/typescript/components/Pressable/PressableProps.d.ts.map +1 -1
  96. package/lib/typescript/components/Pressable/StateMachine.d.ts +4 -2
  97. package/lib/typescript/components/Pressable/StateMachine.d.ts.map +1 -1
  98. package/lib/typescript/components/Pressable/index.d.ts +1 -0
  99. package/lib/typescript/components/Pressable/stateDefinitions.d.ts +3 -2
  100. package/lib/typescript/components/Pressable/stateDefinitions.d.ts.map +1 -1
  101. package/lib/typescript/components/Pressable/utils.d.ts +1 -0
  102. package/lib/typescript/components/ReanimatedDrawerLayout.d.ts +1 -0
  103. package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts +6 -0
  104. package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts.map +1 -0
  105. package/lib/typescript/components/{ReanimatedSwipeable.d.ts → ReanimatedSwipeable/ReanimatedSwipeableProps.d.ts} +10 -7
  106. package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeableProps.d.ts.map +1 -0
  107. package/lib/typescript/components/ReanimatedSwipeable/index.d.ts +3 -0
  108. package/lib/typescript/components/ReanimatedSwipeable/index.d.ts.map +1 -0
  109. package/lib/typescript/components/Swipeable.d.ts +1 -0
  110. package/lib/typescript/components/Text.d.ts +1 -0
  111. package/lib/typescript/components/gestureHandlerRootHOC.d.ts +5 -0
  112. package/lib/typescript/components/gestureHandlerRootHOC.d.ts.map +1 -1
  113. package/lib/typescript/components/touchables/ExtraButtonProps.d.ts +1 -0
  114. package/lib/typescript/components/touchables/GenericTouchable.d.ts +1 -0
  115. package/lib/typescript/components/touchables/GenericTouchableProps.d.ts +1 -0
  116. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +1 -0
  117. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +1 -0
  118. package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +1 -0
  119. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +1 -0
  120. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +1 -0
  121. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +1 -0
  122. package/lib/typescript/components/touchables/index.d.ts +1 -0
  123. package/lib/typescript/components/utils.d.ts +1 -0
  124. package/lib/typescript/findNodeHandle.d.ts +1 -0
  125. package/lib/typescript/findNodeHandle.web.d.ts +1 -0
  126. package/lib/typescript/getShadowNodeFromRef.d.ts +1 -0
  127. package/lib/typescript/getShadowNodeFromRef.web.d.ts +1 -0
  128. package/lib/typescript/ghQueueMicrotask.d.ts +1 -0
  129. package/lib/typescript/handlers/FlingGestureHandler.d.ts +1 -0
  130. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +1 -0
  131. package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts +1 -0
  132. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +1 -0
  133. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -0
  134. package/lib/typescript/handlers/PanGestureHandler.d.ts +1 -0
  135. package/lib/typescript/handlers/PinchGestureHandler.d.ts +1 -0
  136. package/lib/typescript/handlers/PressabilityDebugView.d.ts +1 -0
  137. package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +1 -0
  138. package/lib/typescript/handlers/RotationGestureHandler.d.ts +1 -0
  139. package/lib/typescript/handlers/TapGestureHandler.d.ts +1 -0
  140. package/lib/typescript/handlers/createHandler.d.ts +1 -0
  141. package/lib/typescript/handlers/createNativeWrapper.d.ts +1 -0
  142. package/lib/typescript/handlers/customDirectEventTypes.d.ts +1 -0
  143. package/lib/typescript/handlers/customDirectEventTypes.web.d.ts +1 -0
  144. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +1 -0
  145. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +1 -0
  146. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.d.ts +1 -0
  147. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.d.ts +1 -0
  148. package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.d.ts +1 -0
  149. package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.d.ts +1 -0
  150. package/lib/typescript/handlers/gestures/GestureDetector/index.d.ts +1 -0
  151. package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.d.ts +1 -0
  152. package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts +1 -0
  153. package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.d.ts +1 -0
  154. package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.d.ts +1 -0
  155. package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.d.ts +1 -0
  156. package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.d.ts +1 -0
  157. package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.d.ts +1 -0
  158. package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +1 -0
  159. package/lib/typescript/handlers/gestures/eventReceiver.d.ts +1 -0
  160. package/lib/typescript/handlers/gestures/flingGesture.d.ts +1 -0
  161. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +1 -0
  162. package/lib/typescript/handlers/gestures/gesture.d.ts +1 -0
  163. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +1 -0
  164. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +1 -0
  165. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +1 -0
  166. package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts +1 -0
  167. package/lib/typescript/handlers/gestures/hoverGesture.d.ts +1 -0
  168. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +1 -0
  169. package/lib/typescript/handlers/gestures/manualGesture.d.ts +1 -0
  170. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +1 -0
  171. package/lib/typescript/handlers/gestures/panGesture.d.ts +1 -0
  172. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +1 -0
  173. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +1 -0
  174. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +1 -0
  175. package/lib/typescript/handlers/gestures/tapGesture.d.ts +1 -0
  176. package/lib/typescript/handlers/getNextHandlerTag.d.ts +1 -0
  177. package/lib/typescript/handlers/handlersRegistry.d.ts +1 -0
  178. package/lib/typescript/handlers/utils.d.ts +1 -0
  179. package/lib/typescript/index.d.ts +1 -0
  180. package/lib/typescript/init.d.ts +1 -0
  181. package/lib/typescript/jestUtils/index.d.ts +1 -0
  182. package/lib/typescript/jestUtils/jestUtils.d.ts +1 -0
  183. package/lib/typescript/mocks/Pressable.d.ts +2 -0
  184. package/lib/typescript/mocks/Pressable.d.ts.map +1 -0
  185. package/lib/typescript/{mocks.d.ts → mocks/mocks.d.ts} +5 -4
  186. package/lib/typescript/mocks/mocks.d.ts.map +1 -0
  187. package/lib/typescript/mountRegistry.d.ts +1 -0
  188. package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +1 -0
  189. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +1 -0
  190. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +1 -0
  191. package/lib/typescript/typeUtils.d.ts +1 -0
  192. package/lib/typescript/utils.d.ts +1 -0
  193. package/lib/typescript/web/Gestures.d.ts +1 -0
  194. package/lib/typescript/web/constants.d.ts +1 -0
  195. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +1 -0
  196. package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +1 -0
  197. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +1 -0
  198. package/lib/typescript/web/handlers/GestureHandler.d.ts +1 -0
  199. package/lib/typescript/web/handlers/GestureHandler.d.ts.map +1 -1
  200. package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +1 -0
  201. package/lib/typescript/web/handlers/IGestureHandler.d.ts +1 -0
  202. package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +1 -0
  203. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +1 -0
  204. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +1 -0
  205. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +1 -0
  206. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +1 -0
  207. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +1 -0
  208. package/lib/typescript/web/handlers/TapGestureHandler.d.ts +1 -0
  209. package/lib/typescript/web/interfaces.d.ts +1 -0
  210. package/lib/typescript/web/tools/CircularBuffer.d.ts +1 -0
  211. package/lib/typescript/web/tools/EventManager.d.ts +1 -0
  212. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +1 -0
  213. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +1 -0
  214. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +1 -0
  215. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts.map +1 -1
  216. package/lib/typescript/web/tools/InteractionManager.d.ts +1 -0
  217. package/lib/typescript/web/tools/KeyboardEventManager.d.ts +7 -3
  218. package/lib/typescript/web/tools/KeyboardEventManager.d.ts.map +1 -1
  219. package/lib/typescript/web/tools/LeastSquareSolver.d.ts +1 -0
  220. package/lib/typescript/web/tools/NodeManager.d.ts +1 -0
  221. package/lib/typescript/web/tools/PointerEventManager.d.ts +1 -0
  222. package/lib/typescript/web/tools/PointerTracker.d.ts +1 -0
  223. package/lib/typescript/web/tools/Vector.d.ts +1 -0
  224. package/lib/typescript/web/tools/VelocityTracker.d.ts +1 -0
  225. package/lib/typescript/web/tools/WheelEventManager.d.ts +1 -0
  226. package/lib/typescript/web/utils.d.ts +1 -0
  227. package/lib/typescript/web_hammer/DiscreteGestureHandler.d.ts +1 -0
  228. package/lib/typescript/web_hammer/DraggingGestureHandler.d.ts +1 -0
  229. package/lib/typescript/web_hammer/Errors.d.ts +1 -0
  230. package/lib/typescript/web_hammer/FlingGestureHandler.d.ts +1 -0
  231. package/lib/typescript/web_hammer/GestureHandler.d.ts +1 -0
  232. package/lib/typescript/web_hammer/IndiscreteGestureHandler.d.ts +1 -0
  233. package/lib/typescript/web_hammer/LongPressGestureHandler.d.ts +1 -0
  234. package/lib/typescript/web_hammer/NativeViewGestureHandler.d.ts +1 -0
  235. package/lib/typescript/web_hammer/NodeManager.d.ts +1 -0
  236. package/lib/typescript/web_hammer/PanGestureHandler.d.ts +1 -0
  237. package/lib/typescript/web_hammer/PinchGestureHandler.d.ts +1 -0
  238. package/lib/typescript/web_hammer/PressGestureHandler.d.ts +1 -0
  239. package/lib/typescript/web_hammer/RotationGestureHandler.d.ts +1 -0
  240. package/lib/typescript/web_hammer/TapGestureHandler.d.ts +1 -0
  241. package/lib/typescript/web_hammer/constants.d.ts +1 -0
  242. package/lib/typescript/web_hammer/utils.d.ts +1 -0
  243. package/package.json +4 -3
  244. package/scripts/gesture_handler_utils.rb +25 -0
  245. package/src/components/GestureButtonsProps.ts +10 -0
  246. package/src/components/Pressable/Pressable.tsx +20 -31
  247. package/src/components/Pressable/PressableProps.tsx +2 -4
  248. package/src/components/Pressable/StateMachine.tsx +12 -4
  249. package/src/components/Pressable/stateDefinitions.ts +23 -23
  250. package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +603 -0
  251. package/src/components/ReanimatedSwipeable/ReanimatedSwipeableProps.ts +199 -0
  252. package/src/components/ReanimatedSwipeable/index.ts +6 -0
  253. package/src/components/gestureHandlerRootHOC.tsx +4 -0
  254. package/src/handlers/createHandler.tsx +1 -1
  255. package/src/handlers/gestures/GestureDetector/index.tsx +1 -1
  256. package/src/mocks/Pressable.tsx +1 -0
  257. package/src/{mocks.tsx → mocks/mocks.tsx} +7 -11
  258. package/src/web/handlers/GestureHandler.ts +8 -3
  259. package/src/web/tools/GestureHandlerWebDelegate.ts +0 -5
  260. package/src/web/tools/KeyboardEventManager.ts +50 -8
  261. package/lib/commonjs/components/ReanimatedSwipeable.js.map +0 -1
  262. package/lib/commonjs/mocks.js.map +0 -1
  263. package/lib/module/components/ReanimatedSwipeable.js.map +0 -1
  264. package/lib/module/mocks.js.map +0 -1
  265. package/lib/typescript/ActionType.js +0 -6
  266. package/lib/typescript/Directions.js +0 -18
  267. package/lib/typescript/EnableNewWebImplementation.js +0 -30
  268. package/lib/typescript/GestureHandlerRootViewContext.js +0 -2
  269. package/lib/typescript/PlatformConstants.js +0 -3
  270. package/lib/typescript/PlatformConstants.web.js +0 -5
  271. package/lib/typescript/PointerType.js +0 -8
  272. package/lib/typescript/RNGestureHandlerModule.js +0 -4
  273. package/lib/typescript/RNGestureHandlerModule.web.js +0 -92
  274. package/lib/typescript/RNGestureHandlerModule.windows.js +0 -47
  275. package/lib/typescript/RNRenderer.js +0 -3
  276. package/lib/typescript/RNRenderer.web.js +0 -3
  277. package/lib/typescript/State.js +0 -9
  278. package/lib/typescript/TouchEventType.js +0 -7
  279. package/lib/typescript/components/DrawerLayout.js +0 -417
  280. package/lib/typescript/components/GestureButtons.js +0 -165
  281. package/lib/typescript/components/GestureButtonsProps.js +0 -1
  282. package/lib/typescript/components/GestureComponents.js +0 -67
  283. package/lib/typescript/components/GestureComponents.web.js +0 -21
  284. package/lib/typescript/components/GestureHandlerButton.js +0 -2
  285. package/lib/typescript/components/GestureHandlerButton.web.js +0 -3
  286. package/lib/typescript/components/GestureHandlerRootView.android.js +0 -17
  287. package/lib/typescript/components/GestureHandlerRootView.js +0 -16
  288. package/lib/typescript/components/GestureHandlerRootView.web.js +0 -11
  289. package/lib/typescript/components/Pressable/Pressable.js +0 -231
  290. package/lib/typescript/components/Pressable/PressableProps.js +0 -1
  291. package/lib/typescript/components/Pressable/StateMachine.js +0 -34
  292. package/lib/typescript/components/Pressable/index.js +0 -1
  293. package/lib/typescript/components/Pressable/stateDefinitions.js +0 -104
  294. package/lib/typescript/components/Pressable/utils.js +0 -80
  295. package/lib/typescript/components/ReanimatedDrawerLayout.js +0 -364
  296. package/lib/typescript/components/ReanimatedSwipeable.d.ts.map +0 -1
  297. package/lib/typescript/components/ReanimatedSwipeable.js +0 -400
  298. package/lib/typescript/components/Swipeable.js +0 -287
  299. package/lib/typescript/components/Text.js +0 -38
  300. package/lib/typescript/components/gestureHandlerRootHOC.js +0 -18
  301. package/lib/typescript/components/touchables/ExtraButtonProps.js +0 -1
  302. package/lib/typescript/components/touchables/GenericTouchable.js +0 -221
  303. package/lib/typescript/components/touchables/GenericTouchableProps.js +0 -1
  304. package/lib/typescript/components/touchables/TouchableHighlight.js +0 -75
  305. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.js +0 -65
  306. package/lib/typescript/components/touchables/TouchableNativeFeedback.js +0 -6
  307. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.js +0 -1
  308. package/lib/typescript/components/touchables/TouchableOpacity.js +0 -51
  309. package/lib/typescript/components/touchables/TouchableWithoutFeedback.js +0 -10
  310. package/lib/typescript/components/touchables/index.js +0 -4
  311. package/lib/typescript/components/utils.js +0 -11
  312. package/lib/typescript/findNodeHandle.js +0 -2
  313. package/lib/typescript/findNodeHandle.web.js +0 -31
  314. package/lib/typescript/getShadowNodeFromRef.js +0 -45
  315. package/lib/typescript/getShadowNodeFromRef.web.js +0 -7
  316. package/lib/typescript/ghQueueMicrotask.js +0 -7
  317. package/lib/typescript/handlers/FlingGestureHandler.js +0 -19
  318. package/lib/typescript/handlers/ForceTouchGestureHandler.js +0 -37
  319. package/lib/typescript/handlers/GestureHandlerEventPayload.js +0 -1
  320. package/lib/typescript/handlers/LongPressGestureHandler.js +0 -22
  321. package/lib/typescript/handlers/NativeViewGestureHandler.js +0 -20
  322. package/lib/typescript/handlers/PanGestureHandler.js +0 -128
  323. package/lib/typescript/handlers/PinchGestureHandler.js +0 -12
  324. package/lib/typescript/handlers/PressabilityDebugView.js +0 -2
  325. package/lib/typescript/handlers/PressabilityDebugView.web.js +0 -4
  326. package/lib/typescript/handlers/RotationGestureHandler.js +0 -12
  327. package/lib/typescript/handlers/TapGestureHandler.js +0 -26
  328. package/lib/typescript/handlers/createHandler.js +0 -375
  329. package/lib/typescript/handlers/createNativeWrapper.js +0 -67
  330. package/lib/typescript/handlers/customDirectEventTypes.js +0 -2
  331. package/lib/typescript/handlers/customDirectEventTypes.web.js +0 -4
  332. package/lib/typescript/handlers/gestureHandlerCommon.js +0 -42
  333. package/lib/typescript/handlers/gestureHandlerTypesCompat.js +0 -1
  334. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.js +0 -22
  335. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.js +0 -24
  336. package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.js +0 -55
  337. package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.js +0 -12
  338. package/lib/typescript/handlers/gestures/GestureDetector/index.js +0 -114
  339. package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.js +0 -18
  340. package/lib/typescript/handlers/gestures/GestureDetector/types.js +0 -1
  341. package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.js +0 -54
  342. package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -137
  343. package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -48
  344. package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.js +0 -35
  345. package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -32
  346. package/lib/typescript/handlers/gestures/GestureDetector/utils.js +0 -140
  347. package/lib/typescript/handlers/gestures/eventReceiver.js +0 -105
  348. package/lib/typescript/handlers/gestures/flingGesture.js +0 -27
  349. package/lib/typescript/handlers/gestures/forceTouchGesture.js +0 -57
  350. package/lib/typescript/handlers/gestures/gesture.js +0 -303
  351. package/lib/typescript/handlers/gestures/gestureComposition.js +0 -78
  352. package/lib/typescript/handlers/gestures/gestureObjects.js +0 -125
  353. package/lib/typescript/handlers/gestures/gestureStateManager.js +0 -60
  354. package/lib/typescript/handlers/gestures/gestureStateManager.web.js +0 -19
  355. package/lib/typescript/handlers/gestures/hoverGesture.js +0 -45
  356. package/lib/typescript/handlers/gestures/longPressGesture.js +0 -35
  357. package/lib/typescript/handlers/gestures/manualGesture.js +0 -16
  358. package/lib/typescript/handlers/gestures/nativeGesture.js +0 -24
  359. package/lib/typescript/handlers/gestures/panGesture.js +0 -181
  360. package/lib/typescript/handlers/gestures/pinchGesture.js +0 -27
  361. package/lib/typescript/handlers/gestures/reanimatedWrapper.js +0 -23
  362. package/lib/typescript/handlers/gestures/rotationGesture.js +0 -27
  363. package/lib/typescript/handlers/gestures/tapGesture.js +0 -72
  364. package/lib/typescript/handlers/getNextHandlerTag.js +0 -4
  365. package/lib/typescript/handlers/handlersRegistry.js +0 -36
  366. package/lib/typescript/handlers/utils.js +0 -58
  367. package/lib/typescript/index.js +0 -28
  368. package/lib/typescript/init.js +0 -15
  369. package/lib/typescript/jestUtils/index.js +0 -1
  370. package/lib/typescript/jestUtils/jestUtils.js +0 -290
  371. package/lib/typescript/mocks.d.ts.map +0 -1
  372. package/lib/typescript/mocks.js +0 -59
  373. package/lib/typescript/mountRegistry.js +0 -29
  374. package/lib/typescript/specs/NativeRNGestureHandlerModule.js +0 -2
  375. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.js +0 -2
  376. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.js +0 -2
  377. package/lib/typescript/typeUtils.js +0 -1
  378. package/lib/typescript/utils.js +0 -80
  379. package/lib/typescript/web/Gestures.js +0 -38
  380. package/lib/typescript/web/constants.js +0 -2
  381. package/lib/typescript/web/detectors/RotationGestureDetector.js +0 -122
  382. package/lib/typescript/web/detectors/ScaleGestureDetector.js +0 -117
  383. package/lib/typescript/web/handlers/FlingGestureHandler.js +0 -133
  384. package/lib/typescript/web/handlers/GestureHandler.js +0 -656
  385. package/lib/typescript/web/handlers/HoverGestureHandler.js +0 -37
  386. package/lib/typescript/web/handlers/IGestureHandler.js +0 -1
  387. package/lib/typescript/web/handlers/LongPressGestureHandler.js +0 -136
  388. package/lib/typescript/web/handlers/ManualGestureHandler.js +0 -29
  389. package/lib/typescript/web/handlers/NativeViewGestureHandler.js +0 -133
  390. package/lib/typescript/web/handlers/PanGestureHandler.js +0 -420
  391. package/lib/typescript/web/handlers/PinchGestureHandler.js +0 -117
  392. package/lib/typescript/web/handlers/RotationGestureHandler.js +0 -122
  393. package/lib/typescript/web/handlers/TapGestureHandler.js +0 -202
  394. package/lib/typescript/web/interfaces.js +0 -25
  395. package/lib/typescript/web/tools/CircularBuffer.js +0 -37
  396. package/lib/typescript/web/tools/EventManager.js +0 -85
  397. package/lib/typescript/web/tools/GestureHandlerDelegate.js +0 -1
  398. package/lib/typescript/web/tools/GestureHandlerOrchestrator.js +0 -273
  399. package/lib/typescript/web/tools/GestureHandlerWebDelegate.js +0 -169
  400. package/lib/typescript/web/tools/InteractionManager.js +0 -91
  401. package/lib/typescript/web/tools/KeyboardEventManager.js +0 -73
  402. package/lib/typescript/web/tools/LeastSquareSolver.js +0 -147
  403. package/lib/typescript/web/tools/NodeManager.js +0 -28
  404. package/lib/typescript/web/tools/PointerEventManager.js +0 -179
  405. package/lib/typescript/web/tools/PointerTracker.js +0 -161
  406. package/lib/typescript/web/tools/Vector.js +0 -43
  407. package/lib/typescript/web/tools/VelocityTracker.js +0 -76
  408. package/lib/typescript/web/tools/WheelEventManager.js +0 -40
  409. package/lib/typescript/web/utils.js +0 -233
  410. package/lib/typescript/web_hammer/DiscreteGestureHandler.js +0 -48
  411. package/lib/typescript/web_hammer/DraggingGestureHandler.js +0 -25
  412. package/lib/typescript/web_hammer/Errors.js +0 -5
  413. package/lib/typescript/web_hammer/FlingGestureHandler.js +0 -119
  414. package/lib/typescript/web_hammer/GestureHandler.js +0 -469
  415. package/lib/typescript/web_hammer/IndiscreteGestureHandler.js +0 -26
  416. package/lib/typescript/web_hammer/LongPressGestureHandler.js +0 -46
  417. package/lib/typescript/web_hammer/NativeViewGestureHandler.js +0 -40
  418. package/lib/typescript/web_hammer/NodeManager.js +0 -28
  419. package/lib/typescript/web_hammer/PanGestureHandler.js +0 -151
  420. package/lib/typescript/web_hammer/PinchGestureHandler.js +0 -19
  421. package/lib/typescript/web_hammer/PressGestureHandler.js +0 -133
  422. package/lib/typescript/web_hammer/RotationGestureHandler.js +0 -20
  423. package/lib/typescript/web_hammer/TapGestureHandler.js +0 -142
  424. package/lib/typescript/web_hammer/constants.js +0 -42
  425. package/lib/typescript/web_hammer/utils.js +0 -15
  426. package/src/components/ReanimatedSwipeable.tsx +0 -811
@@ -1,104 +0,0 @@
1
- import { Platform } from 'react-native';
2
- import { PressableStateMachine } from './StateMachine';
3
- export var StateMachineEvent;
4
- (function (StateMachineEvent) {
5
- StateMachineEvent["NATIVE_BEGIN"] = "nativeBegin";
6
- StateMachineEvent["NATIVE_START"] = "nativeStart";
7
- StateMachineEvent["FINALIZE"] = "finalize";
8
- StateMachineEvent["LONG_PRESS_TOUCHES_DOWN"] = "longPressTouchesDown";
9
- })(StateMachineEvent || (StateMachineEvent = {}));
10
- function getAndroidStateMachine(handlePressIn, handlePressOut) {
11
- return new PressableStateMachine([
12
- {
13
- eventName: StateMachineEvent.NATIVE_BEGIN,
14
- },
15
- {
16
- eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
17
- callback: handlePressIn,
18
- },
19
- {
20
- eventName: StateMachineEvent.FINALIZE,
21
- callback: handlePressOut,
22
- },
23
- ]);
24
- }
25
- function getIosStateMachine(handlePressIn, handlePressOut) {
26
- return new PressableStateMachine([
27
- {
28
- eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
29
- },
30
- {
31
- eventName: StateMachineEvent.NATIVE_START,
32
- callback: handlePressIn,
33
- },
34
- {
35
- eventName: StateMachineEvent.FINALIZE,
36
- callback: handlePressOut,
37
- },
38
- ]);
39
- }
40
- function getWebStateMachine(handlePressIn, handlePressOut) {
41
- return new PressableStateMachine([
42
- {
43
- eventName: StateMachineEvent.NATIVE_BEGIN,
44
- },
45
- {
46
- eventName: StateMachineEvent.NATIVE_START,
47
- },
48
- {
49
- eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
50
- callback: handlePressIn,
51
- },
52
- {
53
- eventName: StateMachineEvent.FINALIZE,
54
- callback: handlePressOut,
55
- },
56
- ]);
57
- }
58
- function getMacosStateMachine(handlePressIn, handlePressOut) {
59
- return new PressableStateMachine([
60
- {
61
- eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
62
- },
63
- {
64
- eventName: StateMachineEvent.NATIVE_BEGIN,
65
- callback: handlePressIn,
66
- },
67
- {
68
- eventName: StateMachineEvent.NATIVE_START,
69
- },
70
- {
71
- eventName: StateMachineEvent.FINALIZE,
72
- callback: handlePressOut,
73
- },
74
- ]);
75
- }
76
- function getUniversalStateMachine(handlePressIn, handlePressOut) {
77
- return new PressableStateMachine([
78
- {
79
- eventName: StateMachineEvent.FINALIZE,
80
- callback: (event) => {
81
- handlePressIn(event);
82
- handlePressOut(event);
83
- },
84
- },
85
- ]);
86
- }
87
- export function getConfiguredStateMachine(handlePressIn, handlePressOut) {
88
- if (Platform.OS === 'android') {
89
- return getAndroidStateMachine(handlePressIn, handlePressOut);
90
- }
91
- else if (Platform.OS === 'ios') {
92
- return getIosStateMachine(handlePressIn, handlePressOut);
93
- }
94
- else if (Platform.OS === 'web') {
95
- return getWebStateMachine(handlePressIn, handlePressOut);
96
- }
97
- else if (Platform.OS === 'macos') {
98
- return getMacosStateMachine(handlePressIn, handlePressOut);
99
- }
100
- else {
101
- // Unknown platform - using minimal universal setup.
102
- return getUniversalStateMachine(handlePressIn, handlePressOut);
103
- }
104
- }
@@ -1,80 +0,0 @@
1
- const numberAsInset = (value) => ({
2
- left: value,
3
- right: value,
4
- top: value,
5
- bottom: value,
6
- });
7
- const addInsets = (a, b) => ({
8
- left: (a.left ?? 0) + (b.left ?? 0),
9
- right: (a.right ?? 0) + (b.right ?? 0),
10
- top: (a.top ?? 0) + (b.top ?? 0),
11
- bottom: (a.bottom ?? 0) + (b.bottom ?? 0),
12
- });
13
- const touchDataToPressEvent = (data, timestamp, targetId) => ({
14
- identifier: data.id,
15
- locationX: data.x,
16
- locationY: data.y,
17
- pageX: data.absoluteX,
18
- pageY: data.absoluteY,
19
- target: targetId,
20
- timestamp: timestamp,
21
- touches: [], // Always empty - legacy compatibility
22
- changedTouches: [], // Always empty - legacy compatibility
23
- });
24
- const gestureToPressEvent = (event, timestamp, targetId) => ({
25
- identifier: event.handlerTag,
26
- locationX: event.x,
27
- locationY: event.y,
28
- pageX: event.absoluteX,
29
- pageY: event.absoluteY,
30
- target: targetId,
31
- timestamp: timestamp,
32
- touches: [], // Always empty - legacy compatibility
33
- changedTouches: [], // Always empty - legacy compatibility
34
- });
35
- const isTouchWithinInset = (dimensions, inset, touch) => (touch?.locationX ?? 0) < (inset.right ?? 0) + dimensions.width &&
36
- (touch?.locationY ?? 0) < (inset.bottom ?? 0) + dimensions.height &&
37
- (touch?.locationX ?? 0) > -(inset.left ?? 0) &&
38
- (touch?.locationY ?? 0) > -(inset.top ?? 0);
39
- const gestureToPressableEvent = (event) => {
40
- const timestamp = Date.now();
41
- // As far as I can see, there isn't a conventional way of getting targetId with the data we get
42
- const targetId = 0;
43
- const pressEvent = gestureToPressEvent(event, timestamp, targetId);
44
- return {
45
- nativeEvent: {
46
- touches: [pressEvent],
47
- changedTouches: [pressEvent],
48
- identifier: pressEvent.identifier,
49
- locationX: event.x,
50
- locationY: event.y,
51
- pageX: event.absoluteX,
52
- pageY: event.absoluteY,
53
- target: targetId,
54
- timestamp: timestamp,
55
- force: undefined,
56
- },
57
- };
58
- };
59
- const gestureTouchToPressableEvent = (event) => {
60
- const timestamp = Date.now();
61
- // As far as I can see, there isn't a conventional way of getting targetId with the data we get
62
- const targetId = 0;
63
- const touchesList = event.allTouches.map((touch) => touchDataToPressEvent(touch, timestamp, targetId));
64
- const changedTouchesList = event.changedTouches.map((touch) => touchDataToPressEvent(touch, timestamp, targetId));
65
- return {
66
- nativeEvent: {
67
- touches: touchesList,
68
- changedTouches: changedTouchesList,
69
- identifier: event.handlerTag,
70
- locationX: event.allTouches.at(0)?.x ?? -1,
71
- locationY: event.allTouches.at(0)?.y ?? -1,
72
- pageX: event.allTouches.at(0)?.absoluteX ?? -1,
73
- pageY: event.allTouches.at(0)?.absoluteY ?? -1,
74
- target: targetId,
75
- timestamp: timestamp,
76
- force: undefined,
77
- },
78
- };
79
- };
80
- export { numberAsInset, addInsets, isTouchWithinInset, gestureToPressableEvent, gestureTouchToPressableEvent, };
@@ -1,364 +0,0 @@
1
- // This component is based on RN's DrawerLayoutAndroid API
2
- // It's cross-compatible with all platforms despite
3
- // `DrawerLayoutAndroid` only being available on android
4
- import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useState, } from 'react';
5
- import { StyleSheet, Keyboard, StatusBar, I18nManager, Platform, } from 'react-native';
6
- import Animated, { Extrapolation, interpolate, runOnJS, useAnimatedProps, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring, } from 'react-native-reanimated';
7
- import { GestureObjects as Gesture } from '../handlers/gestures/gestureObjects';
8
- import { GestureDetector } from '../handlers/gestures/GestureDetector';
9
- import { MouseButton, } from '../handlers/gestureHandlerCommon';
10
- const DRAG_TOSS = 0.05;
11
- export var DrawerPosition;
12
- (function (DrawerPosition) {
13
- DrawerPosition[DrawerPosition["LEFT"] = 0] = "LEFT";
14
- DrawerPosition[DrawerPosition["RIGHT"] = 1] = "RIGHT";
15
- })(DrawerPosition || (DrawerPosition = {}));
16
- export var DrawerState;
17
- (function (DrawerState) {
18
- DrawerState[DrawerState["IDLE"] = 0] = "IDLE";
19
- DrawerState[DrawerState["DRAGGING"] = 1] = "DRAGGING";
20
- DrawerState[DrawerState["SETTLING"] = 2] = "SETTLING";
21
- })(DrawerState || (DrawerState = {}));
22
- export var DrawerType;
23
- (function (DrawerType) {
24
- DrawerType[DrawerType["FRONT"] = 0] = "FRONT";
25
- DrawerType[DrawerType["BACK"] = 1] = "BACK";
26
- DrawerType[DrawerType["SLIDE"] = 2] = "SLIDE";
27
- })(DrawerType || (DrawerType = {}));
28
- export var DrawerLockMode;
29
- (function (DrawerLockMode) {
30
- DrawerLockMode[DrawerLockMode["UNLOCKED"] = 0] = "UNLOCKED";
31
- DrawerLockMode[DrawerLockMode["LOCKED_CLOSED"] = 1] = "LOCKED_CLOSED";
32
- DrawerLockMode[DrawerLockMode["LOCKED_OPEN"] = 2] = "LOCKED_OPEN";
33
- })(DrawerLockMode || (DrawerLockMode = {}));
34
- export var DrawerKeyboardDismissMode;
35
- (function (DrawerKeyboardDismissMode) {
36
- DrawerKeyboardDismissMode[DrawerKeyboardDismissMode["NONE"] = 0] = "NONE";
37
- DrawerKeyboardDismissMode[DrawerKeyboardDismissMode["ON_DRAG"] = 1] = "ON_DRAG";
38
- })(DrawerKeyboardDismissMode || (DrawerKeyboardDismissMode = {}));
39
- const defaultProps = {
40
- drawerWidth: 200,
41
- drawerPosition: DrawerPosition.LEFT,
42
- drawerType: DrawerType.FRONT,
43
- edgeWidth: 20,
44
- minSwipeDistance: 3,
45
- overlayColor: 'rgba(0, 0, 0, 0.7)',
46
- drawerLockMode: DrawerLockMode.UNLOCKED,
47
- enableTrackpadTwoFingerGesture: false,
48
- activeCursor: 'auto',
49
- mouseButton: MouseButton.LEFT,
50
- statusBarAnimation: 'slide',
51
- };
52
- // StatusBar.setHidden and Keyboard.dismiss cannot be directly referenced in worklets.
53
- const setStatusBarHidden = StatusBar.setHidden;
54
- const dismissKeyboard = Keyboard.dismiss;
55
- const DrawerLayout = forwardRef(function DrawerLayout(props, ref) {
56
- const [containerWidth, setContainerWidth] = useState(0);
57
- const [drawerState, setDrawerState] = useState(DrawerState.IDLE);
58
- const [drawerOpened, setDrawerOpened] = useState(false);
59
- const { drawerPosition = defaultProps.drawerPosition, drawerWidth = defaultProps.drawerWidth, drawerType = defaultProps.drawerType, drawerBackgroundColor, drawerContainerStyle, contentContainerStyle, minSwipeDistance = defaultProps.minSwipeDistance, edgeWidth = defaultProps.edgeWidth, drawerLockMode = defaultProps.drawerLockMode, overlayColor = defaultProps.overlayColor, enableTrackpadTwoFingerGesture = defaultProps.enableTrackpadTwoFingerGesture, activeCursor = defaultProps.activeCursor, mouseButton = defaultProps.mouseButton, statusBarAnimation = defaultProps.statusBarAnimation, hideStatusBar, keyboardDismissMode, userSelect, enableContextMenu, renderNavigationView, onDrawerSlide, onDrawerClose, onDrawerOpen, onDrawerStateChanged, animationSpeed: animationSpeedProp, } = props;
60
- const isFromLeft = drawerPosition === DrawerPosition.LEFT;
61
- const sideCorrection = isFromLeft ? 1 : -1;
62
- // While closing the drawer when user starts gesture in the greyed out part of the window,
63
- // we want the drawer to follow only once the finger reaches the edge of the drawer.
64
- // See the diagram for reference. * = starting finger position, < = current finger position
65
- // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+
66
- // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
67
- // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
68
- // |XXXXXXXX|..<*..| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|
69
- // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
70
- // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
71
- // +---------------+ +---------------+ +---------------+ +---------------+
72
- const openValue = useSharedValue(0);
73
- useDerivedValue(() => {
74
- onDrawerSlide && runOnJS(onDrawerSlide)(openValue.value);
75
- }, []);
76
- const isDrawerOpen = useSharedValue(false);
77
- const handleContainerLayout = ({ nativeEvent }) => {
78
- setContainerWidth(nativeEvent.layout.width);
79
- };
80
- const emitStateChanged = useCallback((newState, drawerWillShow) => {
81
- 'worklet';
82
- onDrawerStateChanged &&
83
- runOnJS(onDrawerStateChanged)?.(newState, drawerWillShow);
84
- }, [onDrawerStateChanged]);
85
- const drawerAnimatedProps = useAnimatedProps(() => ({
86
- accessibilityViewIsModal: isDrawerOpen.value,
87
- }));
88
- const overlayAnimatedProps = useAnimatedProps(() => ({
89
- pointerEvents: isDrawerOpen.value ? 'auto' : 'none',
90
- }));
91
- // While the drawer is hidden, it's hitSlop overflows onto the main view by edgeWidth
92
- // This way it can be swiped open even when it's hidden
93
- const [edgeHitSlop, setEdgeHitSlop] = useState(isFromLeft
94
- ? { left: 0, width: edgeWidth }
95
- : { right: 0, width: edgeWidth });
96
- // gestureOrientation is 1 if the gesture is expected to move from left to right and -1 otherwise
97
- const gestureOrientation = useMemo(() => sideCorrection * (drawerOpened ? -1 : 1), [sideCorrection, drawerOpened]);
98
- useEffect(() => {
99
- setEdgeHitSlop(isFromLeft
100
- ? { left: 0, width: edgeWidth }
101
- : { right: 0, width: edgeWidth });
102
- }, [isFromLeft, edgeWidth]);
103
- const animateDrawer = useCallback((toValue, initialVelocity, animationSpeed) => {
104
- 'worklet';
105
- const willShow = toValue !== 0;
106
- isDrawerOpen.value = willShow;
107
- emitStateChanged(DrawerState.SETTLING, willShow);
108
- runOnJS(setDrawerState)(DrawerState.SETTLING);
109
- if (hideStatusBar) {
110
- runOnJS(setStatusBarHidden)(willShow, statusBarAnimation);
111
- }
112
- const normalizedToValue = interpolate(toValue, [0, drawerWidth], [0, 1], Extrapolation.CLAMP);
113
- const normalizedInitialVelocity = interpolate(initialVelocity, [0, drawerWidth], [0, 1], Extrapolation.CLAMP);
114
- openValue.value = withSpring(normalizedToValue, {
115
- overshootClamping: true,
116
- velocity: normalizedInitialVelocity,
117
- mass: animationSpeed
118
- ? 1 / animationSpeed
119
- : 1 / (animationSpeedProp ?? 1),
120
- damping: 40,
121
- stiffness: 500,
122
- }, (finished) => {
123
- if (finished) {
124
- emitStateChanged(DrawerState.IDLE, willShow);
125
- runOnJS(setDrawerOpened)(willShow);
126
- runOnJS(setDrawerState)(DrawerState.IDLE);
127
- if (willShow) {
128
- onDrawerOpen && runOnJS(onDrawerOpen)?.();
129
- }
130
- else {
131
- onDrawerClose && runOnJS(onDrawerClose)?.();
132
- }
133
- }
134
- });
135
- }, [
136
- openValue,
137
- emitStateChanged,
138
- isDrawerOpen,
139
- hideStatusBar,
140
- onDrawerClose,
141
- onDrawerOpen,
142
- drawerWidth,
143
- statusBarAnimation,
144
- ]);
145
- const handleRelease = useCallback((event) => {
146
- 'worklet';
147
- let { translationX: dragX, velocityX, x: touchX } = event;
148
- if (drawerPosition !== DrawerPosition.LEFT) {
149
- // See description in _updateAnimatedEvent about why events are flipped
150
- // for right-side drawer
151
- dragX = -dragX;
152
- touchX = containerWidth - touchX;
153
- velocityX = -velocityX;
154
- }
155
- const gestureStartX = touchX - dragX;
156
- let dragOffsetBasedOnStart = 0;
157
- if (drawerType === DrawerType.FRONT) {
158
- dragOffsetBasedOnStart =
159
- gestureStartX > drawerWidth ? gestureStartX - drawerWidth : 0;
160
- }
161
- const startOffsetX = dragX +
162
- dragOffsetBasedOnStart +
163
- (isDrawerOpen.value ? drawerWidth : 0);
164
- const projOffsetX = startOffsetX + DRAG_TOSS * velocityX;
165
- const shouldOpen = projOffsetX > drawerWidth / 2;
166
- if (shouldOpen) {
167
- animateDrawer(drawerWidth, velocityX);
168
- }
169
- else {
170
- animateDrawer(0, velocityX);
171
- }
172
- }, [
173
- animateDrawer,
174
- containerWidth,
175
- drawerPosition,
176
- drawerType,
177
- drawerWidth,
178
- isDrawerOpen,
179
- ]);
180
- const openDrawer = useCallback((options = {}) => {
181
- 'worklet';
182
- animateDrawer(drawerWidth, options.initialVelocity ?? 0, options.animationSpeed);
183
- }, [animateDrawer, drawerWidth]);
184
- const closeDrawer = useCallback((options = {}) => {
185
- 'worklet';
186
- animateDrawer(0, options.initialVelocity ?? 0, options.animationSpeed);
187
- }, [animateDrawer]);
188
- const overlayDismissGesture = useMemo(() => Gesture.Tap()
189
- .maxDistance(25)
190
- .onEnd(() => {
191
- if (isDrawerOpen.value &&
192
- drawerLockMode !== DrawerLockMode.LOCKED_OPEN) {
193
- closeDrawer();
194
- }
195
- }), [closeDrawer, isDrawerOpen, drawerLockMode]);
196
- const overlayAnimatedStyle = useAnimatedStyle(() => ({
197
- opacity: openValue.value,
198
- backgroundColor: overlayColor,
199
- }));
200
- const fillHitSlop = useMemo(() => (isFromLeft ? { left: drawerWidth } : { right: drawerWidth }), [drawerWidth, isFromLeft]);
201
- const panGesture = useMemo(() => {
202
- return Gesture.Pan()
203
- .activeCursor(activeCursor)
204
- .mouseButton(mouseButton)
205
- .hitSlop(drawerOpened ? fillHitSlop : edgeHitSlop)
206
- .minDistance(drawerOpened ? 100 : 0)
207
- .activeOffsetX(gestureOrientation * minSwipeDistance)
208
- .failOffsetY([-15, 15])
209
- .simultaneousWithExternalGesture(overlayDismissGesture)
210
- .enableTrackpadTwoFingerGesture(enableTrackpadTwoFingerGesture)
211
- .enabled(drawerState !== DrawerState.SETTLING &&
212
- (drawerOpened
213
- ? drawerLockMode !== DrawerLockMode.LOCKED_OPEN
214
- : drawerLockMode !== DrawerLockMode.LOCKED_CLOSED))
215
- .onStart(() => {
216
- emitStateChanged(DrawerState.DRAGGING, false);
217
- runOnJS(setDrawerState)(DrawerState.DRAGGING);
218
- if (keyboardDismissMode === DrawerKeyboardDismissMode.ON_DRAG) {
219
- runOnJS(dismissKeyboard)();
220
- }
221
- if (hideStatusBar) {
222
- runOnJS(setStatusBarHidden)(true, statusBarAnimation);
223
- }
224
- })
225
- .onUpdate((event) => {
226
- const startedOutsideTranslation = isFromLeft
227
- ? interpolate(event.x, [0, drawerWidth, drawerWidth + 1], [0, drawerWidth, drawerWidth])
228
- : interpolate(event.x - containerWidth, [-drawerWidth - 1, -drawerWidth, 0], [drawerWidth, drawerWidth, 0]);
229
- const startedInsideTranslation = sideCorrection *
230
- (event.translationX +
231
- (drawerOpened ? drawerWidth * -gestureOrientation : 0));
232
- const adjustedTranslation = Math.max(drawerOpened ? startedOutsideTranslation : 0, startedInsideTranslation);
233
- openValue.value = interpolate(adjustedTranslation, [-drawerWidth, 0, drawerWidth], [1, 0, 1], Extrapolation.CLAMP);
234
- })
235
- .onEnd(handleRelease);
236
- }, [
237
- drawerLockMode,
238
- openValue,
239
- drawerWidth,
240
- emitStateChanged,
241
- gestureOrientation,
242
- handleRelease,
243
- edgeHitSlop,
244
- fillHitSlop,
245
- minSwipeDistance,
246
- hideStatusBar,
247
- keyboardDismissMode,
248
- overlayDismissGesture,
249
- drawerOpened,
250
- isFromLeft,
251
- containerWidth,
252
- sideCorrection,
253
- drawerState,
254
- activeCursor,
255
- enableTrackpadTwoFingerGesture,
256
- mouseButton,
257
- statusBarAnimation,
258
- ]);
259
- // When using RTL, row and row-reverse flex directions are flipped.
260
- const reverseContentDirection = I18nManager.isRTL
261
- ? isFromLeft
262
- : !isFromLeft;
263
- const dynamicDrawerStyles = {
264
- backgroundColor: drawerBackgroundColor,
265
- width: drawerWidth,
266
- };
267
- const containerStyles = useAnimatedStyle(() => {
268
- if (drawerType === DrawerType.FRONT) {
269
- return {};
270
- }
271
- return {
272
- transform: [
273
- {
274
- translateX: interpolate(openValue.value, [0, 1], [0, drawerWidth * sideCorrection], Extrapolation.CLAMP),
275
- },
276
- ],
277
- };
278
- });
279
- const drawerAnimatedStyle = useAnimatedStyle(() => {
280
- const closedDrawerOffset = drawerWidth * -sideCorrection;
281
- const isBack = drawerType === DrawerType.BACK;
282
- const isIdle = drawerState === DrawerState.IDLE;
283
- if (isBack) {
284
- return {
285
- transform: [{ translateX: 0 }],
286
- flexDirection: reverseContentDirection ? 'row-reverse' : 'row',
287
- };
288
- }
289
- let translateX = 0;
290
- if (isIdle) {
291
- translateX = drawerOpened ? 0 : closedDrawerOffset;
292
- }
293
- else {
294
- translateX = interpolate(openValue.value, [0, 1], [closedDrawerOffset, 0], Extrapolation.CLAMP);
295
- }
296
- return {
297
- transform: [{ translateX }],
298
- flexDirection: reverseContentDirection ? 'row-reverse' : 'row',
299
- };
300
- });
301
- const containerAnimatedProps = useAnimatedProps(() => ({
302
- importantForAccessibility: Platform.OS === 'android'
303
- ? isDrawerOpen.value
304
- ? 'no-hide-descendants'
305
- : 'yes'
306
- : undefined,
307
- }));
308
- const children = typeof props.children === 'function'
309
- ? props.children(openValue) // renderer function
310
- : props.children;
311
- useImperativeHandle(ref, () => ({
312
- openDrawer,
313
- closeDrawer,
314
- }), [openDrawer, closeDrawer]);
315
- return (<GestureDetector gesture={panGesture} userSelect={userSelect} enableContextMenu={enableContextMenu}>
316
- <Animated.View style={styles.main} onLayout={handleContainerLayout}>
317
- <GestureDetector gesture={overlayDismissGesture}>
318
- <Animated.View style={[
319
- drawerType === DrawerType.FRONT
320
- ? styles.containerOnBack
321
- : styles.containerInFront,
322
- containerStyles,
323
- contentContainerStyle,
324
- ]} animatedProps={containerAnimatedProps}>
325
- {children}
326
- <Animated.View animatedProps={overlayAnimatedProps} style={[styles.overlay, overlayAnimatedStyle]}/>
327
- </Animated.View>
328
- </GestureDetector>
329
- <Animated.View pointerEvents="box-none" animatedProps={drawerAnimatedProps} style={[
330
- styles.drawerContainer,
331
- drawerAnimatedStyle,
332
- drawerContainerStyle,
333
- ]}>
334
- <Animated.View style={dynamicDrawerStyles}>
335
- {renderNavigationView(openValue)}
336
- </Animated.View>
337
- </Animated.View>
338
- </Animated.View>
339
- </GestureDetector>);
340
- });
341
- export default DrawerLayout;
342
- const styles = StyleSheet.create({
343
- drawerContainer: {
344
- ...StyleSheet.absoluteFillObject,
345
- zIndex: 1001,
346
- flexDirection: 'row',
347
- },
348
- containerInFront: {
349
- ...StyleSheet.absoluteFillObject,
350
- zIndex: 1002,
351
- },
352
- containerOnBack: {
353
- ...StyleSheet.absoluteFillObject,
354
- },
355
- main: {
356
- flex: 1,
357
- zIndex: 0,
358
- overflow: 'hidden',
359
- },
360
- overlay: {
361
- ...StyleSheet.absoluteFillObject,
362
- zIndex: 1000,
363
- },
364
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReanimatedSwipeable.d.ts","sourceRoot":"","sources":["../../../src/components/ReanimatedSwipeable.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EACZ,YAAY,EAKb,MAAM,OAAO,CAAC;AAOf,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAiB,EAEf,WAAW,EASZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGL,SAAS,EAGT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAuC,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAIhF,KAAK,iBAAiB,GAAG,OAAO,CAC9B,MAAM,sBAAsB,EAC5B,gBAAgB,GAAG,sBAAsB,CAC1C,CAAC;AAEF,aAAK,cAAc;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;IACvD;;;;;OAKG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IAEzC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,CAChB,SAAS,EAAE,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,KAClD,IAAI,CAAC;IAEV;;OAEG;IACH,gBAAgB,CAAC,EAAE,CACjB,SAAS,EAAE,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,KAClD,IAAI,CAAC;IAEV;;OAEG;IACH,mBAAmB,CAAC,EAAE,CACpB,SAAS,EAAE,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,KAClD,IAAI,CAAC;IAEV;;OAEG;IACH,oBAAoB,CAAC,EAAE,CACrB,SAAS,EAAE,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,KAClD,IAAI,CAAC;IAEV;;OAEG;IACH,wBAAwB,CAAC,EAAE,CACzB,SAAS,EAAE,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,KAClD,IAAI,CAAC;IAEV;;OAEG;IACH,yBAAyB,CAAC,EAAE,CAC1B,SAAS,EAAE,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,KAClD,IAAI,CAAC;IAEV;;;;;;;;;SASK;IACL,iBAAiB,CAAC,EAAE,CAClB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,EAC7B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,gBAAgB,EAAE,gBAAgB,KAC/B,KAAK,CAAC,SAAS,CAAC;IAErB;;;;;;;;;SASK;IACL,kBAAkB,CAAC,EAAE,CACnB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,EAC7B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,gBAAgB,EAAE,gBAAgB,KAC/B,KAAK,CAAC,SAAS,CAAC;IAErB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3C;;;OAGG;IACH,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAEtC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAE9C;;;OAGG;IACH,+BAA+B,CAAC,EAAE,gBAAgB,CAAC;IAEnD;;;OAGG;IACH,4BAA4B,CAAC,EAAE,gBAAgB,CAAC;IAEhD;;;OAGG;IACH,qBAAqB,CAAC,EAAE,gBAAgB,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,QAAA,MAAM,SAAS,yFA+iBd,CAAC;AAEF,eAAe,SAAS,CAAC;AACzB,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC"}