@tamagui/sheet 2.3.2 → 2.3.3-1782465561627

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 (44) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/cjs/SheetImplementationCustom.cjs +36 -28
  3. package/dist/cjs/SheetImplementationCustom.native.js +40 -32
  4. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
  5. package/dist/cjs/SheetScrollView.cjs +34 -15
  6. package/dist/cjs/SheetScrollView.native.js +36 -16
  7. package/dist/cjs/SheetScrollView.native.js.map +1 -1
  8. package/dist/cjs/useGestureHandlerPan.cjs +61 -8
  9. package/dist/cjs/useGestureHandlerPan.native.js +64 -8
  10. package/dist/cjs/useGestureHandlerPan.native.js.map +1 -1
  11. package/dist/esm/SheetImplementationCustom.mjs +37 -31
  12. package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
  13. package/dist/esm/SheetImplementationCustom.native.js +41 -35
  14. package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
  15. package/dist/esm/SheetScrollView.mjs +34 -15
  16. package/dist/esm/SheetScrollView.mjs.map +1 -1
  17. package/dist/esm/SheetScrollView.native.js +36 -16
  18. package/dist/esm/SheetScrollView.native.js.map +1 -1
  19. package/dist/esm/useGestureHandlerPan.mjs +62 -9
  20. package/dist/esm/useGestureHandlerPan.mjs.map +1 -1
  21. package/dist/esm/useGestureHandlerPan.native.js +65 -9
  22. package/dist/esm/useGestureHandlerPan.native.js.map +1 -1
  23. package/dist/jsx/SheetImplementationCustom.mjs +37 -31
  24. package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
  25. package/dist/jsx/SheetImplementationCustom.native.js +40 -32
  26. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
  27. package/dist/jsx/SheetScrollView.mjs +34 -15
  28. package/dist/jsx/SheetScrollView.mjs.map +1 -1
  29. package/dist/jsx/SheetScrollView.native.js +36 -16
  30. package/dist/jsx/SheetScrollView.native.js.map +1 -1
  31. package/dist/jsx/useGestureHandlerPan.mjs +62 -9
  32. package/dist/jsx/useGestureHandlerPan.mjs.map +1 -1
  33. package/dist/jsx/useGestureHandlerPan.native.js +64 -8
  34. package/dist/jsx/useGestureHandlerPan.native.js.map +1 -1
  35. package/package.json +20 -20
  36. package/src/SheetImplementationCustom.tsx +54 -46
  37. package/src/SheetScrollView.tsx +30 -11
  38. package/src/types.tsx +3 -0
  39. package/src/useGestureHandlerPan.tsx +64 -10
  40. package/types/SheetImplementationCustom.d.ts.map +1 -1
  41. package/types/SheetScrollView.d.ts.map +1 -1
  42. package/types/types.d.ts +1 -0
  43. package/types/types.d.ts.map +1 -1
  44. package/types/useGestureHandlerPan.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","SheetScrollView_exports","__export","SheetScrollView","module","exports","import_jsx_runtime","require","import_compose_refs","import_core","import_scroll_view","import_use_controllable_state","import_react","__toESM","import_GestureSheetContext","import_gestureState","import_SheetContext","import_useSheetScrollViewGestures","import_webViewport","SHEET_SCROLL_VIEW_NAME","default","forwardRef","param","ref","__scopeSheet","children","onScroll","scrollEnabled","scrollEnabledProp","props","context","useSheetContext","gestureContext","useGestureSheetContext","scrollBridge","setHasScrollView","hasFit","screenSize","keyboardOccludedHeight","Math","max","isKeyboardVisible","isWeb","getWebKeyboardResizeHeight","MIN_KEYBOARD_HEIGHT","useControllableState","prop","defaultProp","scrollRef","useRef","hasScrollableContent","setHasScrollableContent","useState","parentHeight","contentHeight","frozenFrameHeight","keyboardStableFrameHeight","fitSizingStyle","flex","height","maxHeight","keyboardFrozenOverride","panGestureRef","ScrollView","RNGHScrollView","getGestureHandlerState","useRNGHScrollView","isGestureHandlerEnabled","currentScrollOffset","lockedScrollY","focusedInputScrollFrame","setScrollEnabled","next","lockTo","_scrollRef_current_scrollTo","_scrollRef_current","lockY","current","scrollLockY","scrollTo","call","x","y","animated","forceScrollTo","scrollFocusedInputClearOfKeyboard","useCallback","node","getScrollableNode","active","document","activeElement","isEditableElement","contains","keyboardHeight","getWebKeyboardBottomInset","activeRect","getBoundingClientRect","nodeRect","margin","keyboardTop","getStableLayoutViewportHeight","visibleTop","top","visibleBottom","min","bottom","nextScrollTop","scrollTop","ceil","maxScrollTop","scrollHeight","clientHeight","scrollStartY","scheduleFocusedInputScroll","cancelAnimationFrame","requestAnimationFrame","useEffect","_window_visualViewport","window","addEventListener","visualViewport","_window_visualViewport2","removeEventListener","updateScrollable","recordFitHeight","gestureProps","useSheetScrollViewGestures","contentWrapper","jsxs","View","onLayout","e","floor","nativeEvent","layout","jsx","width","RNGHComponent","composeRefs","style","scrollEventThrottle","simultaneousHandlers","contentOffset","contentContainerStyle","minHeight","bounces","keyboardShouldPersistTaps","keyboardDismissMode"],"sources":["../../src/SheetScrollView.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","SheetScrollView_exports","__export","SheetScrollView","module","exports","import_jsx_runtime","require","import_compose_refs","import_core","import_scroll_view","import_use_controllable_state","import_react","__toESM","import_GestureSheetContext","import_gestureState","import_SheetContext","import_useSheetScrollViewGestures","import_webViewport","SHEET_SCROLL_VIEW_NAME","default","forwardRef","param","ref","__scopeSheet","children","onScroll","scrollEnabled","scrollEnabledProp","props","context","useSheetContext","gestureContext","useGestureSheetContext","scrollBridge","setHasScrollView","hasFit","screenSize","keyboardOccludedHeight","Math","max","isKeyboardVisible","isWeb","getWebKeyboardResizeHeight","MIN_KEYBOARD_HEIGHT","useControllableState","prop","defaultProp","scrollRef","useRef","hasScrollableContent","setHasScrollableContent","useState","parentHeight","contentHeight","frozenFrameHeight","keyboardStableFrameHeight","fitSizingStyle","flex","height","maxHeight","keyboardFrozenOverride","panGestureRef","ScrollView","RNGHScrollView","getGestureHandlerState","useRNGHScrollView","isGestureHandlerEnabled","currentScrollOffset","lastEmittedScrollOffset","lockedScrollY","focusedInputScrollFrame","setScrollEnabled","next","lockTo","_ref","lockY","scrollLockY","current","enabled","_scrollRef_current_scrollTo","_scrollRef_current","scrollTo","call","x","y","animated","forceScrollTo","scrollFocusedInputClearOfKeyboard","useCallback","node","getScrollableNode","active","document","activeElement","isEditableElement","contains","keyboardHeight","getWebKeyboardBottomInset","activeRect","getBoundingClientRect","nodeRect","margin","keyboardTop","getStableLayoutViewportHeight","visibleTop","top","visibleBottom","min","bottom","nextScrollTop","scrollTop","ceil","maxScrollTop","scrollHeight","clientHeight","scrollStartY","scheduleFocusedInputScroll","cancelAnimationFrame","requestAnimationFrame","useEffect","_window_visualViewport","window","addEventListener","visualViewport","_window_visualViewport2","removeEventListener","updateScrollable","recordFitHeight","gestureProps","useSheetScrollViewGestures","contentWrapper","jsxs","View","onLayout","e","floor","nativeEvent","layout","jsx","width","RNGHComponent","composeRefs","style","scrollEventThrottle","simultaneousHandlers","contentOffset","contentContainerStyle","minHeight","bounces","keyboardShouldPersistTaps","keyboardDismissMode"],"sources":["../../src/SheetScrollView.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -30,6 +30,7 @@ var import_react = require("react");
30
30
  var import_gestureState = require("./gestureState.cjs");
31
31
  var import_keyboardAvoidance = require("./keyboardAvoidance.cjs");
32
32
  const AT_TOP_THRESHOLD = 5;
33
+ const SCROLL_HANDOFF_THRESHOLD = 160;
33
34
  function useGestureHandlerPan(config) {
34
35
  const {
35
36
  positions,
@@ -74,15 +75,41 @@ function useGestureHandlerPan(config) {
74
75
  frozenMinY: 0,
75
76
  frozenIsKeyboardVisible: false,
76
77
  // whether pan gesture actually started (vs just a tap in onBegin)
77
- panStarted: false
78
+ panStarted: false,
79
+ startedBelowTop: false,
80
+ upwardDragAfterTop: 0,
81
+ scrollUnlockedAfterTop: false,
82
+ keepScrollLockedAfterEnd: false
78
83
  });
84
+ const unlockScrollTimer = (0, import_react.useRef)(null);
85
+ (0, import_react.useEffect)(() => {
86
+ return () => {
87
+ if (unlockScrollTimer.current) {
88
+ clearTimeout(unlockScrollTimer.current);
89
+ unlockScrollTimer.current = null;
90
+ }
91
+ };
92
+ }, []);
79
93
  const onStart = (0, import_react.useCallback)(() => {
80
94
  stopSpring();
81
95
  }, [stopSpring]);
82
- const onEnd = (0, import_react.useCallback)((closestPoint, animationOverride) => {
96
+ const onEnd = (0, import_react.useCallback)((closestPoint, animationOverride, keepScrollLocked = false) => {
97
+ if (unlockScrollTimer.current) {
98
+ clearTimeout(unlockScrollTimer.current);
99
+ unlockScrollTimer.current = null;
100
+ }
83
101
  setIsDragging(false);
84
102
  scrollBridge.setParentDragging(false);
85
- scrollBridge.setScrollEnabled?.(true);
103
+ scrollBridge.lockScrollAtTop = false;
104
+ if (keepScrollLocked) {
105
+ scrollBridge.setScrollEnabled?.(false, 0);
106
+ unlockScrollTimer.current = setTimeout(() => {
107
+ unlockScrollTimer.current = null;
108
+ scrollBridge.setScrollEnabled?.(true);
109
+ }, 160);
110
+ } else {
111
+ scrollBridge.setScrollEnabled?.(true);
112
+ }
86
113
  setPosition(closestPoint);
87
114
  animateTo(closestPoint, animationOverride);
88
115
  }, [setIsDragging, scrollBridge, setPosition, animateTo]);
@@ -114,6 +141,15 @@ function useGestureHandlerPan(config) {
114
141
  gs.frozenPositions = [...positions];
115
142
  gs.frozenMinY = minY;
116
143
  gs.frozenIsKeyboardVisible = releaseConfigRef.current.isKeyboardVisible;
144
+ gs.startedBelowTop = !atTop;
145
+ gs.upwardDragAfterTop = 0;
146
+ gs.scrollUnlockedAfterTop = false;
147
+ gs.keepScrollLockedAfterEnd = false;
148
+ scrollBridge.lockScrollAtTop = false;
149
+ if (unlockScrollTimer.current) {
150
+ clearTimeout(unlockScrollTimer.current);
151
+ unlockScrollTimer.current = null;
152
+ }
117
153
  if (!atTop) {
118
154
  scrollBridge.setScrollEnabled?.(false, 0);
119
155
  }
@@ -155,13 +191,24 @@ function useGestureHandlerPan(config) {
155
191
  }
156
192
  } else {
157
193
  if (hasScrollableContent) {
158
- panHandles = false;
194
+ if (gs.startedBelowTop && !gs.scrollUnlockedAfterTop) {
195
+ gs.upwardDragAfterTop += Math.max(0, -deltaY);
196
+ if (gs.upwardDragAfterTop >= SCROLL_HANDOFF_THRESHOLD) {
197
+ gs.scrollUnlockedAfterTop = true;
198
+ panHandles = false;
199
+ } else {
200
+ panHandles = true;
201
+ }
202
+ } else {
203
+ panHandles = false;
204
+ }
159
205
  } else {
160
206
  panHandles = true;
161
207
  }
162
208
  }
163
209
  }
164
210
  if (panHandles) {
211
+ scrollBridge.lockScrollAtTop = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
165
212
  const lockTo = isCurrentlyAtTop && isSwipingDown && gs.scrollEngaged ? void 0 : 0;
166
213
  scrollBridge.setScrollEnabled?.(false, lockTo);
167
214
  gs.accumulatedOffset += deltaY;
@@ -170,18 +217,23 @@ function useGestureHandlerPan(config) {
170
217
  setAnimatedPosition(newPosition);
171
218
  scrollBridge.setParentDragging(newPosition > minY);
172
219
  } else {
220
+ scrollBridge.lockScrollAtTop = false;
173
221
  scrollBridge.setScrollEnabled?.(true);
222
+ scrollBridge.setParentDragging(false);
174
223
  }
175
224
  }).onEnd(event => {
176
225
  const {
177
226
  velocityY
178
227
  } = event;
179
228
  const currentPos = gs.startY + gs.accumulatedOffset;
180
- scrollBridge.scrollLockY = void 0;
229
+ const keepScrollLockedAfterEnd = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
230
+ scrollBridge.lockScrollAtTop = false;
231
+ scrollBridge.scrollLockY = keepScrollLockedAfterEnd ? 0 : void 0;
232
+ gs.keepScrollLockedAfterEnd = keepScrollLockedAfterEnd;
181
233
  const snapPositions = gs.frozenPositions.length > 0 ? gs.frozenPositions : positions;
182
234
  const snapMinY = gs.frozenPositions.length > 0 ? gs.frozenMinY : minY;
183
235
  if (currentPos <= snapMinY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
184
- onEnd(0);
236
+ onEnd(0, void 0, keepScrollLockedAfterEnd);
185
237
  return;
186
238
  }
187
239
  const velocity = velocityY / 1e3;
@@ -197,9 +249,10 @@ function useGestureHandlerPan(config) {
197
249
  isKeyboardVisible: gs.frozenIsKeyboardVisible,
198
250
  isWeb: import_constants.isWeb
199
251
  });
200
- onEnd(closestPoint);
252
+ onEnd(closestPoint, void 0, keepScrollLockedAfterEnd);
201
253
  }).onFinalize(() => {
202
- scrollBridge.scrollLockY = void 0;
254
+ scrollBridge.lockScrollAtTop = false;
255
+ scrollBridge.scrollLockY = gs.keepScrollLockedAfterEnd ? 0 : void 0;
203
256
  if (gs.panStarted) {
204
257
  setIsDragging(false);
205
258
  } else {
@@ -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":[]}
@@ -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();
@@ -145,8 +144,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
145
144
  const keyboardStableFrameHeight = isWebKbSheet && isKeyboardVisible && frameSize > 0 ? frameSize : 0;
146
145
  const {
147
146
  useAnimatedNumber,
148
- useAnimatedNumberStyle,
149
- useAnimatedNumberReaction
147
+ useAnimatedNumberStyle
150
148
  } = animationDriver;
151
149
  const AnimatedView = animationDriver.View ?? View;
152
150
  useIsomorphicLayoutEffect(() => {
@@ -168,30 +166,46 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
168
166
  if (controller?.skipNextAnimation) skipAdaptAnimation.current = true;
169
167
  const hasScrollView = React.useRef(false);
170
168
  const opacityFallbackTimer = React.useRef(null);
171
- useAnimatedNumberReaction({
172
- value: animatedNumber,
173
- hostRef: sheetRef
174
- }, React.useCallback(value => {
169
+ const syncAnimatedPosition = useEvent(value => {
175
170
  at.current = value;
176
171
  scrollBridge.paneY = value;
177
172
  const minY = activePositions[0];
178
173
  const wasAtTop = scrollBridge.isAtTop;
179
174
  const nowAtTop = value <= minY + 5;
180
- if (wasAtTop !== nowAtTop) {
181
- scrollBridge.isAtTop = nowAtTop;
182
- if (nowAtTop) {
175
+ if (wasAtTop === nowAtTop) return;
176
+ scrollBridge.isAtTop = nowAtTop;
177
+ if (nowAtTop) {
178
+ if (scrollBridge.lockScrollAtTop) {
183
179
  if (scrollBridge.y > 0) {
184
180
  scrollBridge.forceScrollTo?.(0);
185
181
  scrollBridge.y = 0;
186
182
  }
187
- scrollBridge.scrollLockY = void 0;
188
- scrollBridge.setScrollEnabled?.(true);
189
- } else {
190
183
  scrollBridge.scrollLockY = 0;
191
- scrollBridge.setScrollEnabled?.(false);
184
+ scrollBridge.setScrollEnabled?.(false, 0);
185
+ return;
186
+ }
187
+ if (scrollBridge.y > 0) {
188
+ scrollBridge.forceScrollTo?.(0);
189
+ scrollBridge.y = 0;
192
190
  }
191
+ scrollBridge.scrollLockY = void 0;
192
+ scrollBridge.setScrollEnabled?.(true);
193
+ } else {
194
+ scrollBridge.scrollLockY = 0;
195
+ scrollBridge.setScrollEnabled?.(false);
193
196
  }
194
- }, [animationDriver, activePositions]));
197
+ });
198
+ const setAnimatedPositionDirect = useEvent(value => {
199
+ syncAnimatedPosition(value);
200
+ animatedNumber.setValue(value, {
201
+ type: "direct"
202
+ });
203
+ });
204
+ const getAnimatedPosition = useEvent(() => {
205
+ const value = animatedNumber.getValue();
206
+ syncAnimatedPosition(value);
207
+ return value;
208
+ });
195
209
  function stopSpring() {
196
210
  animatedNumber.stop();
197
211
  if (scrollBridge.onFinishAnimate) {
@@ -212,6 +226,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
212
226
  opacityFallbackTimer.current = null;
213
227
  }
214
228
  const animationCompleteCallback = () => {
229
+ syncAnimatedPosition(toValue);
215
230
  if (opacityFallbackTimer.current) {
216
231
  clearTimeout(opacityFallbackTimer.current);
217
232
  opacityFallbackTimer.current = null;
@@ -248,6 +263,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
248
263
  type: "timing",
249
264
  duration: 0
250
265
  }, () => {
266
+ syncAnimatedPosition(screenSize);
251
267
  setTimeout(() => {
252
268
  setDisableAnimation(false);
253
269
  }, 10);
@@ -346,7 +362,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
346
362
  const grant = () => {
347
363
  setPanning(true);
348
364
  stopSpring();
349
- startY = at.current;
365
+ startY = getAnimatedPosition();
350
366
  };
351
367
  let isExternalDrag = false;
352
368
  scrollBridge.startPanDrag = () => {
@@ -358,10 +374,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
358
374
  isExternalDrag = true;
359
375
  grant();
360
376
  }
361
- const to = dy + startY;
362
- animatedNumber.setValue(resisted(to, minY), {
363
- type: "direct"
364
- });
377
+ setAnimatedPositionDirect(resisted(dy + startY, minY));
365
378
  };
366
379
  scrollBridge.release = release;
367
380
  scrollBridge.snapToPosition = positionIndex => {
@@ -379,9 +392,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
379
392
  }) => {
380
393
  const to = resisted(dy + startY, minY);
381
394
  if (to <= minY) scrollBridge.setParentDragging(false);else scrollBridge.setParentDragging(true);
382
- animatedNumber.setValue(to, {
383
- type: "direct"
384
- });
395
+ setAnimatedPositionDirect(to);
385
396
  },
386
397
  onPanResponderEnd: finish,
387
398
  onPanResponderTerminate: finish,
@@ -426,16 +437,11 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
426
437
  stopSpring,
427
438
  scrollBridge,
428
439
  setIsDragging,
429
- getCurrentPosition: () => at.current,
440
+ getCurrentPosition: getAnimatedPosition,
430
441
  resisted,
431
442
  disableDrag,
432
443
  isShowingInnerSheet,
433
- setAnimatedPosition: val => {
434
- at.current = val;
435
- animatedNumber.setValue(val, {
436
- type: "direct"
437
- });
438
- },
444
+ setAnimatedPosition: setAnimatedPositionDirect,
439
445
  dismissOnSnapToBottom,
440
446
  snapPointsMode,
441
447
  isKeyboardVisible,