@tamagui/sheet 2.0.0-1769467800680 → 2.0.0-1769536410877

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 (85) hide show
  1. package/dist/cjs/SheetImplementationCustom.cjs +66 -31
  2. package/dist/cjs/SheetImplementationCustom.js +70 -40
  3. package/dist/cjs/SheetImplementationCustom.js.map +1 -1
  4. package/dist/cjs/SheetImplementationCustom.native.js +73 -33
  5. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
  6. package/dist/cjs/SheetScrollView.cjs +2 -0
  7. package/dist/cjs/SheetScrollView.js +2 -0
  8. package/dist/cjs/SheetScrollView.js.map +1 -1
  9. package/dist/cjs/SheetScrollView.native.js +2 -0
  10. package/dist/cjs/SheetScrollView.native.js.map +1 -1
  11. package/dist/cjs/useGestureHandlerPan.cjs +21 -11
  12. package/dist/cjs/useGestureHandlerPan.js +20 -11
  13. package/dist/cjs/useGestureHandlerPan.js.map +1 -1
  14. package/dist/cjs/useGestureHandlerPan.native.js +21 -11
  15. package/dist/cjs/useGestureHandlerPan.native.js.map +1 -1
  16. package/dist/cjs/useKeyboardControllerSheet.cjs +38 -0
  17. package/dist/cjs/useKeyboardControllerSheet.js +34 -0
  18. package/dist/cjs/useKeyboardControllerSheet.js.map +6 -0
  19. package/dist/cjs/useKeyboardControllerSheet.native.js +114 -0
  20. package/dist/cjs/useKeyboardControllerSheet.native.js.map +1 -0
  21. package/dist/esm/SheetImplementationCustom.js +73 -41
  22. package/dist/esm/SheetImplementationCustom.js.map +1 -1
  23. package/dist/esm/SheetImplementationCustom.mjs +68 -33
  24. package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
  25. package/dist/esm/SheetImplementationCustom.native.js +75 -35
  26. package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
  27. package/dist/esm/SheetScrollView.js +2 -0
  28. package/dist/esm/SheetScrollView.js.map +1 -1
  29. package/dist/esm/SheetScrollView.mjs +2 -0
  30. package/dist/esm/SheetScrollView.mjs.map +1 -1
  31. package/dist/esm/SheetScrollView.native.js +2 -0
  32. package/dist/esm/SheetScrollView.native.js.map +1 -1
  33. package/dist/esm/useGestureHandlerPan.js +20 -11
  34. package/dist/esm/useGestureHandlerPan.js.map +1 -1
  35. package/dist/esm/useGestureHandlerPan.mjs +21 -11
  36. package/dist/esm/useGestureHandlerPan.mjs.map +1 -1
  37. package/dist/esm/useGestureHandlerPan.native.js +21 -11
  38. package/dist/esm/useGestureHandlerPan.native.js.map +1 -1
  39. package/dist/esm/useKeyboardControllerSheet.js +18 -0
  40. package/dist/esm/useKeyboardControllerSheet.js.map +6 -0
  41. package/dist/esm/useKeyboardControllerSheet.mjs +15 -0
  42. package/dist/esm/useKeyboardControllerSheet.mjs.map +1 -0
  43. package/dist/esm/useKeyboardControllerSheet.native.js +88 -0
  44. package/dist/esm/useKeyboardControllerSheet.native.js.map +1 -0
  45. package/dist/jsx/SheetImplementationCustom.js +73 -41
  46. package/dist/jsx/SheetImplementationCustom.js.map +1 -1
  47. package/dist/jsx/SheetImplementationCustom.mjs +68 -33
  48. package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
  49. package/dist/jsx/SheetImplementationCustom.native.js +73 -33
  50. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
  51. package/dist/jsx/SheetScrollView.js +2 -0
  52. package/dist/jsx/SheetScrollView.js.map +1 -1
  53. package/dist/jsx/SheetScrollView.mjs +2 -0
  54. package/dist/jsx/SheetScrollView.mjs.map +1 -1
  55. package/dist/jsx/SheetScrollView.native.js +2 -0
  56. package/dist/jsx/SheetScrollView.native.js.map +1 -1
  57. package/dist/jsx/useGestureHandlerPan.js +20 -11
  58. package/dist/jsx/useGestureHandlerPan.js.map +1 -1
  59. package/dist/jsx/useGestureHandlerPan.mjs +21 -11
  60. package/dist/jsx/useGestureHandlerPan.mjs.map +1 -1
  61. package/dist/jsx/useGestureHandlerPan.native.js +21 -11
  62. package/dist/jsx/useGestureHandlerPan.native.js.map +1 -1
  63. package/dist/jsx/useKeyboardControllerSheet.js +18 -0
  64. package/dist/jsx/useKeyboardControllerSheet.js.map +6 -0
  65. package/dist/jsx/useKeyboardControllerSheet.mjs +15 -0
  66. package/dist/jsx/useKeyboardControllerSheet.mjs.map +1 -0
  67. package/dist/jsx/useKeyboardControllerSheet.native.js +114 -0
  68. package/dist/jsx/useKeyboardControllerSheet.native.js.map +1 -0
  69. package/package.json +20 -20
  70. package/src/SheetImplementationCustom.tsx +138 -46
  71. package/src/SheetScrollView.tsx +2 -0
  72. package/src/types.tsx +47 -0
  73. package/src/useGestureHandlerPan.tsx +57 -10
  74. package/src/useKeyboardControllerSheet.native.ts +136 -0
  75. package/src/useKeyboardControllerSheet.ts +26 -0
  76. package/types/SheetImplementationCustom.d.ts.map +1 -1
  77. package/types/SheetScrollView.d.ts.map +1 -1
  78. package/types/types.d.ts +38 -0
  79. package/types/types.d.ts.map +1 -1
  80. package/types/useGestureHandlerPan.d.ts +2 -1
  81. package/types/useGestureHandlerPan.d.ts.map +1 -1
  82. package/types/useKeyboardControllerSheet.d.ts +7 -0
  83. package/types/useKeyboardControllerSheet.d.ts.map +1 -0
  84. package/types/useKeyboardControllerSheet.native.d.ts +13 -0
  85. package/types/useKeyboardControllerSheet.native.d.ts.map +1 -0
@@ -45,13 +45,27 @@ var import_adapt = require("@tamagui/adapt"),
45
45
  import_contexts = require("./contexts.cjs"),
46
46
  import_GestureDetectorWrapper = require("./GestureDetectorWrapper.cjs"),
47
47
  import_GestureSheetContext = require("./GestureSheetContext.cjs"),
48
+ import_native = require("@tamagui/native"),
48
49
  import_helpers = require("./helpers.cjs"),
49
50
  import_SheetContext = require("./SheetContext.cjs"),
50
51
  import_useGestureHandlerPan = require("./useGestureHandlerPan.cjs"),
52
+ import_useKeyboardControllerSheet = require("./useKeyboardControllerSheet.cjs"),
51
53
  import_useSheetOpenState = require("./useSheetOpenState.cjs"),
52
54
  import_useSheetProviderProps = require("./useSheetProviderProps.cjs"),
53
55
  import_jsx_runtime = require("react/jsx-runtime");
54
56
  const hiddenSize = 10000.1;
57
+ let _cachedSafeAreaTop;
58
+ function getSafeAreaTopInset() {
59
+ if (_cachedSafeAreaTop !== void 0) return _cachedSafeAreaTop;
60
+ const sa = (0, import_native.getSafeArea)();
61
+ if (sa.isEnabled) return _cachedSafeAreaTop = sa.getInsets().top, _cachedSafeAreaTop;
62
+ try {
63
+ _cachedSafeAreaTop = require("react-native-safe-area-context").initialWindowMetrics?.insets?.top ?? 0;
64
+ } catch {
65
+ _cachedSafeAreaTop = 0;
66
+ }
67
+ return _cachedSafeAreaTop ?? 0;
68
+ }
55
69
  let sheetHiddenStyleSheet = null;
56
70
  const relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
57
71
  SheetImplementationCustom = import_react.default.forwardRef(function (props, forwardedRef) {
@@ -115,6 +129,30 @@ const relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
115
129
  }, [open, frameSize]);
116
130
  const effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize,
117
131
  positions = import_react.default.useMemo(() => snapPoints.map(point => getYPositions(snapPointsMode, point, screenSize, effectiveFrameSize)), [screenSize, effectiveFrameSize, snapPoints, snapPointsMode]),
132
+ {
133
+ keyboardHeight,
134
+ isKeyboardVisible,
135
+ dismissKeyboard,
136
+ pauseKeyboardHandler,
137
+ flushPendingHide
138
+ } = (0, import_useKeyboardControllerSheet.useKeyboardControllerSheet)({
139
+ enabled: !import_constants.isWeb && !!moveOnKeyboardChange
140
+ }),
141
+ [isDragging, setIsDragging_] = import_react.default.useState(!1),
142
+ isDraggingRef = import_react.default.useRef(!1),
143
+ setIsDragging = import_react.default.useCallback(val => {
144
+ isDraggingRef.current = val, pauseKeyboardHandler.current = val, setIsDragging_(val), val || flushPendingHide();
145
+ }, [pauseKeyboardHandler, flushPendingHide]),
146
+ activePositionsRef = import_react.default.useRef(positions),
147
+ activePositions = import_react.default.useMemo(() => {
148
+ if (isDragging || isDraggingRef.current) return activePositionsRef.current;
149
+ let result;
150
+ if (!isKeyboardVisible || keyboardHeight <= 0) result = positions;else {
151
+ const safeAreaTop = import_constants.isWeb ? 0 : getSafeAreaTopInset();
152
+ result = positions.map(p => screenSize && p >= screenSize ? p : Math.max(safeAreaTop, p - keyboardHeight));
153
+ }
154
+ return activePositionsRef.current = result, result;
155
+ }, [positions, isKeyboardVisible, keyboardHeight, screenSize, isDragging]),
118
156
  {
119
157
  useAnimatedNumber,
120
158
  useAnimatedNumberStyle,
@@ -140,18 +178,18 @@ const relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
140
178
  hostRef: sheetRef
141
179
  }, import_react.default.useCallback(value => {
142
180
  at.current = value, scrollBridge.paneY = value;
143
- const minY = positions[0],
181
+ const minY = activePositions[0],
144
182
  wasAtTop = scrollBridge.isAtTop,
145
183
  nowAtTop = value <= minY + 5;
146
184
  wasAtTop !== nowAtTop && (scrollBridge.isAtTop = nowAtTop, nowAtTop ? (scrollBridge.scrollLockY = void 0, scrollBridge.setScrollEnabled?.(!0)) : (scrollBridge.scrollLockY = 0, scrollBridge.setScrollEnabled?.(!1)));
147
- }, [animationDriver, positions]));
185
+ }, [animationDriver, activePositions]));
148
186
  function stopSpring() {
149
187
  animatedNumber.stop(), scrollBridge.onFinishAnimate && (scrollBridge.onFinishAnimate(), scrollBridge.onFinishAnimate = void 0);
150
188
  }
151
- const animateTo = (0, import_core.useEvent)(position2 => {
189
+ const animateTo = (0, import_core.useEvent)((position2, animationOverride) => {
152
190
  if (frameSize === 0) return;
153
- let toValue = isHidden || position2 === -1 ? screenSize : positions[position2];
154
- at.current !== toValue && (at.current = toValue, stopSpring(), animatedNumber.setValue(toValue, {
191
+ let toValue = isHidden || position2 === -1 ? screenSize : activePositions[position2];
192
+ at.current !== toValue && (at.current = toValue, stopSpring(), animatedNumber.setValue(toValue, animationOverride || {
155
193
  type: "spring",
156
194
  ...transitionConfig
157
195
  }));
@@ -175,7 +213,6 @@ const relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
175
213
  }, [hasntMeasured, disableAnimation, isHidden, frameSize, screenSize, open, position]);
176
214
  const disableDrag = props.disableDrag ?? controller?.disableDrag,
177
215
  themeName = (0, import_core.useThemeName)(),
178
- [isDragging, setIsDragging] = import_react.default.useState(!1),
179
216
  [blockPan, setBlockPan] = import_react.default.useState(!1),
180
217
  panResponder = import_react.default.useMemo(() => {
181
218
  if (disableDrag || !frameSize || isShowingInnerSheet) return;
@@ -252,13 +289,29 @@ const relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
252
289
  onPanResponderTerminate: finish,
253
290
  onPanResponderRelease: finish
254
291
  });
255
- }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]),
256
- {
292
+ }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]);
293
+ import_react.default.useEffect(() => {
294
+ isDragging || isHidden || !open || disableAnimation || !frameSize || !screenSize || animateTo(position, {
295
+ type: "timing",
296
+ duration: 250
297
+ });
298
+ }, [isKeyboardVisible, keyboardHeight]);
299
+ const wasDragging = import_react.default.useRef(!1);
300
+ import_react.default.useEffect(() => {
301
+ if (isDragging) {
302
+ wasDragging.current = !0;
303
+ return;
304
+ }
305
+ wasDragging.current && (wasDragging.current = !1, !(!frameSize || !screenSize || isHidden || !open) && animateTo(position));
306
+ }, [isDragging]), import_react.default.useEffect(() => {
307
+ !open && isKeyboardVisible && dismissKeyboard();
308
+ }, [open]);
309
+ const {
257
310
  panGesture,
258
311
  panGestureRef,
259
312
  gestureHandlerEnabled
260
313
  } = (0, import_useGestureHandlerPan.useGestureHandlerPan)({
261
- positions,
314
+ positions: activePositions,
262
315
  frameSize,
263
316
  setPosition,
264
317
  animateTo,
@@ -270,10 +323,11 @@ const relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
270
323
  disableDrag,
271
324
  isShowingInnerSheet,
272
325
  setAnimatedPosition: val => {
273
- animatedNumber.setValue(val, {
326
+ at.current = val, animatedNumber.setValue(val, {
274
327
  type: "direct"
275
328
  });
276
- }
329
+ },
330
+ pauseKeyboardHandler
277
331
  }),
278
332
  handleAnimationViewLayout = import_react.default.useCallback(e => {
279
333
  if (!open && stableFrameSize.current !== 0) return;
@@ -294,26 +348,7 @@ const relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
294
348
  }]
295
349
  };
296
350
  }),
297
- sizeBeforeKeyboard = import_react.default.useRef(null);
298
- import_react.default.useEffect(() => {
299
- if (import_constants.isWeb || !moveOnKeyboardChange) return;
300
- const keyboardShowListener = import_react_native.Keyboard.addListener(import_constants.currentPlatform === "ios" ? "keyboardWillShow" : "keyboardDidShow", e => {
301
- sizeBeforeKeyboard.current === null && (sizeBeforeKeyboard.current = isHidden || position === -1 ? screenSize : positions[position], animatedNumber.setValue(Math.max(sizeBeforeKeyboard.current - e.endCoordinates.height, 0), {
302
- type: "timing",
303
- duration: 250
304
- }));
305
- }),
306
- keyboardDidHideListener = import_react_native.Keyboard.addListener("keyboardDidHide", () => {
307
- sizeBeforeKeyboard.current !== null && (animatedNumber.setValue(sizeBeforeKeyboard.current, {
308
- type: "timing",
309
- duration: 250
310
- }), sizeBeforeKeyboard.current = null);
311
- });
312
- return () => {
313
- keyboardDidHideListener.remove(), keyboardShowListener.remove();
314
- };
315
- }, [moveOnKeyboardChange, positions, position, isHidden]);
316
- const [opacity, setOpacity] = import_react.default.useState(open ? 1 : 0);
351
+ [opacity, setOpacity] = import_react.default.useState(open ? 1 : 0);
317
352
  open && opacity === 0 && setOpacity(1), import_react.default.useEffect(() => {
318
353
  if (!open) {
319
354
  const tm = setTimeout(() => {
@@ -25,8 +25,21 @@ __export(SheetImplementationCustom_exports, {
25
25
  SheetImplementationCustom: () => SheetImplementationCustom
26
26
  });
27
27
  module.exports = __toCommonJS(SheetImplementationCustom_exports);
28
- var import_adapt = require("@tamagui/adapt"), import_animate_presence = require("@tamagui/animate-presence"), import_compose_refs = require("@tamagui/compose-refs"), import_constants = require("@tamagui/constants"), import_core = require("@tamagui/core"), import_portal = require("@tamagui/portal"), import_react = __toESM(require("react"), 1), import_react_native = require("react-native-web"), import_contexts = require("./contexts"), import_GestureDetectorWrapper = require("./GestureDetectorWrapper"), import_GestureSheetContext = require("./GestureSheetContext"), import_helpers = require("./helpers"), import_SheetContext = require("./SheetContext"), import_useGestureHandlerPan = require("./useGestureHandlerPan"), import_useSheetOpenState = require("./useSheetOpenState"), import_useSheetProviderProps = require("./useSheetProviderProps"), import_jsx_runtime = require("react/jsx-runtime");
28
+ var import_adapt = require("@tamagui/adapt"), import_animate_presence = require("@tamagui/animate-presence"), import_compose_refs = require("@tamagui/compose-refs"), import_constants = require("@tamagui/constants"), import_core = require("@tamagui/core"), import_portal = require("@tamagui/portal"), import_react = __toESM(require("react"), 1), import_react_native = require("react-native-web"), import_contexts = require("./contexts"), import_GestureDetectorWrapper = require("./GestureDetectorWrapper"), import_GestureSheetContext = require("./GestureSheetContext"), import_native = require("@tamagui/native"), import_helpers = require("./helpers"), import_SheetContext = require("./SheetContext"), import_useGestureHandlerPan = require("./useGestureHandlerPan"), import_useKeyboardControllerSheet = require("./useKeyboardControllerSheet"), import_useSheetOpenState = require("./useSheetOpenState"), import_useSheetProviderProps = require("./useSheetProviderProps"), import_jsx_runtime = require("react/jsx-runtime");
29
29
  const hiddenSize = 10000.1;
30
+ let _cachedSafeAreaTop;
31
+ function getSafeAreaTopInset() {
32
+ if (_cachedSafeAreaTop !== void 0) return _cachedSafeAreaTop;
33
+ const sa = (0, import_native.getSafeArea)();
34
+ if (sa.isEnabled)
35
+ return _cachedSafeAreaTop = sa.getInsets().top, _cachedSafeAreaTop;
36
+ try {
37
+ _cachedSafeAreaTop = require("react-native-safe-area-context").initialWindowMetrics?.insets?.top ?? 0;
38
+ } catch {
39
+ _cachedSafeAreaTop = 0;
40
+ }
41
+ return _cachedSafeAreaTop ?? 0;
42
+ }
30
43
  let sheetHiddenStyleSheet = null;
31
44
  const relativeDimensionTo = import_constants.isWeb ? "window" : "screen", SheetImplementationCustom = import_react.default.forwardRef(
32
45
  function(props, forwardedRef) {
@@ -75,7 +88,30 @@ const relativeDimensionTo = import_constants.isWeb ? "window" : "screen", SheetI
75
88
  (point) => getYPositions(snapPointsMode, point, screenSize, effectiveFrameSize)
76
89
  ),
77
90
  [screenSize, effectiveFrameSize, snapPoints, snapPointsMode]
78
- ), { useAnimatedNumber, useAnimatedNumberStyle, useAnimatedNumberReaction } = animationDriver, AnimatedView = animationDriver.View ?? import_core.View;
91
+ ), {
92
+ keyboardHeight,
93
+ isKeyboardVisible,
94
+ dismissKeyboard,
95
+ pauseKeyboardHandler,
96
+ flushPendingHide
97
+ } = (0, import_useKeyboardControllerSheet.useKeyboardControllerSheet)({
98
+ enabled: !import_constants.isWeb && !!moveOnKeyboardChange
99
+ }), [isDragging, setIsDragging_] = import_react.default.useState(!1), isDraggingRef = import_react.default.useRef(!1), setIsDragging = import_react.default.useCallback(
100
+ (val) => {
101
+ isDraggingRef.current = val, pauseKeyboardHandler.current = val, setIsDragging_(val), val || flushPendingHide();
102
+ },
103
+ [pauseKeyboardHandler, flushPendingHide]
104
+ ), activePositionsRef = import_react.default.useRef(positions), activePositions = import_react.default.useMemo(() => {
105
+ if (isDragging || isDraggingRef.current) return activePositionsRef.current;
106
+ let result;
107
+ if (!isKeyboardVisible || keyboardHeight <= 0)
108
+ result = positions;
109
+ else {
110
+ const safeAreaTop = import_constants.isWeb ? 0 : getSafeAreaTopInset();
111
+ result = positions.map((p) => screenSize && p >= screenSize ? p : Math.max(safeAreaTop, p - keyboardHeight));
112
+ }
113
+ return activePositionsRef.current = result, result;
114
+ }, [positions, isKeyboardVisible, keyboardHeight, screenSize, isDragging]), { useAnimatedNumber, useAnimatedNumberStyle, useAnimatedNumberReaction } = animationDriver, AnimatedView = animationDriver.View ?? import_core.View;
79
115
  (0, import_constants.useIsomorphicLayoutEffect)(() => {
80
116
  if (sheetInsideSheet && open)
81
117
  return sheetInsideSheet(!0), () => {
@@ -96,22 +132,25 @@ const relativeDimensionTo = import_constants.isWeb ? "window" : "screen", SheetI
96
132
  import_react.default.useCallback(
97
133
  (value) => {
98
134
  at.current = value, scrollBridge.paneY = value;
99
- const minY = positions[0], wasAtTop = scrollBridge.isAtTop, nowAtTop = value <= minY + 5;
135
+ const minY = activePositions[0], wasAtTop = scrollBridge.isAtTop, nowAtTop = value <= minY + 5;
100
136
  wasAtTop !== nowAtTop && (scrollBridge.isAtTop = nowAtTop, nowAtTop ? (scrollBridge.scrollLockY = void 0, scrollBridge.setScrollEnabled?.(!0)) : (scrollBridge.scrollLockY = 0, scrollBridge.setScrollEnabled?.(!1)));
101
137
  },
102
- [animationDriver, positions]
138
+ [animationDriver, activePositions]
103
139
  )
104
140
  );
105
141
  function stopSpring() {
106
142
  animatedNumber.stop(), scrollBridge.onFinishAnimate && (scrollBridge.onFinishAnimate(), scrollBridge.onFinishAnimate = void 0);
107
143
  }
108
- const animateTo = (0, import_core.useEvent)((position2) => {
144
+ const animateTo = (0, import_core.useEvent)((position2, animationOverride) => {
109
145
  if (frameSize === 0) return;
110
- let toValue = isHidden || position2 === -1 ? screenSize : positions[position2];
111
- at.current !== toValue && (at.current = toValue, stopSpring(), animatedNumber.setValue(toValue, {
112
- type: "spring",
113
- ...transitionConfig
114
- }));
146
+ let toValue = isHidden || position2 === -1 ? screenSize : activePositions[position2];
147
+ at.current !== toValue && (at.current = toValue, stopSpring(), animatedNumber.setValue(
148
+ toValue,
149
+ animationOverride || {
150
+ type: "spring",
151
+ ...transitionConfig
152
+ }
153
+ ));
115
154
  });
116
155
  (0, import_constants.useIsomorphicLayoutEffect)(() => {
117
156
  if (hasntMeasured && screenSize && frameSize) {
@@ -134,7 +173,7 @@ const relativeDimensionTo = import_constants.isWeb ? "window" : "screen", SheetI
134
173
  scrollBridge.isAtTop = isTopPosition, isTopPosition ? (scrollBridge.scrollLockY = void 0, scrollBridge.setScrollEnabled?.(!0)) : (scrollBridge.scrollLockY = 0, scrollBridge.setScrollEnabled?.(!1));
135
174
  }
136
175
  }, [hasntMeasured, disableAnimation, isHidden, frameSize, screenSize, open, position]);
137
- const disableDrag = props.disableDrag ?? controller?.disableDrag, themeName = (0, import_core.useThemeName)(), [isDragging, setIsDragging] = import_react.default.useState(!1), [blockPan, setBlockPan] = import_react.default.useState(!1), panResponder = import_react.default.useMemo(() => {
176
+ const disableDrag = props.disableDrag ?? controller?.disableDrag, themeName = (0, import_core.useThemeName)(), [blockPan, setBlockPan] = import_react.default.useState(!1), panResponder = import_react.default.useMemo(() => {
138
177
  if (disableDrag || !frameSize || isShowingInnerSheet) return;
139
178
  const minY = positions[0];
140
179
  scrollBridge.paneMinY = minY;
@@ -196,8 +235,22 @@ const relativeDimensionTo = import_constants.isWeb ? "window" : "screen", SheetI
196
235
  onPanResponderTerminate: finish,
197
236
  onPanResponderRelease: finish
198
237
  });
199
- }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]), { panGesture, panGestureRef, gestureHandlerEnabled } = (0, import_useGestureHandlerPan.useGestureHandlerPan)({
200
- positions,
238
+ }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]);
239
+ import_react.default.useEffect(() => {
240
+ isDragging || isHidden || !open || disableAnimation || !frameSize || !screenSize || animateTo(position, { type: "timing", duration: 250 });
241
+ }, [isKeyboardVisible, keyboardHeight]);
242
+ const wasDragging = import_react.default.useRef(!1);
243
+ import_react.default.useEffect(() => {
244
+ if (isDragging) {
245
+ wasDragging.current = !0;
246
+ return;
247
+ }
248
+ wasDragging.current && (wasDragging.current = !1, !(!frameSize || !screenSize || isHidden || !open) && animateTo(position));
249
+ }, [isDragging]), import_react.default.useEffect(() => {
250
+ !open && isKeyboardVisible && dismissKeyboard();
251
+ }, [open]);
252
+ const { panGesture, panGestureRef, gestureHandlerEnabled } = (0, import_useGestureHandlerPan.useGestureHandlerPan)({
253
+ positions: activePositions,
201
254
  frameSize,
202
255
  setPosition,
203
256
  animateTo,
@@ -209,8 +262,9 @@ const relativeDimensionTo = import_constants.isWeb ? "window" : "screen", SheetI
209
262
  disableDrag,
210
263
  isShowingInnerSheet,
211
264
  setAnimatedPosition: (val) => {
212
- animatedNumber.setValue(val, { type: "direct" });
213
- }
265
+ at.current = val, animatedNumber.setValue(val, { type: "direct" });
266
+ },
267
+ pauseKeyboardHandler
214
268
  }), handleAnimationViewLayout = import_react.default.useCallback(
215
269
  (e) => {
216
270
  if (!open && stableFrameSize.current !== 0)
@@ -230,31 +284,7 @@ const relativeDimensionTo = import_constants.isWeb ? "window" : "screen", SheetI
230
284
  return {
231
285
  transform: [{ translateY: frameSize === 0 ? hiddenSize : val }]
232
286
  };
233
- }), sizeBeforeKeyboard = import_react.default.useRef(null);
234
- import_react.default.useEffect(() => {
235
- if (import_constants.isWeb || !moveOnKeyboardChange) return;
236
- const keyboardShowListener = import_react_native.Keyboard.addListener(
237
- import_constants.currentPlatform === "ios" ? "keyboardWillShow" : "keyboardDidShow",
238
- (e) => {
239
- sizeBeforeKeyboard.current === null && (sizeBeforeKeyboard.current = isHidden || position === -1 ? screenSize : positions[position], animatedNumber.setValue(
240
- Math.max(sizeBeforeKeyboard.current - e.endCoordinates.height, 0),
241
- {
242
- type: "timing",
243
- duration: 250
244
- }
245
- ));
246
- }
247
- ), keyboardDidHideListener = import_react_native.Keyboard.addListener("keyboardDidHide", () => {
248
- sizeBeforeKeyboard.current !== null && (animatedNumber.setValue(sizeBeforeKeyboard.current, {
249
- type: "timing",
250
- duration: 250
251
- }), sizeBeforeKeyboard.current = null);
252
- });
253
- return () => {
254
- keyboardDidHideListener.remove(), keyboardShowListener.remove();
255
- };
256
- }, [moveOnKeyboardChange, positions, position, isHidden]);
257
- const [opacity, setOpacity] = import_react.default.useState(open ? 1 : 0);
287
+ }), [opacity, setOpacity] = import_react.default.useState(open ? 1 : 0);
258
288
  open && opacity === 0 && setOpacity(1), import_react.default.useEffect(() => {
259
289
  if (!open) {
260
290
  const tm = setTimeout(() => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/SheetImplementationCustom.tsx"],
4
- "mappings": "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",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAqD,2BACrD,0BAAgC,sCAChC,sBAAgC,kCAChC,mBAAkE,+BAClE,cAQO,0BACP,gBAAiD,4BACjD,eAAgC,8BAOhC,sBAA+C,yBAC/C,kBAA4D,uBAC5D,gCAAuC,qCACvC,6BAAqC,kCACrC,gBAA4B,4BAC5B,iBAAyB,sBACzB,sBAA8B,2BAE9B,8BAAqC,mCACrC,oCAA2C,yCAC3C,2BAAkC,gCAClC,+BAAsC,oCAynB1B;AAvnBZ,MAAM,aAAa;AAGnB,IAAI;AACJ,SAAS,sBAA8B;AACrC,MAAI,uBAAuB,OAAW,QAAO;AAE7C,QAAM,SAAK,2BAAY;AACvB,MAAI,GAAG;AACL,gCAAqB,GAAG,UAAU,EAAE,KAC7B;AAGT,MAAI;AAEF,yBADY,QAAQ,gCAAgC,EAC3B,sBAAsB,QAAQ,OAAO;AAAA,EAChE,QAAQ;AACN,yBAAqB;AAAA,EACvB;AACA,SAAO,sBAAsB;AAC/B;AAEA,IAAI,wBAAiD;AAGrD,MAAM,sBAAsB,yBAAQ,WAAW,UAElC,4BAA4B,aAAAA,QAAM;AAAA,EAC7C,SAAmC,OAAO,cAAc;AACtD,UAAM,cAAc,aAAAA,QAAM,WAAW,kCAAkB,GAEjD;AAAA,MACJ;AAAA,MACA,kBAAkB;AAAA,MAClB,QAAQ;AAAA,MACR,SAAS,YAAY,SAAS;AAAA,MAC9B,uBAAuB;AAAA,MACvB,4BAA4B;AAAA,MAC5B;AAAA,MACA,oBAAoB,qBAAqB,aAAAA,QAAM;AAAA,IACjD,IAAI,OAEE,YAAQ,4CAAkB,KAAK,GAC/B,CAAC,kBAAkB,mBAAmB,IAAI,aAAAA,QAAM,SAA0B,IAAI,GAE9E,oBAAgB,oDAAsB,OAAO,OAAO;AAAA,MACxD,oBAAoB;AAAA,IACtB,CAAC,GACK;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,eACE,EAAE,MAAM,YAAY,SAAS,IAAI,OAEjC,WAAW,aAAAA,QAAM,OAAa,MAA4B,GAC1D,UAAM,qCAAgB,cAAc,UAAU,cAAc,UAAiB,GAG7E,EAAE,gBAAgB,QAAI,8BAAiB;AAE7C,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,8CAA8C;AAGhE,UAAM,oBAAoB,MAAM;AAE9B,UAAI;AACF,eAAO;AAGT,YAAM,CAAC,eAAe,mBAAmB,IAAK,aAE1C,MAAM,QAAQ,UAAU,IACtB,aACC,CAAC,UAAU,IAHd,CAAC;AAML,aAAI,iBAAiB,gBAAgB,aAAa,aAAuB,IAChE;AAAA,QACL,GAAI,gBAAgB,WAAW,aAAuB;AAAA,QACtD,GAAG;AAAA,MACL,IAGK;AAAA,IACT,GAAG,GAKG,CAAC,qBAAqB,sBAAsB,IAAI,aAAAA,QAAM,SAAS,EAAK,GAEpE,wBACJ,CAAC,0BAAS,SAAS,2BAAuB,wCAAyB,GAE/D,mBAAmB,aAAAA,QAAM,WAAW,uCAAuB,GAC3D,eAAe,aAAAA,QAAM,YAAY,CAAC,aAAsB;AAC5D,6BAAuB,QAAQ;AAAA,IACjC,GAAG,CAAC,CAAC,GAGC,kBAAkB,aAAAA,QAAM,OAAO,SAAS;AAE9C,iBAAAA,QAAM,UAAU,MAAM;AAEpB,MAAI,QAAQ,cACV,gBAAgB,UAAU;AAAA,IAE9B,GAAG,CAAC,MAAM,SAAS,CAAC;AAIpB,UAAM,qBAAqB,OAAO,YAAY,gBAAgB,WAAW,WAEnE,YAAY,aAAAA,QAAM;AAAA,MACtB,MACE,WAAW;AAAA,QAAI,CAAC,UACd,cAAc,gBAAgB,OAAO,YAAY,kBAAkB;AAAA,MACrE;AAAA,MACF,CAAC,YAAY,oBAAoB,YAAY,cAAc;AAAA,IAC7D,GAKM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,QAAI,8DAA2B;AAAA,MAC7B,SAAS,CAAC,0BAAS,EAAQ;AAAA,IAC7B,CAAC,GAEK,CAAC,YAAY,cAAc,IAAI,aAAAA,QAAM,SAAS,EAAK,GAMnD,gBAAgB,aAAAA,QAAM,OAAO,EAAK,GAClC,gBAAgB,aAAAA,QAAM;AAAA,MAC1B,CAAC,QAAiB;AAChB,sBAAc,UAAU,KACxB,qBAAqB,UAAU,KAC/B,eAAe,GAAG,GAGb,OACH,iBAAiB;AAAA,MAErB;AAAA,MACA,CAAC,sBAAsB,gBAAgB;AAAA,IACzC,GAYM,qBAAqB,aAAAA,QAAM,OAAO,SAAS,GAC3C,kBAAkB,aAAAA,QAAM,QAAQ,MAAM;AAI1C,UAAI,cAAc,cAAc,QAAS,QAAO,mBAAmB;AAEnE,UAAI;AACJ,UAAI,CAAC,qBAAqB,kBAAkB;AAC1C,iBAAS;AAAA,WACJ;AACL,cAAM,cAAc,yBAAQ,IAAI,oBAAoB;AACpD,iBAAS,UAAU,IAAI,CAAC,MAIlB,cAAc,KAAK,aAAmB,IACnC,KAAK,IAAI,aAAa,IAAI,cAAc,CAChD;AAAA,MACH;AACA,gCAAmB,UAAU,QACtB;AAAA,IACT,GAAG,CAAC,WAAW,mBAAmB,gBAAgB,YAAY,UAAU,CAAC,GAEnE,EAAE,mBAAmB,wBAAwB,0BAA0B,IAC3E,iBACI,eAAgB,gBAAgB,QAAQ,YAAAC;AAE9C,oDAA0B,MAAM;AAC9B,UAAM,oBAAoB;AAC1B,gCAAiB,EAAI,GACd,MAAM;AACX,2BAAiB,EAAK;AAAA,QACxB;AAAA,IACF,GAAG,CAAC,kBAAkB,IAAI,CAAC;AAE3B,UAAM,oBAAoB,aAAAD,QAAM;AAAA,MAC9B,OAAO;AAAA,QACL;AAAA,MACF;AAAA,MACA,CAAC,MAAM;AAAA,IACT,GAGM,oBADY,6BAAgB,KACC,aAAa,aAAa,YACvD,iBAAiB,kBAAkB,aAAa,GAChD,KAAK,aAAAA,QAAM,OAAO,aAAa,GAC/B,gBAAgB,GAAG,YAAY,YAC/B,CAAC,kBAAkB,mBAAmB,QAAI,uBAAS,aAAa,GAEhE,gBAAgB,aAAAA,QAAM,OAAO,EAAK;AAExC;AAAA,MACE;AAAA,QACE,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,aAAAA,QAAM;AAAA,QACJ,CAAC,UAAU;AACT,aAAG,UAAU,OACb,aAAa,QAAQ;AAGrB,gBAAM,OAAO,gBAAgB,CAAC,GACxB,WAAW,aAAa,SACxB,WAAW,SAAS,OAAO;AACjC,UAAI,aAAa,aACf,aAAa,UAAU,UAGnB,YACF,aAAa,cAAc,QAC3B,aAAa,mBAAmB,EAAI,MAEpC,aAAa,cAAc,GAC3B,aAAa,mBAAmB,EAAK;AAAA,QAG3C;AAAA,QACA,CAAC,iBAAiB,eAAe;AAAA,MACnC;AAAA,IACF;AAEA,aAAS,aAAa;AACpB,qBAAe,KAAK,GAChB,aAAa,oBACf,aAAa,gBAAgB,GAC7B,aAAa,kBAAkB;AAAA,IAEnC;AAEA,UAAM,gBAAY,sBAAS,CAACE,WAAkB,sBAA4B;AACxE,UAAI,cAAc,EAAG;AAErB,UAAI,UAAU,YAAYA,cAAa,KAAK,aAAa,gBAAgBA,SAAQ;AAEjF,MAAI,GAAG,YAAY,YAEnB,GAAG,UAAU,SACb,WAAW,GAEX,eAAe;AAAA,QACb;AAAA,QACA,qBAAqB;AAAA,UACnB,MAAM;AAAA,UACN,GAAG;AAAA,QACL;AAAA,MACF;AAAA,IACF,CAAC;AAED,oDAA0B,MAAM;AAM9B,UAAI,iBAAiB,cAAc,WAAW;AAC5C,WAAG,UAAU,YACb,eAAe;AAAA,UACb;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,UAAU;AAAA,UACZ;AAAA,UACA,MAAM;AAEJ,uBAAW,MAAM;AACf,kCAAoB,EAAK;AAAA,YAC3B,GAAG,EAAE;AAAA,UACP;AAAA,QACF;AACA;AAAA,MACF;AAEA,UAAI,qBAIA,GAAC,aAAa,CAAC,cAAc,YAAa,iBAAiB,CAAC,UAKhE,UAAU,QAAQ,GAGd,aAAa,OACf,aAAa,aAAa,IAC1B,aAAa,eAAe,KAK1B,QAAQ,YAAY,IAAG;AACzB,cAAM,gBAAgB,aAAa;AACnC,qBAAa,UAAU,eACnB,iBACF,aAAa,cAAc,QAC3B,aAAa,mBAAmB,EAAI,MAEpC,aAAa,cAAc,GAC3B,aAAa,mBAAmB,EAAK;AAAA,MAEzC;AAAA,IACF,GAAG,CAAC,eAAe,kBAAkB,UAAU,WAAW,YAAY,MAAM,QAAQ,CAAC;AAErF,UAAM,cAAc,MAAM,eAAe,YAAY,aAC/C,gBAAY,0BAAa,GACzB,CAAC,UAAU,WAAW,IAAI,aAAAF,QAAM,SAAS,EAAK,GAE9C,eAAe,aAAAA,QAAM,QAAQ,MAAM;AAGvC,UAFI,eACA,CAAC,aACD,oBAAqB;AAEzB,YAAM,OAAO,UAAU,CAAC;AACxB,mBAAa,WAAW;AACxB,UAAI,SAAS,GAAG;AAEhB,eAAS,WAAW,KAAc;AAChC,sBAAc,GAAG,GAIV,0BACH,wBAAwB,SAAS,cAAc,OAAO,GAClD,OAAO,SAAS,OAAS,OAC3B,SAAS,KAAK,YAAY,qBAAqB,IAG9C,MAGH,sBAAsB,YACpB,oFAHF,sBAAsB,YAAY;AAAA,MAMxC;AAEA,YAAM,UAAU,CAAC,EAAE,IAAI,OAAO,MAAsC;AAElE,YADA,aAAa,kBAAkB,EAAK,GAChC,aAAa;AACf;AAGF,yBAAiB,IACjB,sBAAsB,IACtB,WAAW,EAAK;AAIhB,cAAM,MAHK,SAAS,SAGH,YAAY,KAAK;AAClC,YAAI,eAAe,GACf,OAAO,OAAO;AAElB,iBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,gBAAME,YAAW,UAAU,CAAC,GACtB,UAAU,MAAMA,YAAW,MAAMA,YAAWA,YAAW;AAC7D,UAAI,UAAU,SACZ,OAAO,SACP,eAAe;AAAA,QAEnB;AAGA,oBAAY,YAAY,GACxB,UAAU,YAAY;AAAA,MACxB,GAEM,SAAS,CAAC,IAA2BC,WAAoC;AAC7E,gBAAQ;AAAA,UACN,IAAIA,OAAM;AAAA,UACV,QAAQA,OAAM;AAAA,QAChB,CAAC;AAAA,MACH;AAEA,UAAI,sBAAsB;AAE1B,YAAM,kBAAkB,CACtB,GACA,EAAE,GAAG,MACO;AACZ,iBAAS,eAAe;AAEtB,cAAI,EAAE,WAAW,cAAc,UAAU;AACvC,mBAAO;AAGT,cAAI,aAAa,yBAAyB,IAAM;AAC9C,gBAAI,aAAa;AACf,qBAAO;AAGT,kBAAM,aAAa,aAAa,MAAM,GAGhC,eAAe,KAAK,GAGpB,YAAY,aAAa,QAAQ,KAAK,aAAa;AACzD,gBAAI;AACF,2CAAsB,IACf;AAGT,gBAAI,aACE,cAAc,WAAW;AAC3B,qBAAO;AAAA,UAGb;AAGA,iBAAO,KAAK,IAAI,EAAE,IAAI;AAAA,QACxB;AAEA,cAAM,UAAU,aAAa;AAE7B,eAAI,WACF,aAAa,kBAAkB,EAAI,GAG9B;AAAA,MACT,GAEM,QAAQ,MAAM;AAClB,mBAAW,EAAI,GACf,WAAW,GACX,SAAS,GAAG;AAAA,MACd;AAEA,UAAI,iBAAiB;AAErB,0BAAa,OAAO,CAAC,OAAO;AAC1B,QAAK,mBACH,iBAAiB,IACjB,MAAM;AAER,cAAM,KAAK,KAAK;AAChB,uBAAe,aAAS,yBAAS,IAAI,IAAI,GAAG,EAAE,MAAM,SAAS,CAAC;AAAA,MAChE,GAEA,aAAa,UAAU,SAEhB,iCAAa,OAAO;AAAA,QACzB,6BAA6B;AAAA,QAC7B,qBAAqB;AAAA,QACrB,oBAAoB,CAAC,IAAI,EAAE,GAAG,MAAM;AAClC,gBAAM,SAAS,KAAK,QACd,SAAK,yBAAS,QAAQ,IAAI;AAIhC,UADgB,MAAM,OAEpB,aAAa,kBAAkB,EAAK,IAEpC,aAAa,kBAAkB,EAAI,GAGrC,eAAe,SAAS,IAAI,EAAE,MAAM,SAAS,CAAC;AAAA,QAChD;AAAA,QACA,mBAAmB;AAAA,QACnB,yBAAyB;AAAA,QACzB,uBAAuB;AAAA,MACzB,CAAC;AAAA,IACH,GAAG,CAAC,aAAa,qBAAqB,WAAW,WAAW,WAAW,WAAW,CAAC;AAGnF,iBAAAH,QAAM,UAAU,MAAM;AACpB,MAAI,cAAc,YAAY,CAAC,QAAQ,oBACnC,CAAC,aAAa,CAAC,cAEnB,UAAU,UAAU,EAAE,MAAM,UAAU,UAAU,IAAI,CAAC;AAAA,IACvD,GAAG,CAAC,mBAAmB,cAAc,CAAC;AAMtC,UAAM,cAAc,aAAAA,QAAM,OAAO,EAAK;AACtC,iBAAAA,QAAM,UAAU,MAAM;AACpB,UAAI,YAAY;AACd,oBAAY,UAAU;AACtB;AAAA,MACF;AACA,MAAK,YAAY,YACjB,YAAY,UAAU,IAElB,GAAC,aAAa,CAAC,cAAc,YAAY,CAAC,SAC9C,UAAU,QAAQ;AAAA,IACpB,GAAG,CAAC,UAAU,CAAC,GAGf,aAAAA,QAAM,UAAU,MAAM;AACpB,MAAI,CAAC,QAAQ,qBACX,gBAAgB;AAAA,IAEpB,GAAG,CAAC,IAAI,CAAC;AAGT,UAAM,EAAE,YAAY,eAAe,sBAAsB,QAAI,kDAAqB;AAAA,MAChF,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,oBAAoB,MAAM,GAAG;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,MACA,qBAAqB,CAAC,QAAgB;AAEpC,WAAG,UAAU,KACb,eAAe,SAAS,KAAK,EAAE,MAAM,SAAS,CAAC;AAAA,MACjD;AAAA,MACA;AAAA,IACF,CAAC,GAEK,4BAA4B,aAAAA,QAAM;AAAA,MACtC,CAAC,MAAyB;AAExB,YAAI,CAAC,QAAQ,gBAAgB,YAAY;AACvC;AAKF,cAAM,eAAe,EAAE,aAAa,OAAO,QACrC,OAAO,QACT,KAAK,IAAI,cAAc,+BAAW,IAAI,mBAAmB,EAAE,MAAM,IACjE;AACJ,QAAK,QACL,aAAa,IAAI;AAAA,MACnB;AAAA,MACA,CAAC,MAAM,KAAK;AAAA,IACd,GAEM,6BAA6B,aAAAA,QAAM,YAAY,CAAC,MAAyB;AAE7E,YAAM,OAAO,KAAK;AAAA,QAChB,EAAE,aAAa,OAAO;AAAA,QACtB,+BAAW,IAAI,mBAAmB,EAAE;AAAA,MACtC;AACA,MAAK,QACL,kBAAkB,IAAI;AAAA,IACxB,GAAG,CAAC,CAAC,GAEC,gBAAgB,uBAAuB,gBAAgB,CAAC,QAAQ;AACpE;AAGA,aAAO;AAAA,QACL,WAAW,CAAC,EAAE,YAHG,cAAc,IAAI,aAAa,IAGvB,CAAC;AAAA,MAC5B;AAAA,IACF,CAAC,GAIK,CAAC,SAAS,UAAU,IAAI,aAAAA,QAAM,SAAS,OAAO,IAAI,CAAC;AACzD,IAAI,QAAQ,YAAY,KACtB,WAAW,CAAC,GAEd,aAAAA,QAAM,UAAU,MAAM;AACpB,UAAI,CAAC,MAAM;AAET,cAAM,KAAK,WAAW,MAAM;AAC1B,qBAAW,CAAC;AAAA,QACd,GAAG,GAAG;AACN,eAAO,MAAM;AACX,uBAAa,EAAE;AAAA,QACjB;AAAA,MACF;AAAA,IACF,GAAG,CAAC,IAAI,CAAC;AAET,UAAM,sBAAsB,SACxB,SACA,mBAAmB;AAAA;AAAA,MAEjB,GAAG,YAAY,GAAG,0BAAS,QAAQ,QAAe,GAAG;AAAA,QACrD,cAEA,mBAAmB,aAAAA,QAAM,YAAY,CAAC,QAAiB;AAC3D,oBAAc,UAAU;AAAA,IAC1B,GAAG,CAAC,CAAC;AAOL,QAAI,WACF,4CAAC,2CAA4B,SAAS,CAAC,MACrC,sDAAC,mCAAmB,UAAnB,EAA4B,OAAO,mBAClC,sDAAC,qCAAe,GAAG,eAAe,kBAChC;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QAEA;AAAA,sDAAC,2CAAgB,QAAQ,EAAE,KAAK,GAC7B,mCAAyB,CAAC,OAAO,OAAO,kBAC3C;AAAA,UAEC,mBAAmB,aAClB;AAAA,YAAC;AAAA;AAAA,cACC,OAAO;AAAA,gBACL,SAAS;AAAA,gBACT,UAAU;AAAA,gBACV,KAAK;AAAA,gBACL,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,eAAe;AAAA,cACjB;AAAA,cACA,UAAU;AAAA;AAAA,UACZ;AAAA,UAGF;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACC,GAAI,CAAC,yBAAyB,cAAc;AAAA,cAC7C,UAAU;AAAA,cAGV,YAAY,cAAc,mBAAmB,OAAO;AAAA,cAEpD,kBAAgB;AAAA,cAChB,OAAO;AAAA,gBACL;AAAA,kBACE,UAAU;AAAA,kBACV;AAAA,kBACA,OAAO;AAAA,kBACP,QAAQ;AAAA,kBACR,WAAW;AAAA,kBACX,SAAU,wBAAkC,IAAV;AAAA,kBAClC,IAAK,yBAAyB,CAAC,SAAS;AAAA,oBACtC,eAAe;AAAA,kBACjB;AAAA,gBACF;AAAA,gBACA;AAAA,cACF;AAAA,cAEC,mCAAyB,aACxB,4CAAC,wDAAuB,SAAS,YAAY,OAAO,EAAE,MAAM,EAAE,GAC3D,gBAAM,UACT,IAEA,MAAM;AAAA;AAAA,UAEV;AAAA;AAAA;AAAA,IACF,GACF,GACF,GACF;AAeF,UAAM,sBAAsB,4BAA4B,CAAC,CAAC,UAAU;AAEpE,QAAI,OAAO;AACT,YAAM,gBACJ,4CAAC,wBAAO,aAAa,QAAS,GAAG,aAC9B,iCACC,4CAAC,sBACC,sDAAC,qBAAM,SAAO,IAAC,gBAAc,IAAC,MAAM,WACjC,oBACH,GACF,GAEJ;AAGF,aAAI,yBACK,gBAKP,4CAAC,wCAAwB,UAAxB,EAAiC,OAAO,cACtC,yBACH;AAAA,IAEJ;AAEA,WAAO;AAAA,EACT;AACF;AAEA,SAAS,cACP,MACA,OACA,YACA,WACA;AACA,MAAI,CAAC,cAAc,CAAC;AAClB,WAAO;AAGT,MAAI,SAAS,SAAS;AACpB,QAAI,OAAO,SAAU;AACnB,aAAO,aAAa,KAAK,IAAI,YAAY,KAAK,IAAI,GAAG,KAAK,CAAC;AAE7D,QAAI,UAAU;AACZ,aAAO,aAAa,KAAK,IAAI,YAAY,SAAS;AAEpD,QAAI,MAAM,SAAS,GAAG,GAAG;AACvB,YAAMI,OAAM,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,OAAO,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;AACrE,aAAI,OAAO,MAAMA,IAAG,KAClB,QAAQ,KAAK,qCAAqC,GAC3C,KAEF,KAAK,MAAM,aAAaA,OAAM,UAAU;AAAA,IACjD;AACA,mBAAQ,KAAK,iCAAiC,GACvC;AAAA,EACT;AAEA,MAAI,SAAS;AACX,WAAI,UAAU,IAAU,aACjB,aAAa,KAAK,IAAI,YAAY,SAAS;AAGpD,MAAI,SAAS,cAAc,OAAO,SAAU;AAC1C,WAAO,aAAa,KAAK,IAAI,YAAY,KAAK,IAAI,GAAG,KAAK,CAAC;AAG7D,QAAM,MAAM,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,OAAO,KAAK,CAAC,CAAC,IAAI;AACxD,SAAI,OAAO,MAAM,GAAG,KAClB,QAAQ,KAAK,8BAA8B,GACpC,KAGF,KAAK,MAAM,aAAa,MAAM,UAAU;AACjD;",
5
5
  "names": ["React", "TamaguiView", "position", "state", "pct"]
6
6
  }
@@ -48,12 +48,30 @@ var import_jsx_runtime = require("react/jsx-runtime"),
48
48
  import_contexts = require("./contexts.native.js"),
49
49
  import_GestureDetectorWrapper = require("./GestureDetectorWrapper.native.js"),
50
50
  import_GestureSheetContext = require("./GestureSheetContext.native.js"),
51
+ import_native = require("@tamagui/native"),
51
52
  import_helpers = require("./helpers.native.js"),
52
53
  import_SheetContext = require("./SheetContext.native.js"),
53
54
  import_useGestureHandlerPan = require("./useGestureHandlerPan.native.js"),
55
+ import_useKeyboardControllerSheet = require("./useKeyboardControllerSheet.native.js"),
54
56
  import_useSheetOpenState = require("./useSheetOpenState.native.js"),
55
57
  import_useSheetProviderProps = require("./useSheetProviderProps.native.js"),
56
- hiddenSize = 10000.1;
58
+ hiddenSize = 10000.1,
59
+ _cachedSafeAreaTop;
60
+ function getSafeAreaTopInset() {
61
+ if (_cachedSafeAreaTop !== void 0) return _cachedSafeAreaTop;
62
+ var sa = (0, import_native.getSafeArea)();
63
+ if (sa.isEnabled) return _cachedSafeAreaTop = sa.getInsets().top, _cachedSafeAreaTop;
64
+ try {
65
+ var _sac_initialWindowMetrics_insets,
66
+ _sac_initialWindowMetrics,
67
+ sac = require("react-native-safe-area-context"),
68
+ _sac_initialWindowMetrics_insets_top;
69
+ _cachedSafeAreaTop = (_sac_initialWindowMetrics_insets_top = (_sac_initialWindowMetrics = sac.initialWindowMetrics) === null || _sac_initialWindowMetrics === void 0 || (_sac_initialWindowMetrics_insets = _sac_initialWindowMetrics.insets) === null || _sac_initialWindowMetrics_insets === void 0 ? void 0 : _sac_initialWindowMetrics_insets.top) !== null && _sac_initialWindowMetrics_insets_top !== void 0 ? _sac_initialWindowMetrics_insets_top : 0;
70
+ } catch {
71
+ _cachedSafeAreaTop = 0;
72
+ }
73
+ return _cachedSafeAreaTop ?? 0;
74
+ }
57
75
  var relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
58
76
  SheetImplementationCustom = /* @__PURE__ */import_react.default.forwardRef(function (props, forwardedRef) {
59
77
  var parentSheet = import_react.default.useContext(import_contexts.ParentSheetContext),
@@ -121,6 +139,32 @@ var relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
121
139
  return getYPositions(snapPointsMode, point, screenSize, effectiveFrameSize);
122
140
  });
123
141
  }, [screenSize, effectiveFrameSize, snapPoints, snapPointsMode]),
142
+ {
143
+ keyboardHeight,
144
+ isKeyboardVisible,
145
+ dismissKeyboard,
146
+ pauseKeyboardHandler,
147
+ flushPendingHide
148
+ } = (0, import_useKeyboardControllerSheet.useKeyboardControllerSheet)({
149
+ enabled: !import_constants.isWeb && !!moveOnKeyboardChange
150
+ }),
151
+ [isDragging, setIsDragging_] = import_react.default.useState(!1),
152
+ isDraggingRef = import_react.default.useRef(!1),
153
+ setIsDragging = import_react.default.useCallback(function (val) {
154
+ isDraggingRef.current = val, pauseKeyboardHandler.current = val, setIsDragging_(val), val || flushPendingHide();
155
+ }, [pauseKeyboardHandler, flushPendingHide]),
156
+ activePositionsRef = import_react.default.useRef(positions),
157
+ activePositions = import_react.default.useMemo(function () {
158
+ if (isDragging || isDraggingRef.current) return activePositionsRef.current;
159
+ var result;
160
+ if (!isKeyboardVisible || keyboardHeight <= 0) result = positions;else {
161
+ var safeAreaTop = import_constants.isWeb ? 0 : getSafeAreaTopInset();
162
+ result = positions.map(function (p) {
163
+ return screenSize && p >= screenSize ? p : Math.max(safeAreaTop, p - keyboardHeight);
164
+ });
165
+ }
166
+ return activePositionsRef.current = result, result;
167
+ }, [positions, isKeyboardVisible, keyboardHeight, screenSize, isDragging]),
124
168
  {
125
169
  useAnimatedNumber,
126
170
  useAnimatedNumberStyle,
@@ -150,7 +194,7 @@ var relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
150
194
  hostRef: sheetRef
151
195
  }, import_react.default.useCallback(function (value) {
152
196
  at.current = value, scrollBridge.paneY = value;
153
- var minY = positions[0],
197
+ var minY = activePositions[0],
154
198
  wasAtTop = scrollBridge.isAtTop,
155
199
  nowAtTop = value <= minY + 5;
156
200
  if (wasAtTop !== nowAtTop) if (scrollBridge.isAtTop = nowAtTop, nowAtTop) {
@@ -160,14 +204,14 @@ var relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
160
204
  var _scrollBridge_setScrollEnabled1;
161
205
  scrollBridge.scrollLockY = 0, (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 || _scrollBridge_setScrollEnabled1.call(scrollBridge, !1);
162
206
  }
163
- }, [animationDriver, positions]));
207
+ }, [animationDriver, activePositions]));
164
208
  function stopSpring() {
165
209
  animatedNumber.stop(), scrollBridge.onFinishAnimate && (scrollBridge.onFinishAnimate(), scrollBridge.onFinishAnimate = void 0);
166
210
  }
167
- var animateTo = (0, import_core.useEvent)(function (position2) {
211
+ var animateTo = (0, import_core.useEvent)(function (position2, animationOverride) {
168
212
  if (frameSize !== 0) {
169
- var toValue = isHidden || position2 === -1 ? screenSize : positions[position2];
170
- at.current !== toValue && (at.current = toValue, stopSpring(), animatedNumber.setValue(toValue, {
213
+ var toValue = isHidden || position2 === -1 ? screenSize : activePositions[position2];
214
+ at.current !== toValue && (at.current = toValue, stopSpring(), animatedNumber.setValue(toValue, animationOverride || {
171
215
  type: "spring",
172
216
  ...transitionConfig
173
217
  }));
@@ -199,7 +243,6 @@ var relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
199
243
  var _props_disableDrag,
200
244
  disableDrag = (_props_disableDrag = props.disableDrag) !== null && _props_disableDrag !== void 0 ? _props_disableDrag : controller?.disableDrag,
201
245
  themeName = (0, import_core.useThemeName)(),
202
- [isDragging, setIsDragging] = import_react.default.useState(!1),
203
246
  [blockPan, setBlockPan] = import_react.default.useState(!1),
204
247
  panResponder = import_react.default.useMemo(function () {
205
248
  if (disableDrag || !frameSize || isShowingInnerSheet) return;
@@ -278,13 +321,29 @@ var relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
278
321
  onPanResponderTerminate: finish,
279
322
  onPanResponderRelease: finish
280
323
  });
281
- }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]),
282
- {
324
+ }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]);
325
+ import_react.default.useEffect(function () {
326
+ isDragging || isHidden || !open || disableAnimation || !frameSize || !screenSize || animateTo(position, {
327
+ type: "timing",
328
+ duration: 250
329
+ });
330
+ }, [isKeyboardVisible, keyboardHeight]);
331
+ var wasDragging = import_react.default.useRef(!1);
332
+ import_react.default.useEffect(function () {
333
+ if (isDragging) {
334
+ wasDragging.current = !0;
335
+ return;
336
+ }
337
+ wasDragging.current && (wasDragging.current = !1, !(!frameSize || !screenSize || isHidden || !open) && animateTo(position));
338
+ }, [isDragging]), import_react.default.useEffect(function () {
339
+ !open && isKeyboardVisible && dismissKeyboard();
340
+ }, [open]);
341
+ var {
283
342
  panGesture,
284
343
  panGestureRef,
285
344
  gestureHandlerEnabled
286
345
  } = (0, import_useGestureHandlerPan.useGestureHandlerPan)({
287
- positions,
346
+ positions: activePositions,
288
347
  frameSize,
289
348
  setPosition,
290
349
  animateTo,
@@ -298,10 +357,11 @@ var relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
298
357
  disableDrag,
299
358
  isShowingInnerSheet,
300
359
  setAnimatedPosition: function (val) {
301
- animatedNumber.setValue(val, {
360
+ at.current = val, animatedNumber.setValue(val, {
302
361
  type: "direct"
303
362
  });
304
- }
363
+ },
364
+ pauseKeyboardHandler
305
365
  }),
306
366
  handleAnimationViewLayout = import_react.default.useCallback(function (e) {
307
367
  var _e_nativeEvent;
@@ -326,27 +386,7 @@ var relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
326
386
  }]
327
387
  };
328
388
  }),
329
- sizeBeforeKeyboard = import_react.default.useRef(null);
330
- import_react.default.useEffect(function () {
331
- if (!(import_constants.isWeb || !moveOnKeyboardChange)) {
332
- var keyboardShowListener = import_react_native.Keyboard.addListener(import_constants.currentPlatform === "ios" ? "keyboardWillShow" : "keyboardDidShow", function (e) {
333
- sizeBeforeKeyboard.current === null && (sizeBeforeKeyboard.current = isHidden || position === -1 ? screenSize : positions[position], animatedNumber.setValue(Math.max(sizeBeforeKeyboard.current - e.endCoordinates.height, 0), {
334
- type: "timing",
335
- duration: 250
336
- }));
337
- }),
338
- keyboardDidHideListener = import_react_native.Keyboard.addListener("keyboardDidHide", function () {
339
- sizeBeforeKeyboard.current !== null && (animatedNumber.setValue(sizeBeforeKeyboard.current, {
340
- type: "timing",
341
- duration: 250
342
- }), sizeBeforeKeyboard.current = null);
343
- });
344
- return function () {
345
- keyboardDidHideListener.remove(), keyboardShowListener.remove();
346
- };
347
- }
348
- }, [moveOnKeyboardChange, positions, position, isHidden]);
349
- var [opacity, setOpacity] = import_react.default.useState(open ? 1 : 0);
389
+ [opacity, setOpacity] = import_react.default.useState(open ? 1 : 0);
350
390
  open && opacity === 0 && setOpacity(1), import_react.default.useEffect(function () {
351
391
  if (!open) {
352
392
  var tm = setTimeout(function () {