@tamagui/sheet 2.3.3 → 2.4.0-1783099846627

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 (96) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/cjs/SheetImplementationCustom.cjs +42 -29
  3. package/dist/cjs/SheetImplementationCustom.native.js +46 -33
  4. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
  5. package/dist/cjs/SheetScrollView.cjs +64 -22
  6. package/dist/cjs/SheetScrollView.native.js +66 -23
  7. package/dist/cjs/SheetScrollView.native.js.map +1 -1
  8. package/dist/cjs/gestureState.cjs +13 -2
  9. package/dist/cjs/gestureState.native.js +14 -2
  10. package/dist/cjs/gestureState.native.js.map +1 -1
  11. package/dist/cjs/index.cjs +12 -1
  12. package/dist/cjs/index.native.js +11 -0
  13. package/dist/cjs/index.native.js.map +1 -1
  14. package/dist/cjs/setupGestureHandler.cjs +7 -4
  15. package/dist/cjs/setupGestureHandler.native.js +9 -4
  16. package/dist/cjs/setupGestureHandler.native.js.map +1 -1
  17. package/dist/cjs/useGestureHandlerPan.cjs +61 -8
  18. package/dist/cjs/useGestureHandlerPan.native.js +64 -8
  19. package/dist/cjs/useGestureHandlerPan.native.js.map +1 -1
  20. package/dist/cjs/useSheetScrollViewGestures.cjs +13 -3
  21. package/dist/esm/SheetImplementationCustom.mjs +43 -32
  22. package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
  23. package/dist/esm/SheetImplementationCustom.native.js +47 -36
  24. package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
  25. package/dist/esm/SheetScrollView.mjs +64 -22
  26. package/dist/esm/SheetScrollView.mjs.map +1 -1
  27. package/dist/esm/SheetScrollView.native.js +66 -23
  28. package/dist/esm/SheetScrollView.native.js.map +1 -1
  29. package/dist/esm/gestureState.mjs +13 -2
  30. package/dist/esm/gestureState.mjs.map +1 -1
  31. package/dist/esm/gestureState.native.js +14 -2
  32. package/dist/esm/gestureState.native.js.map +1 -1
  33. package/dist/esm/index.js +2 -0
  34. package/dist/esm/index.js.map +1 -1
  35. package/dist/esm/index.mjs +2 -0
  36. package/dist/esm/index.mjs.map +1 -1
  37. package/dist/esm/index.native.js +2 -0
  38. package/dist/esm/index.native.js.map +1 -1
  39. package/dist/esm/setupGestureHandler.mjs +7 -4
  40. package/dist/esm/setupGestureHandler.mjs.map +1 -1
  41. package/dist/esm/setupGestureHandler.native.js +9 -4
  42. package/dist/esm/setupGestureHandler.native.js.map +1 -1
  43. package/dist/esm/useGestureHandlerPan.mjs +62 -9
  44. package/dist/esm/useGestureHandlerPan.mjs.map +1 -1
  45. package/dist/esm/useGestureHandlerPan.native.js +65 -9
  46. package/dist/esm/useGestureHandlerPan.native.js.map +1 -1
  47. package/dist/esm/useSheetScrollViewGestures.mjs +13 -3
  48. package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -1
  49. package/dist/jsx/SheetImplementationCustom.mjs +43 -32
  50. package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
  51. package/dist/jsx/SheetImplementationCustom.native.js +46 -33
  52. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
  53. package/dist/jsx/SheetScrollView.mjs +64 -22
  54. package/dist/jsx/SheetScrollView.mjs.map +1 -1
  55. package/dist/jsx/SheetScrollView.native.js +66 -23
  56. package/dist/jsx/SheetScrollView.native.js.map +1 -1
  57. package/dist/jsx/gestureState.mjs +13 -2
  58. package/dist/jsx/gestureState.mjs.map +1 -1
  59. package/dist/jsx/gestureState.native.js +14 -2
  60. package/dist/jsx/gestureState.native.js.map +1 -1
  61. package/dist/jsx/index.js +2 -0
  62. package/dist/jsx/index.js.map +1 -1
  63. package/dist/jsx/index.mjs +2 -0
  64. package/dist/jsx/index.mjs.map +1 -1
  65. package/dist/jsx/index.native.js +11 -0
  66. package/dist/jsx/index.native.js.map +1 -1
  67. package/dist/jsx/setupGestureHandler.mjs +7 -4
  68. package/dist/jsx/setupGestureHandler.mjs.map +1 -1
  69. package/dist/jsx/setupGestureHandler.native.js +9 -4
  70. package/dist/jsx/setupGestureHandler.native.js.map +1 -1
  71. package/dist/jsx/useGestureHandlerPan.mjs +62 -9
  72. package/dist/jsx/useGestureHandlerPan.mjs.map +1 -1
  73. package/dist/jsx/useGestureHandlerPan.native.js +64 -8
  74. package/dist/jsx/useGestureHandlerPan.native.js.map +1 -1
  75. package/dist/jsx/useSheetScrollViewGestures.mjs +13 -3
  76. package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -1
  77. package/package.json +20 -20
  78. package/src/SheetImplementationCustom.tsx +79 -47
  79. package/src/SheetScrollView.tsx +61 -13
  80. package/src/gestureState.ts +22 -2
  81. package/src/index.ts +4 -0
  82. package/src/setupGestureHandler.ts +12 -3
  83. package/src/types.tsx +3 -0
  84. package/src/useGestureHandlerPan.tsx +64 -10
  85. package/src/useSheetScrollViewGestures.ts +17 -2
  86. package/types/SheetImplementationCustom.d.ts.map +1 -1
  87. package/types/SheetScrollView.d.ts.map +1 -1
  88. package/types/gestureState.d.ts.map +1 -1
  89. package/types/index.d.ts +1 -0
  90. package/types/index.d.ts.map +1 -1
  91. package/types/setupGestureHandler.d.ts.map +1 -1
  92. package/types/types.d.ts +1 -0
  93. package/types/types.d.ts.map +1 -1
  94. package/types/useGestureHandlerPan.d.ts.map +1 -1
  95. package/types/useSheetScrollViewGestures.d.ts +2 -1
  96. package/types/useSheetScrollViewGestures.d.ts.map +1 -1
@@ -32,6 +32,7 @@ var import_react = require("react");
32
32
  var import_gestureState = require("./gestureState.native.js");
33
33
  var import_keyboardAvoidance = require("./keyboardAvoidance.native.js");
34
34
  var AT_TOP_THRESHOLD = 5;
35
+ var SCROLL_HANDOFF_THRESHOLD = 160;
35
36
  function useGestureHandlerPan(config) {
36
37
  var {
37
38
  positions,
@@ -78,16 +79,45 @@ function useGestureHandlerPan(config) {
78
79
  frozenMinY: 0,
79
80
  frozenIsKeyboardVisible: false,
80
81
  // whether pan gesture actually started (vs just a tap in onBegin)
81
- panStarted: false
82
+ panStarted: false,
83
+ startedBelowTop: false,
84
+ upwardDragAfterTop: 0,
85
+ scrollUnlockedAfterTop: false,
86
+ keepScrollLockedAfterEnd: false
82
87
  });
88
+ var unlockScrollTimer = (0, import_react.useRef)(null);
89
+ (0, import_react.useEffect)(function () {
90
+ return function () {
91
+ if (unlockScrollTimer.current) {
92
+ clearTimeout(unlockScrollTimer.current);
93
+ unlockScrollTimer.current = null;
94
+ }
95
+ };
96
+ }, []);
83
97
  var onStart = (0, import_react.useCallback)(function () {
84
98
  stopSpring();
85
99
  }, [stopSpring]);
86
100
  var onEnd = (0, import_react.useCallback)(function (closestPoint, animationOverride) {
87
- var _scrollBridge_setScrollEnabled;
101
+ var keepScrollLocked = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
102
+ if (unlockScrollTimer.current) {
103
+ clearTimeout(unlockScrollTimer.current);
104
+ unlockScrollTimer.current = null;
105
+ }
88
106
  setIsDragging(false);
89
107
  scrollBridge.setParentDragging(false);
90
- (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, true);
108
+ scrollBridge.lockScrollAtTop = false;
109
+ if (keepScrollLocked) {
110
+ var _scrollBridge_setScrollEnabled;
111
+ (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, false, 0);
112
+ unlockScrollTimer.current = setTimeout(function () {
113
+ var _scrollBridge_setScrollEnabled2;
114
+ unlockScrollTimer.current = null;
115
+ (_scrollBridge_setScrollEnabled2 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled2 === void 0 ? void 0 : _scrollBridge_setScrollEnabled2.call(scrollBridge, true);
116
+ }, 160);
117
+ } else {
118
+ var _scrollBridge_setScrollEnabled1;
119
+ (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 ? void 0 : _scrollBridge_setScrollEnabled1.call(scrollBridge, true);
120
+ }
91
121
  setPosition(closestPoint);
92
122
  animateTo(closestPoint, animationOverride);
93
123
  }, [setIsDragging, scrollBridge, setPosition, animateTo]);
@@ -119,6 +149,15 @@ function useGestureHandlerPan(config) {
119
149
  gs.frozenPositions = [...positions];
120
150
  gs.frozenMinY = minY;
121
151
  gs.frozenIsKeyboardVisible = releaseConfigRef.current.isKeyboardVisible;
152
+ gs.startedBelowTop = !atTop;
153
+ gs.upwardDragAfterTop = 0;
154
+ gs.scrollUnlockedAfterTop = false;
155
+ gs.keepScrollLockedAfterEnd = false;
156
+ scrollBridge.lockScrollAtTop = false;
157
+ if (unlockScrollTimer.current) {
158
+ clearTimeout(unlockScrollTimer.current);
159
+ unlockScrollTimer.current = null;
160
+ }
122
161
  if (!atTop) {
123
162
  var _scrollBridge_setScrollEnabled;
124
163
  (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, false, 0);
@@ -161,7 +200,17 @@ function useGestureHandlerPan(config) {
161
200
  }
162
201
  } else {
163
202
  if (hasScrollableContent) {
164
- panHandles = false;
203
+ if (gs.startedBelowTop && !gs.scrollUnlockedAfterTop) {
204
+ gs.upwardDragAfterTop += Math.max(0, -deltaY);
205
+ if (gs.upwardDragAfterTop >= SCROLL_HANDOFF_THRESHOLD) {
206
+ gs.scrollUnlockedAfterTop = true;
207
+ panHandles = false;
208
+ } else {
209
+ panHandles = true;
210
+ }
211
+ } else {
212
+ panHandles = false;
213
+ }
165
214
  } else {
166
215
  panHandles = true;
167
216
  }
@@ -169,6 +218,7 @@ function useGestureHandlerPan(config) {
169
218
  }
170
219
  if (panHandles) {
171
220
  var _scrollBridge_setScrollEnabled;
221
+ scrollBridge.lockScrollAtTop = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
172
222
  var lockTo = isCurrentlyAtTop && isSwipingDown && gs.scrollEngaged ? void 0 : 0;
173
223
  (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, false, lockTo);
174
224
  gs.accumulatedOffset += deltaY;
@@ -178,18 +228,23 @@ function useGestureHandlerPan(config) {
178
228
  scrollBridge.setParentDragging(newPosition > minY);
179
229
  } else {
180
230
  var _scrollBridge_setScrollEnabled1;
231
+ scrollBridge.lockScrollAtTop = false;
181
232
  (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 ? void 0 : _scrollBridge_setScrollEnabled1.call(scrollBridge, true);
233
+ scrollBridge.setParentDragging(false);
182
234
  }
183
235
  }).onEnd(function (event) {
184
236
  var {
185
237
  velocityY
186
238
  } = event;
187
239
  var currentPos = gs.startY + gs.accumulatedOffset;
188
- scrollBridge.scrollLockY = void 0;
240
+ var keepScrollLockedAfterEnd = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
241
+ scrollBridge.lockScrollAtTop = false;
242
+ scrollBridge.scrollLockY = keepScrollLockedAfterEnd ? 0 : void 0;
243
+ gs.keepScrollLockedAfterEnd = keepScrollLockedAfterEnd;
189
244
  var snapPositions = gs.frozenPositions.length > 0 ? gs.frozenPositions : positions;
190
245
  var snapMinY = gs.frozenPositions.length > 0 ? gs.frozenMinY : minY;
191
246
  if (currentPos <= snapMinY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
192
- onEnd(0);
247
+ onEnd(0, void 0, keepScrollLockedAfterEnd);
193
248
  return;
194
249
  }
195
250
  var velocity = velocityY / 1e3;
@@ -205,9 +260,10 @@ function useGestureHandlerPan(config) {
205
260
  isKeyboardVisible: gs.frozenIsKeyboardVisible,
206
261
  isWeb: import_constants.isWeb
207
262
  });
208
- onEnd(closestPoint);
263
+ onEnd(closestPoint, void 0, keepScrollLockedAfterEnd);
209
264
  }).onFinalize(function () {
210
- scrollBridge.scrollLockY = void 0;
265
+ scrollBridge.lockScrollAtTop = false;
266
+ scrollBridge.scrollLockY = gs.keepScrollLockedAfterEnd ? 0 : void 0;
211
267
  if (gs.panStarted) {
212
268
  setIsDragging(false);
213
269
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useGestureHandlerPan_exports","__export","useGestureHandlerPan","module","exports","import_constants","require","import_react","import_gestureState","import_keyboardAvoidance","AT_TOP_THRESHOLD","config","positions","frameSize","setPosition","animateTo","stopSpring","scrollBridge","setIsDragging","getCurrentPosition","resisted","disableDrag","isShowingInnerSheet","setAnimatedPosition","scrollGestureRef","gestureHandlerEnabled","isGestureHandlerEnabled","panGestureRef","useRef","_config_snapPointsMode","releaseConfigRef","dismissOnSnapToBottom","snapPointsMode","isKeyboardVisible","_config_snapPointsMode1","current","gestureStateRef","startY","lastPanTranslationY","accumulatedOffset","prevTranslationY","scrollEngaged","frozenPositions","frozenMinY","frozenIsKeyboardVisible","panStarted","onStart","useCallback","onEnd","closestPoint","animationOverride","_scrollBridge_setScrollEnabled","setParentDragging","setScrollEnabled","call","panGesture","useMemo","Gesture","getGestureHandlerState","minY","gs","gesture","Pan","withRef","activeOffsetY","failOffsetX","shouldCancelWhenOutside","onBegin","pauseKeyboardHandler","pos","atTop","currentScrollY","y","initialPosition","onChange","event","translationY","isSwipingDown","deltaY","scrollY","currentPos","isCurrentlyAtTop","nodeIsScrolling","panHandles","hasScrollableContent","lockTo","newPosition","paneY","_scrollBridge_setScrollEnabled1","velocityY","scrollLockY","snapPositions","length","snapMinY","velocity","projectedEnd","releaseConfig","getSheetReleasePosition","currentPosition","isWeb","onFinalize","runOnJS","simultaneousWithExternalGesture"],"sources":["../../src/useGestureHandlerPan.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useGestureHandlerPan_exports","__export","useGestureHandlerPan","module","exports","import_constants","require","import_react","import_gestureState","import_keyboardAvoidance","AT_TOP_THRESHOLD","SCROLL_HANDOFF_THRESHOLD","config","positions","frameSize","setPosition","animateTo","stopSpring","scrollBridge","setIsDragging","getCurrentPosition","resisted","disableDrag","isShowingInnerSheet","setAnimatedPosition","scrollGestureRef","gestureHandlerEnabled","isGestureHandlerEnabled","panGestureRef","useRef","_config_snapPointsMode","releaseConfigRef","dismissOnSnapToBottom","snapPointsMode","isKeyboardVisible","_config_snapPointsMode1","current","gestureStateRef","startY","lastPanTranslationY","accumulatedOffset","prevTranslationY","scrollEngaged","frozenPositions","frozenMinY","frozenIsKeyboardVisible","panStarted","startedBelowTop","upwardDragAfterTop","scrollUnlockedAfterTop","keepScrollLockedAfterEnd","unlockScrollTimer","useEffect","clearTimeout","onStart","useCallback","onEnd","closestPoint","animationOverride","keepScrollLocked","arguments","length","setParentDragging","lockScrollAtTop","_scrollBridge_setScrollEnabled","setScrollEnabled","call","setTimeout","_scrollBridge_setScrollEnabled2","_scrollBridge_setScrollEnabled1","panGesture","useMemo","Gesture","getGestureHandlerState","minY","gs","gesture","Pan","withRef","activeOffsetY","failOffsetX","shouldCancelWhenOutside","onBegin","pauseKeyboardHandler","pos","atTop","currentScrollY","y","initialPosition","onChange","event","translationY","isSwipingDown","deltaY","scrollY","currentPos","isCurrentlyAtTop","nodeIsScrolling","panHandles","hasScrollableContent","Math","max","lockTo","newPosition","paneY","velocityY","scrollLockY","snapPositions","snapMinY","velocity","projectedEnd","releaseConfig","getSheetReleasePosition","currentPosition","isWeb","onFinalize","runOnJS","simultaneousWithExternalGesture"],"sources":["../../src/useGestureHandlerPan.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -29,7 +29,8 @@ var import_react = require("react");
29
29
  function useSheetScrollViewGestures({
30
30
  scrollRef,
31
31
  scrollBridge,
32
- hasScrollableContent
32
+ hasScrollableContent,
33
+ onManualScroll
33
34
  }) {
34
35
  const state = (0, import_react.useRef)({
35
36
  startY: 0,
@@ -40,6 +41,10 @@ function useSheetScrollViewGestures({
40
41
  dys: [],
41
42
  scrollYAtGestureStart: 0
42
43
  });
44
+ const onManualScrollRef = (0, import_react.useRef)(onManualScroll);
45
+ (0, import_react.useEffect)(() => {
46
+ onManualScrollRef.current = onManualScroll;
47
+ }, [onManualScroll]);
43
48
  (0, import_react.useEffect)(() => {
44
49
  if (!scrollRef.current) return;
45
50
  const controller = new AbortController();
@@ -56,6 +61,11 @@ function useSheetScrollViewGestures({
56
61
  const enableScroll = () => {
57
62
  node.style.overflowY = originalOverflow;
58
63
  };
64
+ const setScrollTop = nextScrollY => {
65
+ if (node.scrollTop === nextScrollY) return;
66
+ node.scrollTop = nextScrollY;
67
+ onManualScrollRef.current?.(node, nextScrollY);
68
+ };
59
69
  const handleTouchStart = e => {
60
70
  const touch = e.touches[0];
61
71
  if (!touch) return;
@@ -84,7 +94,7 @@ function useSheetScrollViewGestures({
84
94
  if (dy === 0) return;
85
95
  const isDraggingDown = dy > 0;
86
96
  const currentScrollY = node.scrollTop;
87
- const isPaneAtTop = scrollBridge.paneY <= scrollBridge.paneMinY + 5;
97
+ const isPaneAtTop = scrollBridge.isAtTop ?? scrollBridge.paneY <= scrollBridge.paneMinY + 5;
88
98
  scrollBridge.y = currentScrollY;
89
99
  let shouldPanOwn = false;
90
100
  if (!isPaneAtTop) {
@@ -124,7 +134,7 @@ function useSheetScrollViewGestures({
124
134
  const maxScrollY = node.scrollHeight - node.clientHeight;
125
135
  const newScrollY = Math.max(0, Math.min(maxScrollY, currentScrollY + scrollDelta));
126
136
  if (newScrollY !== currentScrollY) {
127
- node.scrollTop = newScrollY;
137
+ setScrollTop(newScrollY);
128
138
  scrollBridge.y = newScrollY;
129
139
  if (newScrollY > 0) scrollBridge.scrollStartY = -1;
130
140
  }
@@ -74,8 +74,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
74
74
  } = state;
75
75
  const openRef = React.useRef(open);
76
76
  openRef.current = open;
77
- const sheetRef = React.useRef(void 0);
78
- const ref = useComposedRefs(forwardedRef, sheetRef, providerProps.contentRef);
77
+ const ref = useComposedRefs(forwardedRef, React.useRef(void 0), providerProps.contentRef);
79
78
  const {
80
79
  animationDriver
81
80
  } = useConfiguration();
@@ -109,6 +108,11 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
109
108
  if (open && frameSize) stableFrameSize.current = frameSize;
110
109
  }, [open, frameSize]);
111
110
  const isWebKbSheet = isWeb && hasFit && moveOnKeyboardChange;
111
+ const isNativeKbFitSheet = !isWeb && hasFit && Boolean(moveOnKeyboardChange);
112
+ const preKeyboardFrameSize = React.useRef(0);
113
+ React.useEffect(() => {
114
+ if (isNativeKbFitSheet && open && !isKeyboardVisible && frameSize > 0) preKeyboardFrameSize.current = frameSize;
115
+ }, [isNativeKbFitSheet, open, isKeyboardVisible, frameSize]);
112
116
  const effScreenSize = isWebKbSheet ? getStableViewportHeight() : screenSize;
113
117
  const effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize;
114
118
  const positions = React.useMemo(() => snapPoints.map(point => getYPositions(snapPointsMode, point, effScreenSize, effectiveFrameSize)), [effScreenSize, effectiveFrameSize, snapPoints, snapPointsMode]);
@@ -142,11 +146,10 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
142
146
  screenSize: effScreenSize,
143
147
  sheetY: position >= 0 ? activePositions[position] : void 0
144
148
  });
145
- const keyboardStableFrameHeight = isWebKbSheet && isKeyboardVisible && frameSize > 0 ? frameSize : 0;
149
+ const keyboardStableFrameHeight = isWebKbSheet && isKeyboardVisible && frameSize > 0 ? frameSize : isNativeKbFitSheet && isKeyboardVisible && preKeyboardFrameSize.current > 0 ? preKeyboardFrameSize.current : 0;
146
150
  const {
147
151
  useAnimatedNumber,
148
- useAnimatedNumberStyle,
149
- useAnimatedNumberReaction
152
+ useAnimatedNumberStyle
150
153
  } = animationDriver;
151
154
  const AnimatedView = animationDriver.View ?? View;
152
155
  useIsomorphicLayoutEffect(() => {
@@ -168,30 +171,46 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
168
171
  if (controller?.skipNextAnimation) skipAdaptAnimation.current = true;
169
172
  const hasScrollView = React.useRef(false);
170
173
  const opacityFallbackTimer = React.useRef(null);
171
- useAnimatedNumberReaction({
172
- value: animatedNumber,
173
- hostRef: sheetRef
174
- }, React.useCallback(value => {
174
+ const syncAnimatedPosition = useEvent(value => {
175
175
  at.current = value;
176
176
  scrollBridge.paneY = value;
177
177
  const minY = activePositions[0];
178
178
  const wasAtTop = scrollBridge.isAtTop;
179
179
  const nowAtTop = value <= minY + 5;
180
- if (wasAtTop !== nowAtTop) {
181
- scrollBridge.isAtTop = nowAtTop;
182
- if (nowAtTop) {
180
+ if (wasAtTop === nowAtTop) return;
181
+ scrollBridge.isAtTop = nowAtTop;
182
+ if (nowAtTop) {
183
+ if (scrollBridge.lockScrollAtTop) {
183
184
  if (scrollBridge.y > 0) {
184
185
  scrollBridge.forceScrollTo?.(0);
185
186
  scrollBridge.y = 0;
186
187
  }
187
- scrollBridge.scrollLockY = void 0;
188
- scrollBridge.setScrollEnabled?.(true);
189
- } else {
190
188
  scrollBridge.scrollLockY = 0;
191
- scrollBridge.setScrollEnabled?.(false);
189
+ scrollBridge.setScrollEnabled?.(false, 0);
190
+ return;
191
+ }
192
+ if (scrollBridge.y > 0) {
193
+ scrollBridge.forceScrollTo?.(0);
194
+ scrollBridge.y = 0;
192
195
  }
196
+ scrollBridge.scrollLockY = void 0;
197
+ scrollBridge.setScrollEnabled?.(true);
198
+ } else {
199
+ scrollBridge.scrollLockY = 0;
200
+ scrollBridge.setScrollEnabled?.(false);
193
201
  }
194
- }, [animationDriver, activePositions]));
202
+ });
203
+ const setAnimatedPositionDirect = useEvent(value => {
204
+ syncAnimatedPosition(value);
205
+ animatedNumber.setValue(value, {
206
+ type: "direct"
207
+ });
208
+ });
209
+ const getAnimatedPosition = useEvent(() => {
210
+ const value = animatedNumber.getValue();
211
+ syncAnimatedPosition(value);
212
+ return value;
213
+ });
195
214
  function stopSpring() {
196
215
  animatedNumber.stop();
197
216
  if (scrollBridge.onFinishAnimate) {
@@ -212,6 +231,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
212
231
  opacityFallbackTimer.current = null;
213
232
  }
214
233
  const animationCompleteCallback = () => {
234
+ syncAnimatedPosition(toValue);
215
235
  if (opacityFallbackTimer.current) {
216
236
  clearTimeout(opacityFallbackTimer.current);
217
237
  opacityFallbackTimer.current = null;
@@ -248,6 +268,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
248
268
  type: "timing",
249
269
  duration: 0
250
270
  }, () => {
271
+ syncAnimatedPosition(screenSize);
251
272
  setTimeout(() => {
252
273
  setDisableAnimation(false);
253
274
  }, 10);
@@ -346,7 +367,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
346
367
  const grant = () => {
347
368
  setPanning(true);
348
369
  stopSpring();
349
- startY = at.current;
370
+ startY = getAnimatedPosition();
350
371
  };
351
372
  let isExternalDrag = false;
352
373
  scrollBridge.startPanDrag = () => {
@@ -358,10 +379,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
358
379
  isExternalDrag = true;
359
380
  grant();
360
381
  }
361
- const to = dy + startY;
362
- animatedNumber.setValue(resisted(to, minY), {
363
- type: "direct"
364
- });
382
+ setAnimatedPositionDirect(resisted(dy + startY, minY));
365
383
  };
366
384
  scrollBridge.release = release;
367
385
  scrollBridge.snapToPosition = positionIndex => {
@@ -379,9 +397,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
379
397
  }) => {
380
398
  const to = resisted(dy + startY, minY);
381
399
  if (to <= minY) scrollBridge.setParentDragging(false);else scrollBridge.setParentDragging(true);
382
- animatedNumber.setValue(to, {
383
- type: "direct"
384
- });
400
+ setAnimatedPositionDirect(to);
385
401
  },
386
402
  onPanResponderEnd: finish,
387
403
  onPanResponderTerminate: finish,
@@ -426,16 +442,11 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
426
442
  stopSpring,
427
443
  scrollBridge,
428
444
  setIsDragging,
429
- getCurrentPosition: () => at.current,
445
+ getCurrentPosition: getAnimatedPosition,
430
446
  resisted,
431
447
  disableDrag,
432
448
  isShowingInnerSheet,
433
- setAnimatedPosition: val => {
434
- at.current = val;
435
- animatedNumber.setValue(val, {
436
- type: "direct"
437
- });
438
- },
449
+ setAnimatedPosition: setAnimatedPositionDirect,
439
450
  dismissOnSnapToBottom,
440
451
  snapPointsMode,
441
452
  isKeyboardVisible,