@hanzogui/sheet 3.0.2 → 7.0.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 (303) hide show
  1. package/controller/index.cjs +1 -1
  2. package/controller/index.native.cjs +1 -1
  3. package/next.md +2 -2
  4. package/package.json +24 -24
  5. package/setup-gesture-handler/index.cjs +1 -1
  6. package/setup-gesture-handler/index.native.cjs +1 -1
  7. package/src/Sheet.tsx +3 -3
  8. package/src/SheetController.tsx +4 -1
  9. package/src/SheetImplementationCustom.tsx +24 -13
  10. package/src/createSheet.tsx +9 -9
  11. package/src/setupGestureHandler.ts +2 -2
  12. package/src/useSheetController.tsx +4 -0
  13. package/src/useSheetProviderProps.tsx +4 -4
  14. package/types/Sheet.d.ts +51 -51
  15. package/types/SheetContext.d.ts +8 -8
  16. package/types/SheetController.d.ts +1 -1
  17. package/types/SheetImplementationCustom.d.ts +4 -4
  18. package/types/SheetScrollView.d.ts +10 -10
  19. package/types/createSheet.d.ts +39 -39
  20. package/types/gestureState.d.ts +3 -3
  21. package/types/setupGestureHandler.d.ts +1 -1
  22. package/types/types.d.ts +4 -4
  23. package/types/useSheetController.d.ts +3 -0
  24. package/types/useSheetProviderProps.d.ts +4 -4
  25. package/dist/cjs/GestureDetectorWrapper.cjs +0 -48
  26. package/dist/cjs/GestureDetectorWrapper.native.js +0 -53
  27. package/dist/cjs/GestureDetectorWrapper.native.js.map +0 -1
  28. package/dist/cjs/GestureSheetContext.cjs +0 -52
  29. package/dist/cjs/GestureSheetContext.native.js +0 -56
  30. package/dist/cjs/GestureSheetContext.native.js.map +0 -1
  31. package/dist/cjs/Sheet.cjs +0 -117
  32. package/dist/cjs/Sheet.native.js +0 -120
  33. package/dist/cjs/Sheet.native.js.map +0 -1
  34. package/dist/cjs/SheetContext.cjs +0 -32
  35. package/dist/cjs/SheetContext.native.js +0 -35
  36. package/dist/cjs/SheetContext.native.js.map +0 -1
  37. package/dist/cjs/SheetController.cjs +0 -65
  38. package/dist/cjs/SheetController.native.js +0 -71
  39. package/dist/cjs/SheetController.native.js.map +0 -1
  40. package/dist/cjs/SheetImplementationCustom.cjs +0 -472
  41. package/dist/cjs/SheetImplementationCustom.native.js +0 -524
  42. package/dist/cjs/SheetImplementationCustom.native.js.map +0 -1
  43. package/dist/cjs/SheetScrollView.cjs +0 -180
  44. package/dist/cjs/SheetScrollView.native.js +0 -197
  45. package/dist/cjs/SheetScrollView.native.js.map +0 -1
  46. package/dist/cjs/constants.cjs +0 -32
  47. package/dist/cjs/constants.native.js +0 -35
  48. package/dist/cjs/constants.native.js.map +0 -1
  49. package/dist/cjs/contexts.cjs +0 -42
  50. package/dist/cjs/contexts.native.js +0 -45
  51. package/dist/cjs/contexts.native.js.map +0 -1
  52. package/dist/cjs/controller.cjs +0 -29
  53. package/dist/cjs/controller.native.js +0 -32
  54. package/dist/cjs/controller.native.js.map +0 -1
  55. package/dist/cjs/createSheet.cjs +0 -191
  56. package/dist/cjs/createSheet.native.js +0 -208
  57. package/dist/cjs/createSheet.native.js.map +0 -1
  58. package/dist/cjs/gestureState.cjs +0 -39
  59. package/dist/cjs/gestureState.native.js +0 -42
  60. package/dist/cjs/gestureState.native.js.map +0 -1
  61. package/dist/cjs/helpers.cjs +0 -31
  62. package/dist/cjs/helpers.native.js +0 -35
  63. package/dist/cjs/helpers.native.js.map +0 -1
  64. package/dist/cjs/index.cjs +0 -28
  65. package/dist/cjs/index.native.js +0 -31
  66. package/dist/cjs/index.native.js.map +0 -1
  67. package/dist/cjs/nativeSheet.cjs +0 -87
  68. package/dist/cjs/nativeSheet.native.js +0 -101
  69. package/dist/cjs/nativeSheet.native.js.map +0 -1
  70. package/dist/cjs/setupGestureHandler.cjs +0 -46
  71. package/dist/cjs/setupGestureHandler.native.js +0 -50
  72. package/dist/cjs/setupGestureHandler.native.js.map +0 -1
  73. package/dist/cjs/types.cjs +0 -16
  74. package/dist/cjs/types.native.js +0 -19
  75. package/dist/cjs/types.native.js.map +0 -1
  76. package/dist/cjs/useGestureHandlerPan.cjs +0 -136
  77. package/dist/cjs/useGestureHandlerPan.native.js +0 -145
  78. package/dist/cjs/useGestureHandlerPan.native.js.map +0 -1
  79. package/dist/cjs/useKeyboardControllerSheet.cjs +0 -38
  80. package/dist/cjs/useKeyboardControllerSheet.native.js +0 -114
  81. package/dist/cjs/useKeyboardControllerSheet.native.js.map +0 -1
  82. package/dist/cjs/useSheet.cjs +0 -27
  83. package/dist/cjs/useSheet.native.js +0 -32
  84. package/dist/cjs/useSheet.native.js.map +0 -1
  85. package/dist/cjs/useSheetController.cjs +0 -50
  86. package/dist/cjs/useSheetController.native.js +0 -53
  87. package/dist/cjs/useSheetController.native.js.map +0 -1
  88. package/dist/cjs/useSheetOffscreenSize.cjs +0 -51
  89. package/dist/cjs/useSheetOffscreenSize.native.js +0 -61
  90. package/dist/cjs/useSheetOffscreenSize.native.js.map +0 -1
  91. package/dist/cjs/useSheetOpenState.cjs +0 -49
  92. package/dist/cjs/useSheetOpenState.native.js +0 -56
  93. package/dist/cjs/useSheetOpenState.native.js.map +0 -1
  94. package/dist/cjs/useSheetProviderProps.cjs +0 -133
  95. package/dist/cjs/useSheetProviderProps.native.js +0 -153
  96. package/dist/cjs/useSheetProviderProps.native.js.map +0 -1
  97. package/dist/cjs/useSheetScrollViewGestures.cjs +0 -123
  98. package/dist/cjs/useSheetScrollViewGestures.native.js +0 -110
  99. package/dist/cjs/useSheetScrollViewGestures.native.js.map +0 -1
  100. package/dist/esm/GestureDetectorWrapper.mjs +0 -25
  101. package/dist/esm/GestureDetectorWrapper.mjs.map +0 -1
  102. package/dist/esm/GestureDetectorWrapper.native.js +0 -27
  103. package/dist/esm/GestureDetectorWrapper.native.js.map +0 -1
  104. package/dist/esm/GestureSheetContext.mjs +0 -28
  105. package/dist/esm/GestureSheetContext.mjs.map +0 -1
  106. package/dist/esm/GestureSheetContext.native.js +0 -29
  107. package/dist/esm/GestureSheetContext.native.js.map +0 -1
  108. package/dist/esm/Sheet.mjs +0 -89
  109. package/dist/esm/Sheet.mjs.map +0 -1
  110. package/dist/esm/Sheet.native.js +0 -89
  111. package/dist/esm/Sheet.native.js.map +0 -1
  112. package/dist/esm/SheetContext.mjs +0 -6
  113. package/dist/esm/SheetContext.mjs.map +0 -1
  114. package/dist/esm/SheetContext.native.js +0 -6
  115. package/dist/esm/SheetContext.native.js.map +0 -1
  116. package/dist/esm/SheetController.mjs +0 -31
  117. package/dist/esm/SheetController.mjs.map +0 -1
  118. package/dist/esm/SheetController.native.js +0 -34
  119. package/dist/esm/SheetController.native.js.map +0 -1
  120. package/dist/esm/SheetImplementationCustom.mjs +0 -437
  121. package/dist/esm/SheetImplementationCustom.mjs.map +0 -1
  122. package/dist/esm/SheetImplementationCustom.native.js +0 -487
  123. package/dist/esm/SheetImplementationCustom.native.js.map +0 -1
  124. package/dist/esm/SheetScrollView.mjs +0 -146
  125. package/dist/esm/SheetScrollView.mjs.map +0 -1
  126. package/dist/esm/SheetScrollView.native.js +0 -160
  127. package/dist/esm/SheetScrollView.native.js.map +0 -1
  128. package/dist/esm/constants.mjs +0 -6
  129. package/dist/esm/constants.mjs.map +0 -1
  130. package/dist/esm/constants.native.js +0 -6
  131. package/dist/esm/constants.native.js.map +0 -1
  132. package/dist/esm/contexts.mjs +0 -7
  133. package/dist/esm/contexts.mjs.map +0 -1
  134. package/dist/esm/contexts.native.js +0 -7
  135. package/dist/esm/contexts.native.js.map +0 -1
  136. package/dist/esm/controller.mjs +0 -4
  137. package/dist/esm/controller.mjs.map +0 -1
  138. package/dist/esm/controller.native.js +0 -4
  139. package/dist/esm/controller.native.js.map +0 -1
  140. package/dist/esm/createSheet.mjs +0 -168
  141. package/dist/esm/createSheet.mjs.map +0 -1
  142. package/dist/esm/createSheet.native.js +0 -182
  143. package/dist/esm/createSheet.native.js.map +0 -1
  144. package/dist/esm/gestureState.mjs +0 -13
  145. package/dist/esm/gestureState.mjs.map +0 -1
  146. package/dist/esm/gestureState.native.js +0 -13
  147. package/dist/esm/gestureState.native.js.map +0 -1
  148. package/dist/esm/helpers.mjs +0 -8
  149. package/dist/esm/helpers.mjs.map +0 -1
  150. package/dist/esm/helpers.native.js +0 -9
  151. package/dist/esm/helpers.native.js.map +0 -1
  152. package/dist/esm/index.js +0 -12
  153. package/dist/esm/index.js.map +0 -1
  154. package/dist/esm/index.mjs +0 -12
  155. package/dist/esm/index.mjs.map +0 -1
  156. package/dist/esm/index.native.js +0 -12
  157. package/dist/esm/index.native.js.map +0 -1
  158. package/dist/esm/nativeSheet.mjs +0 -63
  159. package/dist/esm/nativeSheet.mjs.map +0 -1
  160. package/dist/esm/nativeSheet.native.js +0 -74
  161. package/dist/esm/nativeSheet.native.js.map +0 -1
  162. package/dist/esm/setupGestureHandler.mjs +0 -22
  163. package/dist/esm/setupGestureHandler.mjs.map +0 -1
  164. package/dist/esm/setupGestureHandler.native.js +0 -23
  165. package/dist/esm/setupGestureHandler.native.js.map +0 -1
  166. package/dist/esm/types.mjs +0 -2
  167. package/dist/esm/types.mjs.map +0 -1
  168. package/dist/esm/types.native.js +0 -2
  169. package/dist/esm/types.native.js.map +0 -1
  170. package/dist/esm/useGestureHandlerPan.mjs +0 -113
  171. package/dist/esm/useGestureHandlerPan.mjs.map +0 -1
  172. package/dist/esm/useGestureHandlerPan.native.js +0 -119
  173. package/dist/esm/useGestureHandlerPan.native.js.map +0 -1
  174. package/dist/esm/useKeyboardControllerSheet.mjs +0 -15
  175. package/dist/esm/useKeyboardControllerSheet.mjs.map +0 -1
  176. package/dist/esm/useKeyboardControllerSheet.native.js +0 -88
  177. package/dist/esm/useKeyboardControllerSheet.native.js.map +0 -1
  178. package/dist/esm/useSheet.mjs +0 -4
  179. package/dist/esm/useSheet.mjs.map +0 -1
  180. package/dist/esm/useSheet.native.js +0 -6
  181. package/dist/esm/useSheet.native.js.map +0 -1
  182. package/dist/esm/useSheetController.mjs +0 -15
  183. package/dist/esm/useSheetController.mjs.map +0 -1
  184. package/dist/esm/useSheetController.native.js +0 -15
  185. package/dist/esm/useSheetController.native.js.map +0 -1
  186. package/dist/esm/useSheetOffscreenSize.mjs +0 -28
  187. package/dist/esm/useSheetOffscreenSize.mjs.map +0 -1
  188. package/dist/esm/useSheetOffscreenSize.native.js +0 -35
  189. package/dist/esm/useSheetOffscreenSize.native.js.map +0 -1
  190. package/dist/esm/useSheetOpenState.mjs +0 -26
  191. package/dist/esm/useSheetOpenState.mjs.map +0 -1
  192. package/dist/esm/useSheetOpenState.native.js +0 -30
  193. package/dist/esm/useSheetOpenState.native.js.map +0 -1
  194. package/dist/esm/useSheetProviderProps.mjs +0 -99
  195. package/dist/esm/useSheetProviderProps.mjs.map +0 -1
  196. package/dist/esm/useSheetProviderProps.native.js +0 -116
  197. package/dist/esm/useSheetProviderProps.native.js.map +0 -1
  198. package/dist/esm/useSheetScrollViewGestures.mjs +0 -100
  199. package/dist/esm/useSheetScrollViewGestures.mjs.map +0 -1
  200. package/dist/esm/useSheetScrollViewGestures.native.js +0 -84
  201. package/dist/esm/useSheetScrollViewGestures.native.js.map +0 -1
  202. package/dist/jsx/GestureDetectorWrapper.mjs +0 -25
  203. package/dist/jsx/GestureDetectorWrapper.mjs.map +0 -1
  204. package/dist/jsx/GestureDetectorWrapper.native.js +0 -53
  205. package/dist/jsx/GestureDetectorWrapper.native.js.map +0 -1
  206. package/dist/jsx/GestureSheetContext.mjs +0 -28
  207. package/dist/jsx/GestureSheetContext.mjs.map +0 -1
  208. package/dist/jsx/GestureSheetContext.native.js +0 -56
  209. package/dist/jsx/GestureSheetContext.native.js.map +0 -1
  210. package/dist/jsx/Sheet.mjs +0 -89
  211. package/dist/jsx/Sheet.mjs.map +0 -1
  212. package/dist/jsx/Sheet.native.js +0 -120
  213. package/dist/jsx/Sheet.native.js.map +0 -1
  214. package/dist/jsx/SheetContext.mjs +0 -6
  215. package/dist/jsx/SheetContext.mjs.map +0 -1
  216. package/dist/jsx/SheetContext.native.js +0 -35
  217. package/dist/jsx/SheetContext.native.js.map +0 -1
  218. package/dist/jsx/SheetController.mjs +0 -31
  219. package/dist/jsx/SheetController.mjs.map +0 -1
  220. package/dist/jsx/SheetController.native.js +0 -71
  221. package/dist/jsx/SheetController.native.js.map +0 -1
  222. package/dist/jsx/SheetImplementationCustom.mjs +0 -437
  223. package/dist/jsx/SheetImplementationCustom.mjs.map +0 -1
  224. package/dist/jsx/SheetImplementationCustom.native.js +0 -524
  225. package/dist/jsx/SheetImplementationCustom.native.js.map +0 -1
  226. package/dist/jsx/SheetScrollView.mjs +0 -146
  227. package/dist/jsx/SheetScrollView.mjs.map +0 -1
  228. package/dist/jsx/SheetScrollView.native.js +0 -197
  229. package/dist/jsx/SheetScrollView.native.js.map +0 -1
  230. package/dist/jsx/constants.mjs +0 -6
  231. package/dist/jsx/constants.mjs.map +0 -1
  232. package/dist/jsx/constants.native.js +0 -35
  233. package/dist/jsx/constants.native.js.map +0 -1
  234. package/dist/jsx/contexts.mjs +0 -7
  235. package/dist/jsx/contexts.mjs.map +0 -1
  236. package/dist/jsx/contexts.native.js +0 -45
  237. package/dist/jsx/contexts.native.js.map +0 -1
  238. package/dist/jsx/controller.mjs +0 -4
  239. package/dist/jsx/controller.mjs.map +0 -1
  240. package/dist/jsx/controller.native.js +0 -32
  241. package/dist/jsx/controller.native.js.map +0 -1
  242. package/dist/jsx/createSheet.mjs +0 -168
  243. package/dist/jsx/createSheet.mjs.map +0 -1
  244. package/dist/jsx/createSheet.native.js +0 -208
  245. package/dist/jsx/createSheet.native.js.map +0 -1
  246. package/dist/jsx/gestureState.mjs +0 -13
  247. package/dist/jsx/gestureState.mjs.map +0 -1
  248. package/dist/jsx/gestureState.native.js +0 -42
  249. package/dist/jsx/gestureState.native.js.map +0 -1
  250. package/dist/jsx/helpers.mjs +0 -8
  251. package/dist/jsx/helpers.mjs.map +0 -1
  252. package/dist/jsx/helpers.native.js +0 -35
  253. package/dist/jsx/helpers.native.js.map +0 -1
  254. package/dist/jsx/index.js +0 -12
  255. package/dist/jsx/index.js.map +0 -1
  256. package/dist/jsx/index.mjs +0 -12
  257. package/dist/jsx/index.mjs.map +0 -1
  258. package/dist/jsx/index.native.js +0 -31
  259. package/dist/jsx/index.native.js.map +0 -1
  260. package/dist/jsx/nativeSheet.mjs +0 -63
  261. package/dist/jsx/nativeSheet.mjs.map +0 -1
  262. package/dist/jsx/nativeSheet.native.js +0 -101
  263. package/dist/jsx/nativeSheet.native.js.map +0 -1
  264. package/dist/jsx/setupGestureHandler.mjs +0 -22
  265. package/dist/jsx/setupGestureHandler.mjs.map +0 -1
  266. package/dist/jsx/setupGestureHandler.native.js +0 -50
  267. package/dist/jsx/setupGestureHandler.native.js.map +0 -1
  268. package/dist/jsx/types.mjs +0 -2
  269. package/dist/jsx/types.mjs.map +0 -1
  270. package/dist/jsx/types.native.js +0 -19
  271. package/dist/jsx/types.native.js.map +0 -1
  272. package/dist/jsx/useGestureHandlerPan.mjs +0 -113
  273. package/dist/jsx/useGestureHandlerPan.mjs.map +0 -1
  274. package/dist/jsx/useGestureHandlerPan.native.js +0 -145
  275. package/dist/jsx/useGestureHandlerPan.native.js.map +0 -1
  276. package/dist/jsx/useKeyboardControllerSheet.mjs +0 -15
  277. package/dist/jsx/useKeyboardControllerSheet.mjs.map +0 -1
  278. package/dist/jsx/useKeyboardControllerSheet.native.js +0 -114
  279. package/dist/jsx/useKeyboardControllerSheet.native.js.map +0 -1
  280. package/dist/jsx/useSheet.mjs +0 -4
  281. package/dist/jsx/useSheet.mjs.map +0 -1
  282. package/dist/jsx/useSheet.native.js +0 -32
  283. package/dist/jsx/useSheet.native.js.map +0 -1
  284. package/dist/jsx/useSheetController.mjs +0 -15
  285. package/dist/jsx/useSheetController.mjs.map +0 -1
  286. package/dist/jsx/useSheetController.native.js +0 -53
  287. package/dist/jsx/useSheetController.native.js.map +0 -1
  288. package/dist/jsx/useSheetOffscreenSize.mjs +0 -28
  289. package/dist/jsx/useSheetOffscreenSize.mjs.map +0 -1
  290. package/dist/jsx/useSheetOffscreenSize.native.js +0 -61
  291. package/dist/jsx/useSheetOffscreenSize.native.js.map +0 -1
  292. package/dist/jsx/useSheetOpenState.mjs +0 -26
  293. package/dist/jsx/useSheetOpenState.mjs.map +0 -1
  294. package/dist/jsx/useSheetOpenState.native.js +0 -56
  295. package/dist/jsx/useSheetOpenState.native.js.map +0 -1
  296. package/dist/jsx/useSheetProviderProps.mjs +0 -99
  297. package/dist/jsx/useSheetProviderProps.mjs.map +0 -1
  298. package/dist/jsx/useSheetProviderProps.native.js +0 -153
  299. package/dist/jsx/useSheetProviderProps.native.js.map +0 -1
  300. package/dist/jsx/useSheetScrollViewGestures.mjs +0 -100
  301. package/dist/jsx/useSheetScrollViewGestures.mjs.map +0 -1
  302. package/dist/jsx/useSheetScrollViewGestures.native.js +0 -110
  303. package/dist/jsx/useSheetScrollViewGestures.native.js.map +0 -1
@@ -1,487 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ProvideAdaptContext, useAdaptContext } from "@hanzogui/adapt";
3
- import { AnimatePresence } from "@hanzogui/animate-presence";
4
- import { useComposedRefs } from "@hanzogui/compose-refs";
5
- import { isWeb, useIsomorphicLayoutEffect } from "@hanzogui/constants";
6
- import { LayoutMeasurementController, View as GuiView, useConfiguration, useDidFinishSSR, useEvent, useThemeName } from "@hanzogui/core";
7
- import { getSafeArea } from "@hanzogui/native";
8
- import { needsPortalRepropagation, Portal } from "@hanzogui/portal";
9
- import React, { useState } from "react";
10
- import { Dimensions, PanResponder, View } from "react-native";
11
- import { ParentSheetContext, SheetInsideSheetContext } from "./contexts.native.js";
12
- import { GestureDetectorWrapper } from "./GestureDetectorWrapper.native.js";
13
- import { GestureSheetProvider } from "./GestureSheetContext.native.js";
14
- import { resisted } from "./helpers.native.js";
15
- import { SheetProvider } from "./SheetContext.native.js";
16
- import { useGestureHandlerPan } from "./useGestureHandlerPan.native.js";
17
- import { useKeyboardControllerSheet } from "./useKeyboardControllerSheet.native.js";
18
- import { useSheetOpenState } from "./useSheetOpenState.native.js";
19
- import { useSheetProviderProps } from "./useSheetProviderProps.native.js";
20
- var hiddenSize = 10000.1,
21
- _cachedSafeAreaTop;
22
- function getSafeAreaTopInset() {
23
- return _cachedSafeAreaTop !== void 0 || (_cachedSafeAreaTop = getSafeArea().getInsets().top), _cachedSafeAreaTop;
24
- }
25
- var relativeDimensionTo = isWeb ? "window" : "screen",
26
- SheetImplementationCustom = /* @__PURE__ */React.forwardRef(function (props, forwardedRef) {
27
- var parentSheet = React.useContext(ParentSheetContext),
28
- {
29
- transition,
30
- transitionConfig: transitionConfigProp,
31
- modal = !1,
32
- zIndex = parentSheet.zIndex + 1,
33
- moveOnKeyboardChange = !1,
34
- unmountChildrenWhenHidden = !1,
35
- portalProps,
36
- containerComponent: ContainerComponent = React.Fragment,
37
- onAnimationComplete
38
- } = props,
39
- state = useSheetOpenState(props),
40
- [overlayComponent, setOverlayComponent] = React.useState(null),
41
- providerProps = useSheetProviderProps(props, state, {
42
- onOverlayComponent: setOverlayComponent
43
- }),
44
- {
45
- frameSize,
46
- setFrameSize,
47
- snapPoints,
48
- snapPointsMode,
49
- hasFit,
50
- position,
51
- setPosition,
52
- scrollBridge,
53
- screenSize,
54
- setMaxContentSize,
55
- maxSnapPoint
56
- } = providerProps,
57
- {
58
- open,
59
- controller,
60
- isHidden
61
- } = state,
62
- openRef = React.useRef(open);
63
- openRef.current = open;
64
- var sheetRef = React.useRef(void 0),
65
- ref = useComposedRefs(forwardedRef, sheetRef, providerProps.contentRef),
66
- {
67
- animationDriver
68
- } = useConfiguration();
69
- if (!animationDriver) throw new Error("Sheet requires an animation driver to be set");
70
- var transitionConfig = function () {
71
- var _animationDriver_animations;
72
- if (transitionConfigProp) return transitionConfigProp;
73
- var [animationProp, animationPropConfig] = transition ? Array.isArray(transition) ? transition : [transition] : [];
74
- return animationProp && !((_animationDriver_animations = animationDriver.animations) === null || _animationDriver_animations === void 0) && _animationDriver_animations[animationProp] ? {
75
- ...animationDriver.animations[animationProp],
76
- ...animationPropConfig
77
- } : null;
78
- }(),
79
- [isShowingInnerSheet, setIsShowingInnerSheet] = React.useState(!1),
80
- shouldHideParentSheet = !isWeb && modal && isShowingInnerSheet && needsPortalRepropagation(),
81
- sheetInsideSheet = React.useContext(SheetInsideSheetContext),
82
- onInnerSheet = React.useCallback(function (hasChild) {
83
- setIsShowingInnerSheet(hasChild);
84
- }, []),
85
- stableFrameSize = React.useRef(frameSize);
86
- React.useEffect(function () {
87
- open && frameSize && (stableFrameSize.current = frameSize);
88
- }, [open, frameSize]);
89
- var effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize,
90
- positions = React.useMemo(function () {
91
- return snapPoints.map(function (point) {
92
- return getYPositions(snapPointsMode, point, screenSize, effectiveFrameSize);
93
- });
94
- }, [screenSize, effectiveFrameSize, snapPoints, snapPointsMode]),
95
- {
96
- keyboardHeight,
97
- isKeyboardVisible,
98
- dismissKeyboard,
99
- pauseKeyboardHandler,
100
- flushPendingHide
101
- } = useKeyboardControllerSheet({
102
- enabled: !isWeb && !!moveOnKeyboardChange
103
- }),
104
- [isDragging, setIsDragging_] = React.useState(!1),
105
- isDraggingRef = React.useRef(!1),
106
- setIsDragging = React.useCallback(function (val) {
107
- isDraggingRef.current = val, pauseKeyboardHandler.current = val, setIsDragging_(val), val || flushPendingHide();
108
- }, [pauseKeyboardHandler, flushPendingHide]),
109
- activePositionsRef = React.useRef(positions),
110
- activePositions = React.useMemo(function () {
111
- if (isDragging || isDraggingRef.current) return activePositionsRef.current;
112
- var result;
113
- if (!isKeyboardVisible || keyboardHeight <= 0) result = positions;else {
114
- var safeAreaTop = isWeb ? 0 : getSafeAreaTopInset();
115
- result = positions.map(function (p) {
116
- return screenSize && p >= screenSize ? p : Math.max(safeAreaTop, p - keyboardHeight);
117
- });
118
- }
119
- return activePositionsRef.current = result, result;
120
- }, [positions, isKeyboardVisible, keyboardHeight, screenSize, isDragging]),
121
- {
122
- useAnimatedNumber,
123
- useAnimatedNumberStyle,
124
- useAnimatedNumberReaction
125
- } = animationDriver,
126
- _animationDriver_View,
127
- AnimatedView = (_animationDriver_View = animationDriver.View) !== null && _animationDriver_View !== void 0 ? _animationDriver_View : GuiView;
128
- useIsomorphicLayoutEffect(function () {
129
- if (sheetInsideSheet && open) return sheetInsideSheet(!0), function () {
130
- sheetInsideSheet(!1);
131
- };
132
- }, [sheetInsideSheet, open]);
133
- var nextParentContext = React.useMemo(function () {
134
- return {
135
- zIndex
136
- };
137
- }, [zIndex]),
138
- isMounted = useDidFinishSSR(),
139
- startPosition = isMounted && screenSize ? screenSize : hiddenSize,
140
- animatedNumber = useAnimatedNumber(startPosition),
141
- at = React.useRef(startPosition),
142
- hasntMeasured = at.current === hiddenSize,
143
- [disableAnimation, setDisableAnimation] = useState(hasntMeasured),
144
- skipAdaptAnimation = React.useRef(!1);
145
- controller?.skipNextAnimation && (skipAdaptAnimation.current = !0);
146
- var hasScrollView = React.useRef(!1),
147
- opacityFallbackTimer = React.useRef(null);
148
- useAnimatedNumberReaction({
149
- value: animatedNumber,
150
- hostRef: sheetRef
151
- }, React.useCallback(function (value) {
152
- at.current = value, scrollBridge.paneY = value;
153
- var minY = activePositions[0],
154
- wasAtTop = scrollBridge.isAtTop,
155
- nowAtTop = value <= minY + 5;
156
- if (wasAtTop !== nowAtTop) if (scrollBridge.isAtTop = nowAtTop, nowAtTop) {
157
- var _scrollBridge_setScrollEnabled;
158
- if (scrollBridge.y > 0) {
159
- var _scrollBridge_forceScrollTo;
160
- (_scrollBridge_forceScrollTo = scrollBridge.forceScrollTo) === null || _scrollBridge_forceScrollTo === void 0 || _scrollBridge_forceScrollTo.call(scrollBridge, 0), scrollBridge.y = 0;
161
- }
162
- scrollBridge.scrollLockY = void 0, (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 || _scrollBridge_setScrollEnabled.call(scrollBridge, !0);
163
- } else {
164
- var _scrollBridge_setScrollEnabled1;
165
- scrollBridge.scrollLockY = 0, (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 || _scrollBridge_setScrollEnabled1.call(scrollBridge, !1);
166
- }
167
- }, [animationDriver, activePositions]));
168
- function stopSpring() {
169
- animatedNumber.stop(), scrollBridge.onFinishAnimate && (scrollBridge.onFinishAnimate(), scrollBridge.onFinishAnimate = void 0);
170
- }
171
- var animateTo = useEvent(function (position2, animationOverride) {
172
- if (frameSize !== 0) {
173
- var toValue = isHidden || position2 === -1 ? screenSize : activePositions[position2];
174
- if (at.current !== toValue) {
175
- at.current = toValue, stopSpring();
176
- var isOpenAnimation = position2 !== -1 && !isHidden;
177
- opacityFallbackTimer.current && (clearTimeout(opacityFallbackTimer.current), opacityFallbackTimer.current = null);
178
- var animationCompleteCallback = function () {
179
- opacityFallbackTimer.current && (clearTimeout(opacityFallbackTimer.current), opacityFallbackTimer.current = null), !isOpenAnimation && !open && setOpacity(0), onAnimationComplete?.({
180
- open: isOpenAnimation
181
- });
182
- };
183
- if (isOpenAnimation || (opacityFallbackTimer.current = setTimeout(function () {
184
- opacityFallbackTimer.current = null, openRef.current || setOpacity(0);
185
- }, 1e3)), skipAdaptAnimation.current) {
186
- skipAdaptAnimation.current = !1, animatedNumber.setValue(toValue, {
187
- type: "timing",
188
- duration: 0
189
- }, animationCompleteCallback);
190
- return;
191
- }
192
- animatedNumber.setValue(toValue, animationOverride || {
193
- type: "spring",
194
- ...transitionConfig
195
- }, animationCompleteCallback);
196
- }
197
- }
198
- });
199
- useIsomorphicLayoutEffect(function () {
200
- if (hasntMeasured && screenSize && frameSize) {
201
- at.current = screenSize, animatedNumber.setValue(screenSize, {
202
- type: "timing",
203
- duration: 0
204
- }, function () {
205
- setTimeout(function () {
206
- setDisableAnimation(!1);
207
- }, 10);
208
- });
209
- return;
210
- }
211
- if (!disableAnimation && !(!frameSize || !screenSize || isHidden || hasntMeasured && !open) && (animateTo(position), position === -1 && (scrollBridge.scrollLock = !1, scrollBridge.scrollStartY = -1), open && position >= 0)) {
212
- var isTopPosition = position === 0;
213
- if (scrollBridge.isAtTop = isTopPosition, isTopPosition) {
214
- var _scrollBridge_setScrollEnabled;
215
- scrollBridge.scrollLockY = void 0, (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 || _scrollBridge_setScrollEnabled.call(scrollBridge, !0);
216
- } else {
217
- var _scrollBridge_setScrollEnabled1;
218
- scrollBridge.scrollLockY = 0, (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 || _scrollBridge_setScrollEnabled1.call(scrollBridge, !1);
219
- }
220
- }
221
- }, [hasntMeasured, disableAnimation, isHidden, frameSize, screenSize, open, position]);
222
- var _props_disableDrag,
223
- disableDrag = (_props_disableDrag = props.disableDrag) !== null && _props_disableDrag !== void 0 ? _props_disableDrag : controller?.disableDrag,
224
- themeName = useThemeName(),
225
- [blockPan, setBlockPan] = React.useState(!1),
226
- panResponder = React.useMemo(function () {
227
- if (disableDrag || !frameSize || isShowingInnerSheet) return;
228
- var minY = positions[0];
229
- scrollBridge.paneMinY = minY;
230
- var startY = at.current;
231
- function setPanning(val) {
232
- setIsDragging(val);
233
- }
234
- var release = function (param) {
235
- var {
236
- vy
237
- } = param;
238
- if (scrollBridge.setParentDragging(!1), !scrollBridge.scrollLock) {
239
- isExternalDrag = !1, previouslyScrolling = !1, setPanning(!1);
240
- for (var currentPos = at.current, end = currentPos + frameSize * vy * 0.2, closestPoint = 0, dist = Number.POSITIVE_INFINITY, i = 0; i < positions.length; i++) {
241
- var position2 = positions[i],
242
- curDist = end > position2 ? end - position2 : position2 - end;
243
- curDist < dist && (dist = curDist, closestPoint = i);
244
- }
245
- setPosition(closestPoint), animateTo(closestPoint);
246
- }
247
- },
248
- finish = function (_e, state2) {
249
- release({
250
- vy: state2.vy,
251
- dragAt: state2.dy
252
- });
253
- },
254
- previouslyScrolling = !1,
255
- onMoveShouldSet = function (e, param) {
256
- var {
257
- dy
258
- } = param;
259
- function getShouldSet() {
260
- if (e.target === providerProps.handleRef.current) return !0;
261
- if (scrollBridge.hasScrollableContent === !0) {
262
- if (scrollBridge.scrollLock) return !1;
263
- var isScrolled = scrollBridge.y !== 0,
264
- isDraggingUp = dy < 0,
265
- isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;
266
- if (isScrolled) return previouslyScrolling = !0, !1;
267
- if (isNearTop && hasScrollView.current && isDraggingUp) return !1;
268
- }
269
- return Math.abs(dy) > 10;
270
- }
271
- var granted = getShouldSet();
272
- return granted && scrollBridge.setParentDragging(!0), granted;
273
- },
274
- grant = function () {
275
- setPanning(!0), stopSpring(), startY = at.current;
276
- },
277
- isExternalDrag = !1;
278
- return scrollBridge.drag = function (dy) {
279
- isExternalDrag || (isExternalDrag = !0, grant());
280
- var to = dy + startY;
281
- animatedNumber.setValue(resisted(to, minY), {
282
- type: "direct"
283
- });
284
- }, scrollBridge.release = release, scrollBridge.snapToPosition = function (positionIndex) {
285
- isExternalDrag = !1, previouslyScrolling = !1, setPanning(!1), setPosition(positionIndex), animateTo(positionIndex);
286
- }, PanResponder.create({
287
- onMoveShouldSetPanResponder: onMoveShouldSet,
288
- onPanResponderGrant: grant,
289
- onPanResponderMove: function (_e, param) {
290
- var {
291
- dy
292
- } = param,
293
- toFull = dy + startY,
294
- to = resisted(toFull, minY),
295
- isAtTop = to <= minY;
296
- isAtTop ? scrollBridge.setParentDragging(!1) : scrollBridge.setParentDragging(!0), animatedNumber.setValue(to, {
297
- type: "direct"
298
- });
299
- },
300
- onPanResponderEnd: finish,
301
- onPanResponderTerminate: finish,
302
- onPanResponderRelease: finish
303
- });
304
- }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]);
305
- React.useEffect(function () {
306
- isDragging || isHidden || !open || disableAnimation || !frameSize || !screenSize || animateTo(position, {
307
- type: "timing",
308
- duration: 250
309
- });
310
- }, [isKeyboardVisible, keyboardHeight]);
311
- var wasDragging = React.useRef(!1);
312
- React.useEffect(function () {
313
- if (isDragging) {
314
- wasDragging.current = !0;
315
- return;
316
- }
317
- wasDragging.current && (wasDragging.current = !1, !(!frameSize || !screenSize || isHidden || !open) && animateTo(position));
318
- }, [isDragging]), React.useEffect(function () {
319
- !open && isKeyboardVisible && dismissKeyboard();
320
- }, [open]);
321
- var {
322
- panGesture,
323
- panGestureRef,
324
- gestureHandlerEnabled
325
- } = useGestureHandlerPan({
326
- positions: activePositions,
327
- frameSize,
328
- setPosition,
329
- animateTo,
330
- stopSpring,
331
- scrollBridge,
332
- setIsDragging,
333
- getCurrentPosition: function () {
334
- return at.current;
335
- },
336
- resisted,
337
- disableDrag,
338
- isShowingInnerSheet,
339
- setAnimatedPosition: function (val) {
340
- at.current = val, animatedNumber.setValue(val, {
341
- type: "direct"
342
- });
343
- },
344
- pauseKeyboardHandler
345
- }),
346
- handleAnimationViewLayout = useEvent(function (e) {
347
- var _e_nativeEvent;
348
- if (!(!open && stableFrameSize.current !== 0)) {
349
- var layoutHeight = (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.layout.height,
350
- next = modal ? Math.min(layoutHeight, Dimensions.get(relativeDimensionTo).height) : layoutHeight;
351
- next && setFrameSize(next);
352
- }
353
- }),
354
- handleMaxContentViewLayout = React.useCallback(function (e) {
355
- var _e_nativeEvent,
356
- next = Math.min((_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.layout.height, Dimensions.get(relativeDimensionTo).height);
357
- next && setMaxContentSize(next);
358
- }, []),
359
- animatedStyle = useAnimatedNumberStyle(animatedNumber, function (val) {
360
- "worklet";
361
-
362
- var translateY = frameSize === 0 ? hiddenSize : val;
363
- return {
364
- transform: [{
365
- translateY
366
- }]
367
- };
368
- }),
369
- [opacity, setOpacity] = React.useState(open ? 1 : 0);
370
- open && opacity === 0 && (setOpacity(1), opacityFallbackTimer.current && (clearTimeout(opacityFallbackTimer.current), opacityFallbackTimer.current = null));
371
- var forcedContentHeight = hasFit ? void 0 : snapPointsMode === "percent" ?
372
- // Use dvh for modal (viewport-relative), % for inline (container-relative)
373
- `${maxSnapPoint}${isWeb && modal ? "dvh" : "%"}` : maxSnapPoint,
374
- setHasScrollView = React.useCallback(function (val) {
375
- hasScrollView.current = val;
376
- }, []),
377
- contents = /* @__PURE__ */_jsx(LayoutMeasurementController, {
378
- disable: !open,
379
- children: /* @__PURE__ */_jsx(ParentSheetContext.Provider, {
380
- value: nextParentContext,
381
- children: /* @__PURE__ */_jsx(SheetProvider, {
382
- ...providerProps,
383
- setHasScrollView,
384
- children: /* @__PURE__ */_jsxs(GestureSheetProvider, {
385
- isDragging,
386
- blockPan,
387
- setBlockPan,
388
- panGesture,
389
- panGestureRef,
390
- children: [/* @__PURE__ */_jsx(AnimatePresence, {
391
- custom: {
392
- open
393
- },
394
- children: shouldHideParentSheet || !open ? null : overlayComponent
395
- }), snapPointsMode !== "percent" && /* @__PURE__ */_jsx(View, {
396
- style: {
397
- opacity: 0,
398
- position: "absolute",
399
- top: 0,
400
- left: 0,
401
- right: 0,
402
- bottom: 0,
403
- pointerEvents: "none"
404
- },
405
- onLayout: handleMaxContentViewLayout
406
- }), /* @__PURE__ */_jsx(AnimatedView, {
407
- ref,
408
- onLayout: handleAnimationViewLayout,
409
- // @ts-ignore for CSS driver this is necessary to attach the transition
410
- // also motion driver at least though i suspect all drivers?
411
- transition: isDragging || disableAnimation ? null : transition,
412
- // @ts-ignore
413
- disableClassName: !0,
414
- style: [{
415
- position: "absolute",
416
- zIndex,
417
- width: "100%",
418
- height: forcedContentHeight,
419
- minHeight: forcedContentHeight,
420
- opacity: shouldHideParentSheet ? 0 : opacity,
421
- ...((shouldHideParentSheet || !open) && {
422
- pointerEvents: "none"
423
- })
424
- }, animatedStyle],
425
- children: (/* wrap children with plain RN View for panResponder - tamagui views no longer handle responder events on web */
426
- gestureHandlerEnabled && panGesture ? /* @__PURE__ */_jsx(GestureDetectorWrapper, {
427
- gesture: panGesture,
428
- style: {
429
- flex: 1
430
- },
431
- children: props.children
432
- }) : /* @__PURE__ */_jsx(View, {
433
- ...panResponder?.panHandlers,
434
- style: {
435
- flex: 1,
436
- width: "100%",
437
- height: "100%"
438
- },
439
- children: props.children
440
- }))
441
- })]
442
- })
443
- })
444
- })
445
- });
446
- if (needsPortalRepropagation()) {
447
- var adaptContext = useAdaptContext();
448
- contents = /* @__PURE__ */_jsx(ProvideAdaptContext, {
449
- ...adaptContext,
450
- children: (/* @ts-ignore */
451
- contents)
452
- });
453
- }
454
- var shouldMountChildren = unmountChildrenWhenHidden ? !!opacity : !0;
455
- if (modal) {
456
- var modalContents = /* @__PURE__ */_jsx(Portal, {
457
- stackZIndex: zIndex,
458
- ...portalProps,
459
- children: shouldMountChildren && /* @__PURE__ */_jsx(ContainerComponent, {
460
- children: contents
461
- })
462
- });
463
- return isWeb ? modalContents : /* @__PURE__ */_jsx(SheetInsideSheetContext.Provider, {
464
- value: onInnerSheet,
465
- children: modalContents
466
- });
467
- }
468
- return contents;
469
- });
470
- function getYPositions(mode, point, screenSize, frameSize) {
471
- if (!screenSize || !frameSize) return 0;
472
- if (mode === "mixed") {
473
- if (typeof point == "number") return screenSize - Math.min(screenSize, Math.max(0, point));
474
- if (point === "fit") return screenSize - Math.min(screenSize, frameSize);
475
- if (point.endsWith("%")) {
476
- var pct = Math.min(100, Math.max(0, Number(point.slice(0, -1)))) / 100;
477
- return Number.isNaN(pct) ? (console.warn("Invalid snapPoint percentage string"), 0) : Math.round(screenSize - pct * screenSize);
478
- }
479
- return console.warn("Invalid snapPoint unknown value"), 0;
480
- }
481
- if (mode === "fit") return point === 0 ? screenSize : screenSize - Math.min(screenSize, frameSize);
482
- if (mode === "constant" && typeof point == "number") return screenSize - Math.min(screenSize, Math.max(0, point));
483
- var pct1 = Math.min(100, Math.max(0, Number(point))) / 100;
484
- return Number.isNaN(pct1) ? (console.warn("Invalid snapPoint percentage"), 0) : Math.round(screenSize - pct1 * screenSize);
485
- }
486
- export { SheetImplementationCustom };
487
- //# sourceMappingURL=SheetImplementationCustom.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","ProvideAdaptContext","useAdaptContext","AnimatePresence","useComposedRefs","isWeb","useIsomorphicLayoutEffect","LayoutMeasurementController","View","TamaguiView","useConfiguration","useDidFinishSSR","useEvent","useThemeName","getSafeArea","needsPortalRepropagation","Portal","React","useState","Dimensions","PanResponder","ParentSheetContext","SheetInsideSheetContext","GestureDetectorWrapper","GestureSheetProvider","resisted","SheetProvider","useGestureHandlerPan","useKeyboardControllerSheet","useSheetOpenState","useSheetProviderProps","hiddenSize","_cachedSafeAreaTop","getSafeAreaTopInset","getInsets","top","relativeDimensionTo","SheetImplementationCustom","forwardRef","props","forwardedRef","parentSheet","useContext","transition","transitionConfig","transitionConfigProp","modal","zIndex","moveOnKeyboardChange","unmountChildrenWhenHidden","portalProps","containerComponent","ContainerComponent","Fragment","onAnimationComplete","state","overlayComponent","setOverlayComponent","providerProps","onOverlayComponent","frameSize","setFrameSize","snapPoints","snapPointsMode","hasFit","position","setPosition","scrollBridge","screenSize","setMaxContentSize","maxSnapPoint","open","controller","isHidden","openRef","useRef","current","sheetRef","ref","contentRef","animationDriver","Error","_animationDriver_animations","animationProp","animationPropConfig","Array","isArray","animations","isShowingInnerSheet","setIsShowingInnerSheet","shouldHideParentSheet","sheetInsideSheet","onInnerSheet","useCallback","hasChild","stableFrameSize","useEffect","effectiveFrameSize","positions","useMemo","map","point","getYPositions","keyboardHeight","isKeyboardVisible","dismissKeyboard","pauseKeyboardHandler","flushPendingHide","enabled","isDragging","setIsDragging_","isDraggingRef","setIsDragging","val","activePositionsRef","activePositions","result","safeAreaTop","p","Math","max","useAnimatedNumber","useAnimatedNumberStyle","useAnimatedNumberReaction","_animationDriver_View","AnimatedView","nextParentContext","isMounted","startPosition","animatedNumber","at","hasntMeasured","disableAnimation","setDisableAnimation","skipAdaptAnimation","skipNextAnimation","hasScrollView","opacityFallbackTimer","value","hostRef","paneY","minY","wasAtTop","isAtTop","nowAtTop","_scrollBridge_setScrollEnabled","y","_scrollBridge_forceScrollTo","forceScrollTo","call","scrollLockY","setScrollEnabled","_scrollBridge_setScrollEnabled1","stopSpring","stop","onFinishAnimate","animateTo","position2","animationOverride","toValue","isOpenAnimation","clearTimeout","animationCompleteCallback","setOpacity","setTimeout","setValue","type","duration","scrollLock","scrollStartY","isTopPosition","_props_disableDrag","disableDrag","themeName","blockPan","setBlockPan","panResponder","paneMinY","startY","setPanning","release","param","vy","setParentDragging","isExternalDrag","previouslyScrolling","currentPos","end","closestPoint","dist","Number","POSITIVE_INFINITY","i","length","curDist","finish","_e","state2","dragAt","dy","onMoveShouldSet","e","getShouldSet","target","handleRef","hasScrollableContent","isScrolled","isDraggingUp","isNearTop","abs","granted","grant","drag","to","snapToPosition","positionIndex","create","onMoveShouldSetPanResponder","onPanResponderGrant","onPanResponderMove","toFull","onPanResponderEnd","onPanResponderTerminate","onPanResponderRelease","wasDragging","panGesture","panGestureRef","gestureHandlerEnabled","getCurrentPosition","setAnimatedPosition","handleAnimationViewLayout","_e_nativeEvent","layoutHeight","nativeEvent","layout","height","next","min","get","handleMaxContentViewLayout","animatedStyle","translateY","transform","opacity","forcedContentHeight","setHasScrollView","contents","disable","children","Provider","custom","style","left","right","bottom","pointerEvents","onLayout","disableClassName","width","minHeight","gesture","flex"],"sources":["../../src/SheetImplementationCustom.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,146 +0,0 @@
1
- import { composeRefs } from "@hanzogui/compose-refs";
2
- import { View } from "@hanzogui/core";
3
- import { ScrollView } from "@hanzogui/scroll-view";
4
- import { useControllableState } from "@hanzogui/use-controllable-state";
5
- import React, { useEffect, useRef, useState } from "react";
6
- import { useGestureSheetContext } from "./GestureSheetContext.mjs";
7
- import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.mjs";
8
- import { useSheetContext } from "./SheetContext.mjs";
9
- import { useSheetScrollViewGestures } from "./useSheetScrollViewGestures.mjs";
10
- import { jsx } from "react/jsx-runtime";
11
- const SHEET_SCROLL_VIEW_NAME = "SheetScrollView",
12
- SheetScrollView = React.forwardRef(({
13
- __scopeSheet,
14
- children,
15
- onScroll,
16
- scrollEnabled: scrollEnabledProp,
17
- ...props
18
- }, ref) => {
19
- const context = useSheetContext(SHEET_SCROLL_VIEW_NAME, __scopeSheet),
20
- gestureContext = useGestureSheetContext(),
21
- {
22
- scrollBridge,
23
- setHasScrollView
24
- } = context,
25
- [scrollEnabled] = useControllableState({
26
- prop: scrollEnabledProp,
27
- defaultProp: !0
28
- }),
29
- scrollRef = React.useRef(null),
30
- panGestureRef = gestureContext?.panGestureRef,
31
- {
32
- ScrollView: RNGHScrollView
33
- } = getGestureHandlerState(),
34
- useRNGHScrollView = isGestureHandlerEnabled() && RNGHScrollView && panGestureRef,
35
- currentScrollOffset = useRef(0),
36
- lockedScrollY = useRef(0),
37
- setScrollEnabled = (next, lockTo) => {
38
- if (next) lockedScrollY.current = currentScrollOffset.current, scrollBridge.scrollLockY = void 0;else {
39
- const lockY = lockTo ?? currentScrollOffset.current;
40
- lockedScrollY.current = lockY, scrollBridge.scrollLockY = lockY, scrollRef.current?.scrollTo?.({
41
- x: 0,
42
- y: lockY,
43
- animated: !1
44
- });
45
- }
46
- },
47
- forceScrollTo = y => {
48
- scrollRef.current?.scrollTo?.({
49
- x: 0,
50
- y,
51
- animated: !1
52
- });
53
- };
54
- useEffect(() => (setHasScrollView(!0), isGestureHandlerEnabled() && (scrollBridge.setScrollEnabled = setScrollEnabled, scrollBridge.forceScrollTo = forceScrollTo), () => {
55
- setHasScrollView(!1), scrollBridge.setScrollEnabled = void 0, scrollBridge.forceScrollTo = void 0;
56
- }), []);
57
- const [hasScrollableContent, setHasScrollableContent] = useState(!0),
58
- parentHeight = useRef(0),
59
- contentHeight = useRef(0),
60
- updateScrollable = () => {
61
- parentHeight.current && contentHeight.current && setHasScrollableContent(contentHeight.current > parentHeight.current);
62
- };
63
- useEffect(() => {
64
- scrollBridge.hasScrollableContent = hasScrollableContent;
65
- }, [hasScrollableContent]);
66
- const gestureProps = useSheetScrollViewGestures({
67
- scrollRef,
68
- scrollBridge,
69
- hasScrollableContent,
70
- scrollEnabled,
71
- setScrollEnabled
72
- }),
73
- contentWrapper = /* @__PURE__ */jsx(View, {
74
- onLayout: e => {
75
- const height = Math.floor(e.nativeEvent.layout.height);
76
- height !== contentHeight.current && (contentHeight.current = height, updateScrollable());
77
- },
78
- children
79
- });
80
- return useRNGHScrollView && RNGHScrollView && panGestureRef ? /* @__PURE__ */jsx(RNGHScrollView, {
81
- ref: composeRefs(scrollRef, ref),
82
- style: {
83
- flex: 1
84
- },
85
- scrollEventThrottle: 1,
86
- scrollEnabled,
87
- simultaneousHandlers: [panGestureRef],
88
- onLayout: e => {
89
- parentHeight.current = Math.ceil(e.nativeEvent.layout.height), updateScrollable();
90
- },
91
- onScroll: e => {
92
- const {
93
- y
94
- } = e.nativeEvent.contentOffset;
95
- if (currentScrollOffset.current = y, scrollBridge.scrollLockY !== void 0) {
96
- y !== scrollBridge.scrollLockY && scrollRef.current?.scrollTo?.({
97
- x: 0,
98
- y: scrollBridge.scrollLockY,
99
- animated: !1
100
- }), scrollBridge.y = scrollBridge.scrollLockY, onScroll?.({
101
- ...e,
102
- nativeEvent: {
103
- ...e.nativeEvent,
104
- contentOffset: {
105
- ...e.nativeEvent.contentOffset,
106
- y: scrollBridge.scrollLockY
107
- }
108
- }
109
- });
110
- return;
111
- }
112
- scrollBridge.y = y, y > 0 && (scrollBridge.scrollStartY = -1), onScroll?.(e);
113
- },
114
- contentContainerStyle: {
115
- minHeight: "100%"
116
- },
117
- bounces: !1,
118
- keyboardShouldPersistTaps: "always",
119
- keyboardDismissMode: "none",
120
- ...props,
121
- children: contentWrapper
122
- }) : /* @__PURE__ */jsx(ScrollView, {
123
- onLayout: e => {
124
- parentHeight.current = Math.ceil(e.nativeEvent.layout.height), updateScrollable();
125
- },
126
- ref: composeRefs(scrollRef, ref),
127
- flex: 1,
128
- scrollEventThrottle: 1,
129
- className: "_ovs-contain",
130
- scrollEnabled,
131
- onScroll: e => {
132
- const {
133
- y
134
- } = e.nativeEvent.contentOffset;
135
- scrollBridge.y = y, y > 0 && (scrollBridge.scrollStartY = -1), onScroll?.(e);
136
- },
137
- contentContainerStyle: {
138
- minHeight: "100%"
139
- },
140
- ...gestureProps,
141
- ...props,
142
- children: contentWrapper
143
- });
144
- });
145
- export { SheetScrollView };
146
- //# sourceMappingURL=SheetScrollView.mjs.map