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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/SystemModules/amzn__react-native-gesture-handler-4.modules.txt +3 -0
  2. package/SystemModules/amzn__react-native-gesture-handler-4.private.modules.txt +81 -35
  3. package/kepler-compatibility.json +3 -1
  4. package/lib/commonjs/RNGestureHandlerModule.kepler.js.map +1 -1
  5. package/lib/commonjs/index.js +0 -268
  6. package/lib/module/RNGestureHandlerModule.kepler.js.map +1 -1
  7. package/lib/typescript/RNGestureHandlerModule.kepler.d.ts.map +1 -1
  8. package/oss-attribution/attribution.txt +0 -0
  9. package/oss-attribution/licenseInfos.json +1 -0
  10. package/package.json +1 -1
  11. package/src/index.ts +0 -168
  12. package/README.md +0 -70
  13. package/SystemBundles/6340ec90c9b9f38941444b2ca176a58b9d8116a6cd975690f53747ed00595c90.bundle +0 -14669
  14. package/SystemBundles/6340ec90c9b9f38941444b2ca176a58b9d8116a6cd975690f53747ed00595c90.map +0 -5041
  15. package/lib/commonjs/ActionType.js +0 -15
  16. package/lib/commonjs/Directions.js +0 -31
  17. package/lib/commonjs/EnableNewWebImplementation.js +0 -40
  18. package/lib/commonjs/GestureHandlerRootViewContext.js +0 -10
  19. package/lib/commonjs/PlatformConstants.js +0 -9
  20. package/lib/commonjs/PlatformConstants.kepler.js +0 -12
  21. package/lib/commonjs/PlatformConstants.web.js +0 -12
  22. package/lib/commonjs/PointerType.js +0 -15
  23. package/lib/commonjs/RNGestureHandlerModule.js +0 -12
  24. package/lib/commonjs/RNGestureHandlerModule.kepler.js +0 -32
  25. package/lib/commonjs/RNGestureHandlerModule.web.js +0 -95
  26. package/lib/commonjs/RNGestureHandlerModule.windows.js +0 -56
  27. package/lib/commonjs/RNRenderer.js +0 -14
  28. package/lib/commonjs/RNRenderer.web.js +0 -10
  29. package/lib/commonjs/State.js +0 -19
  30. package/lib/commonjs/TouchEventType.js +0 -16
  31. package/lib/commonjs/components/DrawerLayout.js +0 -548
  32. package/lib/commonjs/components/GestureButtons.js +0 -212
  33. package/lib/commonjs/components/GestureButtonsProps.js +0 -6
  34. package/lib/commonjs/components/GestureComponents.js +0 -106
  35. package/lib/commonjs/components/GestureComponents.web.js +0 -39
  36. package/lib/commonjs/components/GestureHandlerButton.js +0 -10
  37. package/lib/commonjs/components/GestureHandlerButton.web.js +0 -16
  38. package/lib/commonjs/components/GestureHandlerRootView.android.js +0 -36
  39. package/lib/commonjs/components/GestureHandlerRootView.js +0 -35
  40. package/lib/commonjs/components/GestureHandlerRootView.kepler.js +0 -21
  41. package/lib/commonjs/components/GestureHandlerRootView.web.js +0 -30
  42. package/lib/commonjs/components/Pressable/Pressable.js +0 -274
  43. package/lib/commonjs/components/Pressable/PressableProps.js +0 -6
  44. package/lib/commonjs/components/Pressable/StateMachine.js +0 -44
  45. package/lib/commonjs/components/Pressable/index.js +0 -14
  46. package/lib/commonjs/components/Pressable/stateDefinitions.js +0 -88
  47. package/lib/commonjs/components/Pressable/utils.js +0 -92
  48. package/lib/commonjs/components/ReanimatedDrawerLayout.js +0 -357
  49. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeable.js +0 -337
  50. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +0 -12
  51. package/lib/commonjs/components/ReanimatedSwipeable/index.js +0 -21
  52. package/lib/commonjs/components/Swipeable.js +0 -370
  53. package/lib/commonjs/components/Text.js +0 -60
  54. package/lib/commonjs/components/gestureHandlerRootHOC.js +0 -37
  55. package/lib/commonjs/components/touchables/ExtraButtonProps.js +0 -2
  56. package/lib/commonjs/components/touchables/GenericTouchable.js +0 -245
  57. package/lib/commonjs/components/touchables/GenericTouchableProps.js +0 -6
  58. package/lib/commonjs/components/touchables/TouchableHighlight.js +0 -93
  59. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +0 -84
  60. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +0 -13
  61. package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js +0 -6
  62. package/lib/commonjs/components/touchables/TouchableOpacity.js +0 -65
  63. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +0 -33
  64. package/lib/commonjs/components/touchables/index.js +0 -35
  65. package/lib/commonjs/components/utils.js +0 -17
  66. package/lib/commonjs/findNodeHandle.js +0 -9
  67. package/lib/commonjs/findNodeHandle.web.js +0 -39
  68. package/lib/commonjs/getShadowNodeFromRef.js +0 -51
  69. package/lib/commonjs/getShadowNodeFromRef.web.js +0 -14
  70. package/lib/commonjs/ghQueueMicrotask.js +0 -10
  71. package/lib/commonjs/handlers/FlingGestureHandler.js +0 -31
  72. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +0 -46
  73. package/lib/commonjs/handlers/GestureHandlerEventPayload.js +0 -6
  74. package/lib/commonjs/handlers/LongPressGestureHandler.js +0 -33
  75. package/lib/commonjs/handlers/NativeViewGestureHandler.js +0 -32
  76. package/lib/commonjs/handlers/PanGestureHandler.js +0 -112
  77. package/lib/commonjs/handlers/PinchGestureHandler.js +0 -29
  78. package/lib/commonjs/handlers/PressabilityDebugView.js +0 -13
  79. package/lib/commonjs/handlers/PressabilityDebugView.web.js +0 -11
  80. package/lib/commonjs/handlers/RotationGestureHandler.js +0 -29
  81. package/lib/commonjs/handlers/TapGestureHandler.js +0 -33
  82. package/lib/commonjs/handlers/createHandler.js +0 -405
  83. package/lib/commonjs/handlers/createNativeWrapper.js +0 -77
  84. package/lib/commonjs/handlers/customDirectEventTypes.js +0 -13
  85. package/lib/commonjs/handlers/customDirectEventTypes.web.js +0 -10
  86. package/lib/commonjs/handlers/gestureHandlerCommon.js +0 -27
  87. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +0 -6
  88. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js +0 -32
  89. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js +0 -41
  90. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +0 -67
  91. package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js +0 -20
  92. package/lib/commonjs/handlers/gestures/GestureDetector/index.js +0 -125
  93. package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js +0 -22
  94. package/lib/commonjs/handlers/gestures/GestureDetector/types.js +0 -6
  95. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +0 -66
  96. package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -143
  97. package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -47
  98. package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +0 -41
  99. package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -45
  100. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +0 -143
  101. package/lib/commonjs/handlers/gestures/eventReceiver.js +0 -117
  102. package/lib/commonjs/handlers/gestures/flingGesture.js +0 -37
  103. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +0 -80
  104. package/lib/commonjs/handlers/gestures/gesture.js +0 -338
  105. package/lib/commonjs/handlers/gestures/gestureComposition.js +0 -90
  106. package/lib/commonjs/handlers/gestures/gestureObjects.js +0 -132
  107. package/lib/commonjs/handlers/gestures/gestureStateManager.js +0 -70
  108. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +0 -28
  109. package/lib/commonjs/handlers/gestures/hoverGesture.js +0 -57
  110. package/lib/commonjs/handlers/gestures/longPressGesture.js +0 -46
  111. package/lib/commonjs/handlers/gestures/manualGesture.js +0 -25
  112. package/lib/commonjs/handlers/gestures/nativeGesture.js +0 -34
  113. package/lib/commonjs/handlers/gestures/panGesture.js +0 -197
  114. package/lib/commonjs/handlers/gestures/pinchGesture.js +0 -38
  115. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +0 -29
  116. package/lib/commonjs/handlers/gestures/rotationGesture.js +0 -38
  117. package/lib/commonjs/handlers/gestures/tapGesture.js +0 -87
  118. package/lib/commonjs/handlers/getNextHandlerTag.js +0 -11
  119. package/lib/commonjs/handlers/handlersRegistry.js +0 -50
  120. package/lib/commonjs/handlers/utils.js +0 -69
  121. package/lib/commonjs/init.js +0 -25
  122. package/lib/commonjs/jestUtils/index.js +0 -19
  123. package/lib/commonjs/jestUtils/jestUtils.js +0 -316
  124. package/lib/commonjs/mocks/Pressable.js +0 -13
  125. package/lib/commonjs/mocks/mocks.js +0 -70
  126. package/lib/commonjs/mocks.js +0 -61
  127. package/lib/commonjs/mountRegistry.js +0 -37
  128. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +0 -9
  129. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.kepler.js +0 -20
  130. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  131. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.kepler.js +0 -17
  132. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  133. package/lib/commonjs/typeUtils.js +0 -2
  134. package/lib/commonjs/utils.js +0 -95
  135. package/lib/commonjs/web/Gestures.js +0 -48
  136. package/lib/commonjs/web/constants.js +0 -9
  137. package/lib/commonjs/web/detectors/RotationGestureDetector.js +0 -124
  138. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +0 -111
  139. package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -143
  140. package/lib/commonjs/web/handlers/GestureHandler.js +0 -689
  141. package/lib/commonjs/web/handlers/HoverGestureHandler.js +0 -45
  142. package/lib/commonjs/web/handlers/IGestureHandler.js +0 -2
  143. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -146
  144. package/lib/commonjs/web/handlers/ManualGestureHandler.js +0 -38
  145. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -141
  146. package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -399
  147. package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -122
  148. package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -129
  149. package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -215
  150. package/lib/commonjs/web/interfaces.js +0 -32
  151. package/lib/commonjs/web/tools/CircularBuffer.js +0 -40
  152. package/lib/commonjs/web/tools/EventManager.js +0 -94
  153. package/lib/commonjs/web/tools/GestureHandlerDelegate.js +0 -6
  154. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +0 -267
  155. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +0 -165
  156. package/lib/commonjs/web/tools/InteractionManager.js +0 -96
  157. package/lib/commonjs/web/tools/KeyboardEventManager.js +0 -108
  158. package/lib/commonjs/web/tools/LeastSquareSolver.js +0 -159
  159. package/lib/commonjs/web/tools/NodeManager.js +0 -39
  160. package/lib/commonjs/web/tools/PointerEventManager.js +0 -189
  161. package/lib/commonjs/web/tools/PointerTracker.js +0 -192
  162. package/lib/commonjs/web/tools/Vector.js +0 -37
  163. package/lib/commonjs/web/tools/VelocityTracker.js +0 -85
  164. package/lib/commonjs/web/tools/WheelEventManager.js +0 -55
  165. package/lib/commonjs/web/utils.js +0 -235
  166. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +0 -93
  167. package/lib/commonjs/web_hammer/DraggingGestureHandler.js +0 -43
  168. package/lib/commonjs/web_hammer/Errors.js +0 -13
  169. package/lib/commonjs/web_hammer/FlingGestureHandler.js +0 -139
  170. package/lib/commonjs/web_hammer/GestureHandler.js +0 -484
  171. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +0 -45
  172. package/lib/commonjs/web_hammer/LongPressGestureHandler.js +0 -57
  173. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +0 -57
  174. package/lib/commonjs/web_hammer/NodeManager.js +0 -41
  175. package/lib/commonjs/web_hammer/PanGestureHandler.js +0 -167
  176. package/lib/commonjs/web_hammer/PinchGestureHandler.js +0 -31
  177. package/lib/commonjs/web_hammer/PressGestureHandler.js +0 -153
  178. package/lib/commonjs/web_hammer/RotationGestureHandler.js +0 -32
  179. package/lib/commonjs/web_hammer/TapGestureHandler.js +0 -165
  180. package/lib/commonjs/web_hammer/constants.js +0 -51
  181. package/lib/commonjs/web_hammer/utils.js +0 -32
  182. package/lib/module/ActionType.js +0 -11
  183. package/lib/module/Directions.js +0 -27
  184. package/lib/module/EnableNewWebImplementation.js +0 -34
  185. package/lib/module/GestureHandlerRootViewContext.js +0 -5
  186. package/lib/module/PlatformConstants.js +0 -5
  187. package/lib/module/PlatformConstants.kepler.js +0 -8
  188. package/lib/module/PlatformConstants.web.js +0 -8
  189. package/lib/module/PointerType.js +0 -11
  190. package/lib/module/RNGestureHandlerModule.js +0 -8
  191. package/lib/module/RNGestureHandlerModule.kepler.js +0 -26
  192. package/lib/module/RNGestureHandlerModule.web.js +0 -90
  193. package/lib/module/RNGestureHandlerModule.windows.js +0 -50
  194. package/lib/module/RNRenderer.js +0 -6
  195. package/lib/module/RNRenderer.web.js +0 -6
  196. package/lib/module/State.js +0 -15
  197. package/lib/module/TouchEventType.js +0 -12
  198. package/lib/module/components/DrawerLayout.js +0 -541
  199. package/lib/module/components/GestureButtons.js +0 -200
  200. package/lib/module/components/GestureButtonsProps.js +0 -4
  201. package/lib/module/components/GestureComponents.js +0 -100
  202. package/lib/module/components/GestureComponents.web.js +0 -32
  203. package/lib/module/components/GestureHandlerButton.js +0 -5
  204. package/lib/module/components/GestureHandlerButton.web.js +0 -11
  205. package/lib/module/components/GestureHandlerRootView.android.js +0 -30
  206. package/lib/module/components/GestureHandlerRootView.js +0 -29
  207. package/lib/module/components/GestureHandlerRootView.kepler.js +0 -15
  208. package/lib/module/components/GestureHandlerRootView.web.js +0 -24
  209. package/lib/module/components/Pressable/Pressable.js +0 -268
  210. package/lib/module/components/Pressable/PressableProps.js +0 -4
  211. package/lib/module/components/Pressable/StateMachine.js +0 -40
  212. package/lib/module/components/Pressable/index.js +0 -4
  213. package/lib/module/components/Pressable/stateDefinitions.js +0 -83
  214. package/lib/module/components/Pressable/utils.js +0 -84
  215. package/lib/module/components/ReanimatedDrawerLayout.js +0 -352
  216. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js +0 -332
  217. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +0 -8
  218. package/lib/module/components/ReanimatedSwipeable/index.js +0 -5
  219. package/lib/module/components/Swipeable.js +0 -364
  220. package/lib/module/components/Text.js +0 -55
  221. package/lib/module/components/gestureHandlerRootHOC.js +0 -33
  222. package/lib/module/components/touchables/ExtraButtonProps.js +0 -2
  223. package/lib/module/components/touchables/GenericTouchable.js +0 -239
  224. package/lib/module/components/touchables/GenericTouchableProps.js +0 -4
  225. package/lib/module/components/touchables/TouchableHighlight.js +0 -87
  226. package/lib/module/components/touchables/TouchableNativeFeedback.android.js +0 -77
  227. package/lib/module/components/touchables/TouchableNativeFeedback.js +0 -10
  228. package/lib/module/components/touchables/TouchableNativeFeedbackProps.js +0 -4
  229. package/lib/module/components/touchables/TouchableOpacity.js +0 -59
  230. package/lib/module/components/touchables/TouchableWithoutFeedback.js +0 -27
  231. package/lib/module/components/touchables/index.js +0 -7
  232. package/lib/module/components/utils.js +0 -13
  233. package/lib/module/findNodeHandle.js +0 -5
  234. package/lib/module/findNodeHandle.web.js +0 -35
  235. package/lib/module/getShadowNodeFromRef.js +0 -47
  236. package/lib/module/getShadowNodeFromRef.web.js +0 -10
  237. package/lib/module/ghQueueMicrotask.js +0 -6
  238. package/lib/module/handlers/FlingGestureHandler.js +0 -26
  239. package/lib/module/handlers/ForceTouchGestureHandler.js +0 -41
  240. package/lib/module/handlers/GestureHandlerEventPayload.js +0 -4
  241. package/lib/module/handlers/LongPressGestureHandler.js +0 -28
  242. package/lib/module/handlers/NativeViewGestureHandler.js +0 -27
  243. package/lib/module/handlers/PanGestureHandler.js +0 -105
  244. package/lib/module/handlers/PinchGestureHandler.js +0 -25
  245. package/lib/module/handlers/PressabilityDebugView.js +0 -5
  246. package/lib/module/handlers/PressabilityDebugView.web.js +0 -7
  247. package/lib/module/handlers/RotationGestureHandler.js +0 -25
  248. package/lib/module/handlers/TapGestureHandler.js +0 -28
  249. package/lib/module/handlers/createHandler.js +0 -399
  250. package/lib/module/handlers/createNativeWrapper.js +0 -74
  251. package/lib/module/handlers/customDirectEventTypes.js +0 -5
  252. package/lib/module/handlers/customDirectEventTypes.web.js +0 -7
  253. package/lib/module/handlers/gestureHandlerCommon.js +0 -26
  254. package/lib/module/handlers/gestureHandlerTypesCompat.js +0 -4
  255. package/lib/module/handlers/gestures/GestureDetector/Wrap.js +0 -26
  256. package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js +0 -36
  257. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +0 -62
  258. package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js +0 -15
  259. package/lib/module/handlers/gestures/GestureDetector/index.js +0 -117
  260. package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js +0 -18
  261. package/lib/module/handlers/gestures/GestureDetector/types.js +0 -4
  262. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +0 -61
  263. package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -139
  264. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -43
  265. package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js +0 -37
  266. package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -40
  267. package/lib/module/handlers/gestures/GestureDetector/utils.js +0 -134
  268. package/lib/module/handlers/gestures/eventReceiver.js +0 -110
  269. package/lib/module/handlers/gestures/flingGesture.js +0 -32
  270. package/lib/module/handlers/gestures/forceTouchGesture.js +0 -76
  271. package/lib/module/handlers/gestures/gesture.js +0 -332
  272. package/lib/module/handlers/gestures/gestureComposition.js +0 -83
  273. package/lib/module/handlers/gestures/gestureObjects.js +0 -129
  274. package/lib/module/handlers/gestures/gestureStateManager.js +0 -66
  275. package/lib/module/handlers/gestures/gestureStateManager.web.js +0 -23
  276. package/lib/module/handlers/gestures/hoverGesture.js +0 -52
  277. package/lib/module/handlers/gestures/longPressGesture.js +0 -41
  278. package/lib/module/handlers/gestures/manualGesture.js +0 -20
  279. package/lib/module/handlers/gestures/nativeGesture.js +0 -29
  280. package/lib/module/handlers/gestures/panGesture.js +0 -192
  281. package/lib/module/handlers/gestures/pinchGesture.js +0 -33
  282. package/lib/module/handlers/gestures/reanimatedWrapper.js +0 -26
  283. package/lib/module/handlers/gestures/rotationGesture.js +0 -33
  284. package/lib/module/handlers/gestures/tapGesture.js +0 -82
  285. package/lib/module/handlers/getNextHandlerTag.js +0 -7
  286. package/lib/module/handlers/handlersRegistry.js +0 -39
  287. package/lib/module/handlers/utils.js +0 -61
  288. package/lib/module/index.js +0 -31
  289. package/lib/module/init.js +0 -19
  290. package/lib/module/jestUtils/index.js +0 -4
  291. package/lib/module/jestUtils/jestUtils.js +0 -311
  292. package/lib/module/mocks/Pressable.js +0 -4
  293. package/lib/module/mocks/mocks.js +0 -64
  294. package/lib/module/mocks.js +0 -57
  295. package/lib/module/mountRegistry.js +0 -32
  296. package/lib/module/specs/NativeRNGestureHandlerModule.js +0 -5
  297. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.kepler.js +0 -14
  298. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  299. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.kepler.js +0 -11
  300. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  301. package/lib/module/typeUtils.js +0 -2
  302. package/lib/module/utils.js +0 -81
  303. package/lib/module/web/Gestures.js +0 -42
  304. package/lib/module/web/constants.js +0 -5
  305. package/lib/module/web/detectors/RotationGestureDetector.js +0 -119
  306. package/lib/module/web/detectors/ScaleGestureDetector.js +0 -106
  307. package/lib/module/web/handlers/FlingGestureHandler.js +0 -137
  308. package/lib/module/web/handlers/GestureHandler.js +0 -682
  309. package/lib/module/web/handlers/HoverGestureHandler.js +0 -39
  310. package/lib/module/web/handlers/IGestureHandler.js +0 -2
  311. package/lib/module/web/handlers/LongPressGestureHandler.js +0 -140
  312. package/lib/module/web/handlers/ManualGestureHandler.js +0 -32
  313. package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -135
  314. package/lib/module/web/handlers/PanGestureHandler.js +0 -393
  315. package/lib/module/web/handlers/PinchGestureHandler.js +0 -116
  316. package/lib/module/web/handlers/RotationGestureHandler.js +0 -123
  317. package/lib/module/web/handlers/TapGestureHandler.js +0 -209
  318. package/lib/module/web/interfaces.js +0 -28
  319. package/lib/module/web/tools/CircularBuffer.js +0 -35
  320. package/lib/module/web/tools/EventManager.js +0 -89
  321. package/lib/module/web/tools/GestureHandlerDelegate.js +0 -4
  322. package/lib/module/web/tools/GestureHandlerOrchestrator.js +0 -261
  323. package/lib/module/web/tools/GestureHandlerWebDelegate.js +0 -159
  324. package/lib/module/web/tools/InteractionManager.js +0 -91
  325. package/lib/module/web/tools/KeyboardEventManager.js +0 -102
  326. package/lib/module/web/tools/LeastSquareSolver.js +0 -154
  327. package/lib/module/web/tools/NodeManager.js +0 -34
  328. package/lib/module/web/tools/PointerEventManager.js +0 -183
  329. package/lib/module/web/tools/PointerTracker.js +0 -186
  330. package/lib/module/web/tools/Vector.js +0 -32
  331. package/lib/module/web/tools/VelocityTracker.js +0 -79
  332. package/lib/module/web/tools/WheelEventManager.js +0 -49
  333. package/lib/module/web/utils.js +0 -223
  334. package/lib/module/web_hammer/DiscreteGestureHandler.js +0 -87
  335. package/lib/module/web_hammer/DraggingGestureHandler.js +0 -37
  336. package/lib/module/web_hammer/Errors.js +0 -8
  337. package/lib/module/web_hammer/FlingGestureHandler.js +0 -133
  338. package/lib/module/web_hammer/GestureHandler.js +0 -478
  339. package/lib/module/web_hammer/IndiscreteGestureHandler.js +0 -41
  340. package/lib/module/web_hammer/LongPressGestureHandler.js +0 -51
  341. package/lib/module/web_hammer/NativeViewGestureHandler.js +0 -51
  342. package/lib/module/web_hammer/NodeManager.js +0 -33
  343. package/lib/module/web_hammer/PanGestureHandler.js +0 -162
  344. package/lib/module/web_hammer/PinchGestureHandler.js +0 -26
  345. package/lib/module/web_hammer/PressGestureHandler.js +0 -148
  346. package/lib/module/web_hammer/RotationGestureHandler.js +0 -27
  347. package/lib/module/web_hammer/TapGestureHandler.js +0 -160
  348. package/lib/module/web_hammer/constants.js +0 -46
  349. package/lib/module/web_hammer/utils.js +0 -21
  350. package/src/ActionType.ts +0 -9
  351. package/src/Directions.ts +0 -26
  352. package/src/EnableNewWebImplementation.ts +0 -53
  353. package/src/GestureHandlerRootViewContext.ts +0 -3
  354. package/src/PlatformConstants.kepler.ts +0 -5
  355. package/src/PlatformConstants.ts +0 -8
  356. package/src/PlatformConstants.web.ts +0 -5
  357. package/src/PointerType.ts +0 -7
  358. package/src/RNGestureHandlerModule.kepler.ts +0 -64
  359. package/src/RNGestureHandlerModule.ts +0 -5
  360. package/src/RNGestureHandlerModule.web.ts +0 -124
  361. package/src/RNGestureHandlerModule.windows.ts +0 -62
  362. package/src/RNRenderer.ts +0 -3
  363. package/src/RNRenderer.web.ts +0 -3
  364. package/src/State.ts +0 -13
  365. package/src/TouchEventType.ts +0 -11
  366. package/src/components/DrawerLayout.tsx +0 -788
  367. package/src/components/GestureButtons.tsx +0 -272
  368. package/src/components/GestureButtonsProps.ts +0 -156
  369. package/src/components/GestureComponents.tsx +0 -148
  370. package/src/components/GestureComponents.web.tsx +0 -41
  371. package/src/components/GestureHandlerButton.tsx +0 -5
  372. package/src/components/GestureHandlerButton.web.tsx +0 -6
  373. package/src/components/GestureHandlerRootView.android.tsx +0 -32
  374. package/src/components/GestureHandlerRootView.kepler.tsx +0 -18
  375. package/src/components/GestureHandlerRootView.tsx +0 -28
  376. package/src/components/GestureHandlerRootView.web.tsx +0 -22
  377. package/src/components/Pressable/Pressable.tsx +0 -401
  378. package/src/components/Pressable/PressableProps.tsx +0 -174
  379. package/src/components/Pressable/StateMachine.tsx +0 -57
  380. package/src/components/Pressable/index.ts +0 -5
  381. package/src/components/Pressable/stateDefinitions.ts +0 -126
  382. package/src/components/Pressable/utils.ts +0 -140
  383. package/src/components/ReanimatedDrawerLayout.tsx +0 -754
  384. package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +0 -607
  385. package/src/components/ReanimatedSwipeable/ReanimatedSwipeableProps.ts +0 -199
  386. package/src/components/ReanimatedSwipeable/index.ts +0 -6
  387. package/src/components/Swipeable.tsx +0 -595
  388. package/src/components/Text.tsx +0 -77
  389. package/src/components/gestureHandlerRootHOC.tsx +0 -33
  390. package/src/components/touchables/ExtraButtonProps.ts +0 -7
  391. package/src/components/touchables/GenericTouchable.tsx +0 -275
  392. package/src/components/touchables/GenericTouchableProps.ts +0 -28
  393. package/src/components/touchables/TouchableHighlight.tsx +0 -118
  394. package/src/components/touchables/TouchableNativeFeedback.android.tsx +0 -83
  395. package/src/components/touchables/TouchableNativeFeedback.tsx +0 -8
  396. package/src/components/touchables/TouchableNativeFeedbackProps.tsx +0 -10
  397. package/src/components/touchables/TouchableOpacity.tsx +0 -78
  398. package/src/components/touchables/TouchableWithoutFeedback.tsx +0 -39
  399. package/src/components/touchables/index.ts +0 -7
  400. package/src/components/utils.ts +0 -26
  401. package/src/findNodeHandle.ts +0 -3
  402. package/src/findNodeHandle.web.ts +0 -41
  403. package/src/getShadowNodeFromRef.ts +0 -50
  404. package/src/getShadowNodeFromRef.web.ts +0 -7
  405. package/src/ghQueueMicrotask.ts +0 -8
  406. package/src/handlers/FlingGestureHandler.ts +0 -64
  407. package/src/handlers/ForceTouchGestureHandler.ts +0 -88
  408. package/src/handlers/GestureHandlerEventPayload.ts +0 -229
  409. package/src/handlers/LongPressGestureHandler.ts +0 -65
  410. package/src/handlers/NativeViewGestureHandler.ts +0 -59
  411. package/src/handlers/PanGestureHandler.ts +0 -282
  412. package/src/handlers/PinchGestureHandler.ts +0 -32
  413. package/src/handlers/PressabilityDebugView.tsx +0 -2
  414. package/src/handlers/PressabilityDebugView.web.tsx +0 -4
  415. package/src/handlers/RotationGestureHandler.ts +0 -32
  416. package/src/handlers/TapGestureHandler.ts +0 -99
  417. package/src/handlers/createHandler.tsx +0 -586
  418. package/src/handlers/createNativeWrapper.tsx +0 -89
  419. package/src/handlers/customDirectEventTypes.ts +0 -2
  420. package/src/handlers/customDirectEventTypes.web.ts +0 -5
  421. package/src/handlers/gestureHandlerCommon.ts +0 -211
  422. package/src/handlers/gestureHandlerTypesCompat.ts +0 -101
  423. package/src/handlers/gestures/GestureDetector/Wrap.tsx +0 -35
  424. package/src/handlers/gestures/GestureDetector/Wrap.web.tsx +0 -42
  425. package/src/handlers/gestures/GestureDetector/attachHandlers.ts +0 -112
  426. package/src/handlers/gestures/GestureDetector/dropHandlers.ts +0 -17
  427. package/src/handlers/gestures/GestureDetector/index.tsx +0 -191
  428. package/src/handlers/gestures/GestureDetector/needsToReattach.ts +0 -27
  429. package/src/handlers/gestures/GestureDetector/types.ts +0 -32
  430. package/src/handlers/gestures/GestureDetector/updateHandlers.ts +0 -92
  431. package/src/handlers/gestures/GestureDetector/useAnimatedGesture.ts +0 -209
  432. package/src/handlers/gestures/GestureDetector/useDetectorUpdater.ts +0 -69
  433. package/src/handlers/gestures/GestureDetector/useMountReactions.ts +0 -51
  434. package/src/handlers/gestures/GestureDetector/useViewRefHandler.ts +0 -58
  435. package/src/handlers/gestures/GestureDetector/utils.ts +0 -181
  436. package/src/handlers/gestures/eventReceiver.ts +0 -173
  437. package/src/handlers/gestures/flingGesture.ts +0 -36
  438. package/src/handlers/gestures/forceTouchGesture.ts +0 -95
  439. package/src/handlers/gestures/gesture.ts +0 -472
  440. package/src/handlers/gestures/gestureComposition.ts +0 -124
  441. package/src/handlers/gestures/gestureObjects.ts +0 -143
  442. package/src/handlers/gestures/gestureStateManager.ts +0 -76
  443. package/src/handlers/gestures/gestureStateManager.web.ts +0 -26
  444. package/src/handlers/gestures/hoverGesture.ts +0 -77
  445. package/src/handlers/gestures/longPressGesture.ts +0 -45
  446. package/src/handlers/gestures/manualGesture.ts +0 -31
  447. package/src/handlers/gestures/nativeGesture.ts +0 -33
  448. package/src/handlers/gestures/panGesture.ts +0 -221
  449. package/src/handlers/gestures/pinchGesture.ts +0 -51
  450. package/src/handlers/gestures/reanimatedWrapper.ts +0 -57
  451. package/src/handlers/gestures/rotationGesture.ts +0 -51
  452. package/src/handlers/gestures/tapGesture.ts +0 -86
  453. package/src/handlers/getNextHandlerTag.ts +0 -5
  454. package/src/handlers/handlersRegistry.ts +0 -58
  455. package/src/handlers/utils.ts +0 -76
  456. package/src/init.ts +0 -18
  457. package/src/jestUtils/index.ts +0 -1
  458. package/src/jestUtils/jestUtils.ts +0 -513
  459. package/src/mocks/Pressable.tsx +0 -1
  460. package/src/mocks/mocks.tsx +0 -70
  461. package/src/mocks.ts +0 -67
  462. package/src/mountRegistry.ts +0 -51
  463. package/src/specs/NativeRNGestureHandlerModule.ts +0 -26
  464. package/src/specs/RNGestureHandlerButtonNativeComponent.kepler.ts +0 -27
  465. package/src/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  466. package/src/specs/RNGestureHandlerRootViewNativeComponent.kepler.ts +0 -21
  467. package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  468. package/src/typeUtils.ts +0 -1
  469. package/src/utils.ts +0 -107
  470. package/src/web/Gestures.ts +0 -41
  471. package/src/web/constants.ts +0 -2
  472. package/src/web/detectors/RotationGestureDetector.ts +0 -170
  473. package/src/web/detectors/ScaleGestureDetector.ts +0 -171
  474. package/src/web/handlers/FlingGestureHandler.ts +0 -196
  475. package/src/web/handlers/GestureHandler.ts +0 -881
  476. package/src/web/handlers/HoverGestureHandler.ts +0 -49
  477. package/src/web/handlers/IGestureHandler.ts +0 -49
  478. package/src/web/handlers/LongPressGestureHandler.ts +0 -175
  479. package/src/web/handlers/ManualGestureHandler.ts +0 -37
  480. package/src/web/handlers/NativeViewGestureHandler.ts +0 -175
  481. package/src/web/handlers/PanGestureHandler.ts +0 -571
  482. package/src/web/handlers/PinchGestureHandler.ts +0 -152
  483. package/src/web/handlers/RotationGestureHandler.ts +0 -166
  484. package/src/web/handlers/TapGestureHandler.ts +0 -274
  485. package/src/web/interfaces.ts +0 -190
  486. package/src/web/tools/CircularBuffer.ts +0 -42
  487. package/src/web/tools/EventManager.ts +0 -108
  488. package/src/web/tools/GestureHandlerDelegate.ts +0 -26
  489. package/src/web/tools/GestureHandlerOrchestrator.ts +0 -392
  490. package/src/web/tools/GestureHandlerWebDelegate.ts +0 -227
  491. package/src/web/tools/InteractionManager.ts +0 -135
  492. package/src/web/tools/KeyboardEventManager.ts +0 -133
  493. package/src/web/tools/LeastSquareSolver.ts +0 -182
  494. package/src/web/tools/NodeManager.ts +0 -48
  495. package/src/web/tools/PointerEventManager.ts +0 -226
  496. package/src/web/tools/PointerTracker.ts +0 -228
  497. package/src/web/tools/Vector.ts +0 -59
  498. package/src/web/tools/VelocityTracker.ts +0 -98
  499. package/src/web/tools/WheelEventManager.ts +0 -48
  500. package/src/web/utils.ts +0 -293
  501. package/src/web_hammer/DiscreteGestureHandler.ts +0 -82
  502. package/src/web_hammer/DraggingGestureHandler.ts +0 -34
  503. package/src/web_hammer/Errors.ts +0 -7
  504. package/src/web_hammer/FlingGestureHandler.ts +0 -134
  505. package/src/web_hammer/GestureHandler.ts +0 -600
  506. package/src/web_hammer/IndiscreteGestureHandler.ts +0 -33
  507. package/src/web_hammer/LongPressGestureHandler.ts +0 -56
  508. package/src/web_hammer/NativeViewGestureHandler.ts +0 -47
  509. package/src/web_hammer/NodeManager.ts +0 -33
  510. package/src/web_hammer/PanGestureHandler.ts +0 -226
  511. package/src/web_hammer/PinchGestureHandler.ts +0 -25
  512. package/src/web_hammer/PressGestureHandler.ts +0 -170
  513. package/src/web_hammer/RotationGestureHandler.ts +0 -25
  514. package/src/web_hammer/TapGestureHandler.ts +0 -172
  515. package/src/web_hammer/constants.ts +0 -48
  516. package/src/web_hammer/utils.ts +0 -24
@@ -1,754 +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
-
5
- import React, {
6
- ReactNode,
7
- forwardRef,
8
- useCallback,
9
- useEffect,
10
- useImperativeHandle,
11
- useMemo,
12
- useState,
13
- } from 'react';
14
-
15
- import {
16
- StyleSheet,
17
- Keyboard,
18
- StatusBar,
19
- I18nManager,
20
- StatusBarAnimation,
21
- StyleProp,
22
- ViewStyle,
23
- LayoutChangeEvent,
24
- Platform,
25
- } from 'react-native';
26
-
27
- import Animated, {
28
- Extrapolation,
29
- SharedValue,
30
- interpolate,
31
- runOnJS,
32
- useAnimatedProps,
33
- useAnimatedStyle,
34
- useDerivedValue,
35
- useSharedValue,
36
- withSpring,
37
- } from 'react-native-reanimated';
38
-
39
- import { GestureObjects as Gesture } from '../handlers/gestures/gestureObjects';
40
- import { GestureDetector } from '../handlers/gestures/GestureDetector';
41
- import {
42
- UserSelect,
43
- ActiveCursor,
44
- MouseButton,
45
- HitSlop,
46
- GestureStateChangeEvent,
47
- } from '../handlers/gestureHandlerCommon';
48
- import { PanGestureHandlerEventPayload } from '../handlers/GestureHandlerEventPayload';
49
-
50
- const DRAG_TOSS = 0.05;
51
-
52
- export enum DrawerPosition {
53
- LEFT,
54
- RIGHT,
55
- }
56
-
57
- export enum DrawerState {
58
- IDLE,
59
- DRAGGING,
60
- SETTLING,
61
- }
62
-
63
- export enum DrawerType {
64
- FRONT,
65
- BACK,
66
- SLIDE,
67
- }
68
-
69
- export enum DrawerLockMode {
70
- UNLOCKED,
71
- LOCKED_CLOSED,
72
- LOCKED_OPEN,
73
- }
74
-
75
- export enum DrawerKeyboardDismissMode {
76
- NONE,
77
- ON_DRAG,
78
- }
79
-
80
- export interface DrawerLayoutProps {
81
- /**
82
- * This attribute is present in the native android implementation already and is one
83
- * of the required params. The gesture handler version of DrawerLayout makes it
84
- * possible for the function passed as `renderNavigationView` to take an
85
- * Animated value as a parameter that indicates the progress of drawer
86
- * opening/closing animation (progress value is 0 when closed and 1 when
87
- * opened). This can be used by the drawer component to animated its children
88
- * while the drawer is opening or closing.
89
- */
90
- renderNavigationView: (
91
- progressAnimatedValue: SharedValue<number>
92
- ) => ReactNode;
93
-
94
- /**
95
- * Determines the side from which the drawer will open.
96
- */
97
- drawerPosition?: DrawerPosition;
98
-
99
- /**
100
- * Width of the drawer.
101
- */
102
- drawerWidth?: number;
103
-
104
- /**
105
- * Background color of the drawer.
106
- */
107
- drawerBackgroundColor?: string;
108
-
109
- /**
110
- * Specifies the lock mode of the drawer.
111
- * Programatic opening/closing isn't affected by the lock mode. Defaults to `UNLOCKED`.
112
- * - `UNLOCKED` - the drawer will respond to gestures.
113
- * - `LOCKED_CLOSED` - the drawer will move freely until it settles in a closed position, then the gestures will be disabled.
114
- * - `LOCKED_OPEN` - the drawer will move freely until it settles in an opened position, then the gestures will be disabled.
115
- */
116
- drawerLockMode?: DrawerLockMode;
117
-
118
- /**
119
- * Determines if system keyboard should be closed upon dragging the drawer.
120
- */
121
- keyboardDismissMode?: DrawerKeyboardDismissMode;
122
-
123
- /**
124
- * Called when the drawer is closed.
125
- */
126
- onDrawerClose?: () => void;
127
-
128
- /**
129
- * Called when the drawer is opened.
130
- */
131
- onDrawerOpen?: () => void;
132
-
133
- /**
134
- * Called when the status of the drawer changes.
135
- */
136
- onDrawerStateChanged?: (
137
- newState: DrawerState,
138
- drawerWillShow: boolean
139
- ) => void;
140
-
141
- /**
142
- * Type of animation that will play when opening the drawer.
143
- */
144
- drawerType?: DrawerType;
145
-
146
- /**
147
- * Speed of animation that will play when letting go, or dismissing the drawer.
148
- * This will also be the default animation speed for programatic controlls.
149
- */
150
- animationSpeed?: number;
151
-
152
- /**
153
- * Defines how far from the edge of the content view the gesture should
154
- * activate.
155
- */
156
- edgeWidth?: number;
157
-
158
- /**
159
- * Minimal distance to swipe before the drawer starts moving.
160
- */
161
- minSwipeDistance?: number;
162
-
163
- /**
164
- * When set to true Drawer component will use
165
- * {@link https://reactnative.dev/docs/statusbar StatusBar} API to hide the OS
166
- * status bar whenever the drawer is pulled or when its in an "open" state.
167
- */
168
- hideStatusBar?: boolean;
169
-
170
- /**
171
- * @default 'slide'
172
- *
173
- * Can be used when hideStatusBar is set to true and will select the animation
174
- * used for hiding/showing the status bar. See
175
- * {@link https://reactnative.dev/docs/statusbar StatusBar} documentation for
176
- * more details
177
- */
178
- statusBarAnimation?: StatusBarAnimation;
179
-
180
- /**
181
- * @default 'rgba(0, 0, 0, 0.7)'
182
- *
183
- * Color of the background overlay.
184
- * Animated from `0%` to `100%` as the drawer opens.
185
- */
186
- overlayColor?: string;
187
-
188
- /**
189
- * Style wrapping the content.
190
- */
191
- contentContainerStyle?: StyleProp<ViewStyle>;
192
-
193
- /**
194
- * Style wrapping the drawer.
195
- */
196
- drawerContainerStyle?: StyleProp<ViewStyle>;
197
-
198
- /**
199
- * Enables two-finger gestures on supported devices, for example iPads with
200
- * trackpads. If not enabled the gesture will require click + drag, with
201
- * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger
202
- * the gesture.
203
- */
204
- enableTrackpadTwoFingerGesture?: boolean;
205
-
206
- onDrawerSlide?: (position: number) => void;
207
-
208
- // Implicit `children` prop has been removed in @types/react^18.0.
209
- /**
210
- * Elements that will be rendered inside the content view.
211
- */
212
- children?: ReactNode | ((openValue?: SharedValue<number>) => ReactNode);
213
-
214
- /**
215
- * @default 'none'
216
- * Sets whether the text inside both the drawer and the context window can be selected.
217
- * Values: 'none' | 'text' | 'auto'
218
- */
219
- userSelect?: UserSelect;
220
-
221
- /**
222
- * @default 'auto'
223
- * Sets the displayed cursor pictogram when the drawer is being dragged.
224
- * Values: see CSS cursor values
225
- */
226
- activeCursor?: ActiveCursor;
227
-
228
- /**
229
- * @default 'MouseButton.LEFT'
230
- * Allows to choose which mouse button should underlying pan handler react to.
231
- */
232
- mouseButton?: MouseButton;
233
-
234
- /**
235
- * @default 'false if MouseButton.RIGHT is specified'
236
- * Allows to enable/disable context menu.
237
- */
238
- enableContextMenu?: boolean;
239
- }
240
-
241
- export type DrawerMovementOption = {
242
- initialVelocity?: number;
243
- animationSpeed?: number;
244
- };
245
-
246
- export interface DrawerLayoutMethods {
247
- openDrawer: (options?: DrawerMovementOption) => void;
248
- closeDrawer: (options?: DrawerMovementOption) => void;
249
- }
250
-
251
- const defaultProps = {
252
- drawerWidth: 200,
253
- drawerPosition: DrawerPosition.LEFT,
254
- drawerType: DrawerType.FRONT,
255
- edgeWidth: 20,
256
- minSwipeDistance: 3,
257
- overlayColor: 'rgba(0, 0, 0, 0.7)',
258
- drawerLockMode: DrawerLockMode.UNLOCKED,
259
- enableTrackpadTwoFingerGesture: false,
260
- activeCursor: 'auto' as ActiveCursor,
261
- mouseButton: MouseButton.LEFT,
262
- statusBarAnimation: 'slide' as StatusBarAnimation,
263
- };
264
-
265
- // StatusBar.setHidden and Keyboard.dismiss cannot be directly referenced in worklets.
266
- const setStatusBarHidden = StatusBar.setHidden;
267
- const dismissKeyboard = Keyboard.dismiss;
268
-
269
- const DrawerLayout = forwardRef<DrawerLayoutMethods, DrawerLayoutProps>(
270
- function DrawerLayout(props: DrawerLayoutProps, ref) {
271
- const [containerWidth, setContainerWidth] = useState(0);
272
- const [drawerState, setDrawerState] = useState<DrawerState>(
273
- DrawerState.IDLE
274
- );
275
- const [drawerOpened, setDrawerOpened] = useState(false);
276
-
277
- const {
278
- drawerPosition = defaultProps.drawerPosition,
279
- drawerWidth = defaultProps.drawerWidth,
280
- drawerType = defaultProps.drawerType,
281
- drawerBackgroundColor,
282
- drawerContainerStyle,
283
- contentContainerStyle,
284
- minSwipeDistance = defaultProps.minSwipeDistance,
285
- edgeWidth = defaultProps.edgeWidth,
286
- drawerLockMode = defaultProps.drawerLockMode,
287
- overlayColor = defaultProps.overlayColor,
288
- enableTrackpadTwoFingerGesture = defaultProps.enableTrackpadTwoFingerGesture,
289
- activeCursor = defaultProps.activeCursor,
290
- mouseButton = defaultProps.mouseButton,
291
- statusBarAnimation = defaultProps.statusBarAnimation,
292
- hideStatusBar,
293
- keyboardDismissMode,
294
- userSelect,
295
- enableContextMenu,
296
- renderNavigationView,
297
- onDrawerSlide,
298
- onDrawerClose,
299
- onDrawerOpen,
300
- onDrawerStateChanged,
301
- animationSpeed: animationSpeedProp,
302
- } = props;
303
-
304
- const isFromLeft = drawerPosition === DrawerPosition.LEFT;
305
-
306
- const sideCorrection = isFromLeft ? 1 : -1;
307
-
308
- // While closing the drawer when user starts gesture in the greyed out part of the window,
309
- // we want the drawer to follow only once the finger reaches the edge of the drawer.
310
- // See the diagram for reference. * = starting finger position, < = current finger position
311
- // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+
312
- // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
313
- // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
314
- // |XXXXXXXX|..<*..| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|
315
- // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
316
- // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
317
- // +---------------+ +---------------+ +---------------+ +---------------+
318
-
319
- const openValue = useSharedValue<number>(0);
320
-
321
- useDerivedValue(() => {
322
- onDrawerSlide && runOnJS(onDrawerSlide)(openValue.value);
323
- }, []);
324
-
325
- const isDrawerOpen = useSharedValue(false);
326
-
327
- const handleContainerLayout = ({ nativeEvent }: LayoutChangeEvent) => {
328
- setContainerWidth(nativeEvent.layout.width);
329
- };
330
-
331
- const emitStateChanged = useCallback(
332
- (newState: DrawerState, drawerWillShow: boolean) => {
333
- 'worklet';
334
- onDrawerStateChanged &&
335
- runOnJS(onDrawerStateChanged)?.(newState, drawerWillShow);
336
- },
337
- [onDrawerStateChanged]
338
- );
339
-
340
- const drawerAnimatedProps = useAnimatedProps(() => ({
341
- accessibilityViewIsModal: isDrawerOpen.value,
342
- }));
343
-
344
- const overlayAnimatedProps = useAnimatedProps(() => ({
345
- pointerEvents: isDrawerOpen.value ? ('auto' as const) : ('none' as const),
346
- }));
347
-
348
- // While the drawer is hidden, it's hitSlop overflows onto the main view by edgeWidth
349
- // This way it can be swiped open even when it's hidden
350
- const [edgeHitSlop, setEdgeHitSlop] = useState<HitSlop>(
351
- isFromLeft
352
- ? { left: 0, width: edgeWidth }
353
- : { right: 0, width: edgeWidth }
354
- );
355
-
356
- // gestureOrientation is 1 if the gesture is expected to move from left to right and -1 otherwise
357
- const gestureOrientation = useMemo(
358
- () => sideCorrection * (drawerOpened ? -1 : 1),
359
- [sideCorrection, drawerOpened]
360
- );
361
-
362
- useEffect(() => {
363
- setEdgeHitSlop(
364
- isFromLeft
365
- ? { left: 0, width: edgeWidth }
366
- : { right: 0, width: edgeWidth }
367
- );
368
- }, [isFromLeft, edgeWidth]);
369
-
370
- const animateDrawer = useCallback(
371
- (toValue: number, initialVelocity: number, animationSpeed?: number) => {
372
- 'worklet';
373
- const willShow = toValue !== 0;
374
- isDrawerOpen.value = willShow;
375
-
376
- emitStateChanged(DrawerState.SETTLING, willShow);
377
- runOnJS(setDrawerState)(DrawerState.SETTLING);
378
-
379
- if (hideStatusBar) {
380
- runOnJS(setStatusBarHidden)(willShow, statusBarAnimation);
381
- }
382
-
383
- const normalizedToValue = interpolate(
384
- toValue,
385
- [0, drawerWidth],
386
- [0, 1],
387
- Extrapolation.CLAMP
388
- );
389
-
390
- const normalizedInitialVelocity = interpolate(
391
- initialVelocity,
392
- [0, drawerWidth],
393
- [0, 1],
394
- Extrapolation.CLAMP
395
- );
396
-
397
- openValue.value = withSpring(
398
- normalizedToValue,
399
- {
400
- overshootClamping: true,
401
- velocity: normalizedInitialVelocity,
402
- mass: animationSpeed
403
- ? 1 / animationSpeed
404
- : 1 / (animationSpeedProp ?? 1),
405
- damping: 40,
406
- stiffness: 500,
407
- },
408
- (finished) => {
409
- if (finished) {
410
- emitStateChanged(DrawerState.IDLE, willShow);
411
- runOnJS(setDrawerOpened)(willShow);
412
- runOnJS(setDrawerState)(DrawerState.IDLE);
413
- if (willShow) {
414
- onDrawerOpen && runOnJS(onDrawerOpen)?.();
415
- } else {
416
- onDrawerClose && runOnJS(onDrawerClose)?.();
417
- }
418
- }
419
- }
420
- );
421
- },
422
- [
423
- openValue,
424
- emitStateChanged,
425
- isDrawerOpen,
426
- hideStatusBar,
427
- onDrawerClose,
428
- onDrawerOpen,
429
- drawerWidth,
430
- statusBarAnimation,
431
- ]
432
- );
433
-
434
- const handleRelease = useCallback(
435
- (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => {
436
- 'worklet';
437
- let { translationX: dragX, velocityX, x: touchX } = event;
438
-
439
- if (drawerPosition !== DrawerPosition.LEFT) {
440
- // See description in _updateAnimatedEvent about why events are flipped
441
- // for right-side drawer
442
- dragX = -dragX;
443
- touchX = containerWidth - touchX;
444
- velocityX = -velocityX;
445
- }
446
-
447
- const gestureStartX = touchX - dragX;
448
- let dragOffsetBasedOnStart = 0;
449
-
450
- if (drawerType === DrawerType.FRONT) {
451
- dragOffsetBasedOnStart =
452
- gestureStartX > drawerWidth ? gestureStartX - drawerWidth : 0;
453
- }
454
-
455
- const startOffsetX =
456
- dragX +
457
- dragOffsetBasedOnStart +
458
- (isDrawerOpen.value ? drawerWidth : 0);
459
-
460
- const projOffsetX = startOffsetX + DRAG_TOSS * velocityX;
461
-
462
- const shouldOpen = projOffsetX > drawerWidth / 2;
463
-
464
- if (shouldOpen) {
465
- animateDrawer(drawerWidth, velocityX);
466
- } else {
467
- animateDrawer(0, velocityX);
468
- }
469
- },
470
- [
471
- animateDrawer,
472
- containerWidth,
473
- drawerPosition,
474
- drawerType,
475
- drawerWidth,
476
- isDrawerOpen,
477
- ]
478
- );
479
-
480
- const openDrawer = useCallback(
481
- (options: DrawerMovementOption = {}) => {
482
- 'worklet';
483
- animateDrawer(
484
- drawerWidth,
485
- options.initialVelocity ?? 0,
486
- options.animationSpeed
487
- );
488
- },
489
- [animateDrawer, drawerWidth]
490
- );
491
-
492
- const closeDrawer = useCallback(
493
- (options: DrawerMovementOption = {}) => {
494
- 'worklet';
495
- animateDrawer(0, options.initialVelocity ?? 0, options.animationSpeed);
496
- },
497
- [animateDrawer]
498
- );
499
-
500
- const overlayDismissGesture = useMemo(
501
- () =>
502
- Gesture.Tap()
503
- .maxDistance(25)
504
- .onEnd(() => {
505
- if (
506
- isDrawerOpen.value &&
507
- drawerLockMode !== DrawerLockMode.LOCKED_OPEN
508
- ) {
509
- closeDrawer();
510
- }
511
- }),
512
- [closeDrawer, isDrawerOpen, drawerLockMode]
513
- );
514
-
515
- const overlayAnimatedStyle = useAnimatedStyle(() => ({
516
- opacity: openValue.value,
517
- backgroundColor: overlayColor,
518
- }));
519
-
520
- const fillHitSlop = useMemo(
521
- () => (isFromLeft ? { left: drawerWidth } : { right: drawerWidth }),
522
- [drawerWidth, isFromLeft]
523
- );
524
-
525
- const panGesture = useMemo(() => {
526
- return Gesture.Pan()
527
- .activeCursor(activeCursor)
528
- .mouseButton(mouseButton)
529
- .hitSlop(drawerOpened ? fillHitSlop : edgeHitSlop)
530
- .minDistance(drawerOpened ? 100 : 0)
531
- .activeOffsetX(gestureOrientation * minSwipeDistance)
532
- .failOffsetY([-15, 15])
533
- .simultaneousWithExternalGesture(overlayDismissGesture)
534
- .enableTrackpadTwoFingerGesture(enableTrackpadTwoFingerGesture)
535
- .enabled(
536
- drawerState !== DrawerState.SETTLING &&
537
- (drawerOpened
538
- ? drawerLockMode !== DrawerLockMode.LOCKED_OPEN
539
- : drawerLockMode !== DrawerLockMode.LOCKED_CLOSED)
540
- )
541
- .onStart(() => {
542
- emitStateChanged(DrawerState.DRAGGING, false);
543
- runOnJS(setDrawerState)(DrawerState.DRAGGING);
544
- if (keyboardDismissMode === DrawerKeyboardDismissMode.ON_DRAG) {
545
- runOnJS(dismissKeyboard)();
546
- }
547
- if (hideStatusBar) {
548
- runOnJS(setStatusBarHidden)(true, statusBarAnimation);
549
- }
550
- })
551
- .onUpdate((event) => {
552
- const startedOutsideTranslation = isFromLeft
553
- ? interpolate(
554
- event.x,
555
- [0, drawerWidth, drawerWidth + 1],
556
- [0, drawerWidth, drawerWidth]
557
- )
558
- : interpolate(
559
- event.x - containerWidth,
560
- [-drawerWidth - 1, -drawerWidth, 0],
561
- [drawerWidth, drawerWidth, 0]
562
- );
563
-
564
- const startedInsideTranslation =
565
- sideCorrection *
566
- (event.translationX +
567
- (drawerOpened ? drawerWidth * -gestureOrientation : 0));
568
-
569
- const adjustedTranslation = Math.max(
570
- drawerOpened ? startedOutsideTranslation : 0,
571
- startedInsideTranslation
572
- );
573
-
574
- openValue.value = interpolate(
575
- adjustedTranslation,
576
- [-drawerWidth, 0, drawerWidth],
577
- [1, 0, 1],
578
- Extrapolation.CLAMP
579
- );
580
- })
581
- .onEnd(handleRelease);
582
- }, [
583
- drawerLockMode,
584
- openValue,
585
- drawerWidth,
586
- emitStateChanged,
587
- gestureOrientation,
588
- handleRelease,
589
- edgeHitSlop,
590
- fillHitSlop,
591
- minSwipeDistance,
592
- hideStatusBar,
593
- keyboardDismissMode,
594
- overlayDismissGesture,
595
- drawerOpened,
596
- isFromLeft,
597
- containerWidth,
598
- sideCorrection,
599
- drawerState,
600
- activeCursor,
601
- enableTrackpadTwoFingerGesture,
602
- mouseButton,
603
- statusBarAnimation,
604
- ]);
605
-
606
- // When using RTL, row and row-reverse flex directions are flipped.
607
- const reverseContentDirection = I18nManager.isRTL
608
- ? isFromLeft
609
- : !isFromLeft;
610
-
611
- const dynamicDrawerStyles = {
612
- backgroundColor: drawerBackgroundColor,
613
- width: drawerWidth,
614
- };
615
-
616
- const containerStyles = useAnimatedStyle(() => {
617
- if (drawerType === DrawerType.FRONT) {
618
- return {};
619
- }
620
-
621
- return {
622
- transform: [
623
- {
624
- translateX: interpolate(
625
- openValue.value,
626
- [0, 1],
627
- [0, drawerWidth * sideCorrection],
628
- Extrapolation.CLAMP
629
- ),
630
- },
631
- ],
632
- };
633
- });
634
-
635
- const drawerAnimatedStyle = useAnimatedStyle(() => {
636
- const closedDrawerOffset = drawerWidth * -sideCorrection;
637
- const isBack = drawerType === DrawerType.BACK;
638
- const isIdle = drawerState === DrawerState.IDLE;
639
-
640
- if (isBack) {
641
- return {
642
- transform: [{ translateX: 0 }],
643
- flexDirection: reverseContentDirection ? 'row-reverse' : 'row',
644
- };
645
- }
646
-
647
- let translateX = 0;
648
-
649
- if (isIdle) {
650
- translateX = drawerOpened ? 0 : closedDrawerOffset;
651
- } else {
652
- translateX = interpolate(
653
- openValue.value,
654
- [0, 1],
655
- [closedDrawerOffset, 0],
656
- Extrapolation.CLAMP
657
- );
658
- }
659
-
660
- return {
661
- transform: [{ translateX }],
662
- flexDirection: reverseContentDirection ? 'row-reverse' : 'row',
663
- };
664
- });
665
-
666
- const containerAnimatedProps = useAnimatedProps(() => ({
667
- importantForAccessibility:
668
- Platform.OS === 'android'
669
- ? isDrawerOpen.value
670
- ? ('no-hide-descendants' as const)
671
- : ('yes' as const)
672
- : undefined,
673
- }));
674
-
675
- const children =
676
- typeof props.children === 'function'
677
- ? props.children(openValue) // renderer function
678
- : props.children;
679
-
680
- useImperativeHandle(
681
- ref,
682
- () => ({
683
- openDrawer,
684
- closeDrawer,
685
- }),
686
- [openDrawer, closeDrawer]
687
- );
688
-
689
- return (
690
- <GestureDetector
691
- gesture={panGesture}
692
- userSelect={userSelect}
693
- enableContextMenu={enableContextMenu}>
694
- <Animated.View style={styles.main} onLayout={handleContainerLayout}>
695
- <GestureDetector gesture={overlayDismissGesture}>
696
- <Animated.View
697
- style={[
698
- drawerType === DrawerType.FRONT
699
- ? styles.containerOnBack
700
- : styles.containerInFront,
701
- containerStyles,
702
- contentContainerStyle,
703
- ]}
704
- animatedProps={containerAnimatedProps}>
705
- {children}
706
- <Animated.View
707
- animatedProps={overlayAnimatedProps}
708
- style={[styles.overlay, overlayAnimatedStyle]}
709
- />
710
- </Animated.View>
711
- </GestureDetector>
712
- <Animated.View
713
- pointerEvents="box-none"
714
- animatedProps={drawerAnimatedProps}
715
- style={[
716
- styles.drawerContainer,
717
- drawerAnimatedStyle,
718
- drawerContainerStyle,
719
- ]}>
720
- <Animated.View style={dynamicDrawerStyles}>
721
- {renderNavigationView(openValue)}
722
- </Animated.View>
723
- </Animated.View>
724
- </Animated.View>
725
- </GestureDetector>
726
- );
727
- }
728
- );
729
-
730
- export default DrawerLayout;
731
-
732
- const styles = StyleSheet.create({
733
- drawerContainer: {
734
- ...StyleSheet.absoluteFillObject,
735
- zIndex: 1001,
736
- flexDirection: 'row',
737
- },
738
- containerInFront: {
739
- ...StyleSheet.absoluteFillObject,
740
- zIndex: 1002,
741
- },
742
- containerOnBack: {
743
- ...StyleSheet.absoluteFillObject,
744
- },
745
- main: {
746
- flex: 1,
747
- zIndex: 0,
748
- overflow: 'hidden',
749
- },
750
- overlay: {
751
- ...StyleSheet.absoluteFillObject,
752
- zIndex: 1000,
753
- },
754
- });