@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
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","composeRefs","isWeb","View","ScrollView","useControllableState","React","useEffect","useRef","useState","useGestureSheetContext","getGestureHandlerState","isGestureHandlerEnabled","useSheetContext","useSheetScrollViewGestures","getStableLayoutViewportHeight","getWebKeyboardBottomInset","getWebKeyboardResizeHeight","isEditableElement","MIN_KEYBOARD_HEIGHT","SHEET_SCROLL_VIEW_NAME","SheetScrollView","forwardRef","param","ref","__scopeSheet","children","onScroll","scrollEnabled","scrollEnabledProp","props","context","gestureContext","scrollBridge","setHasScrollView","hasFit","screenSize","keyboardOccludedHeight","Math","max","isKeyboardVisible","prop","defaultProp","scrollRef","hasScrollableContent","setHasScrollableContent","parentHeight","contentHeight","frozenFrameHeight","keyboardStableFrameHeight","fitSizingStyle","flex","height","maxHeight","keyboardFrozenOverride","panGestureRef","RNGHScrollView","useRNGHScrollView","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","contains","keyboardHeight","activeRect","getBoundingClientRect","nodeRect","margin","keyboardTop","visibleTop","top","visibleBottom","min","bottom","nextScrollTop","scrollTop","ceil","maxScrollTop","scrollHeight","clientHeight","scrollStartY","scheduleFocusedInputScroll","cancelAnimationFrame","requestAnimationFrame","_window_visualViewport","window","addEventListener","visualViewport","_window_visualViewport2","removeEventListener","updateScrollable","recordFitHeight","gestureProps","contentWrapper","onLayout","e","floor","nativeEvent","layout","width","RNGHComponent","style","scrollEventThrottle","simultaneousHandlers","contentOffset","contentContainerStyle","minHeight","bounces","keyboardShouldPersistTaps","keyboardDismissMode","className"],"sources":["../../src/SheetScrollView.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","composeRefs","isWeb","View","ScrollView","useControllableState","React","useEffect","useRef","useState","useGestureSheetContext","getGestureHandlerState","isGestureHandlerEnabled","useSheetContext","useSheetScrollViewGestures","getStableLayoutViewportHeight","getWebKeyboardBottomInset","getWebKeyboardResizeHeight","isEditableElement","MIN_KEYBOARD_HEIGHT","SHEET_SCROLL_VIEW_NAME","SheetScrollView","forwardRef","param","ref","__scopeSheet","children","onScroll","scrollEnabled","scrollEnabledProp","props","context","gestureContext","scrollBridge","setHasScrollView","hasFit","screenSize","keyboardOccludedHeight","Math","max","isKeyboardVisible","prop","defaultProp","scrollRef","hasScrollableContent","setHasScrollableContent","parentHeight","contentHeight","frozenFrameHeight","keyboardStableFrameHeight","fitSizingStyle","flex","height","maxHeight","contentContainerStyle","minHeight","keyboardFrozenOverride","panGestureRef","RNGHScrollView","useRNGHScrollView","currentScrollOffset","lastEmittedScrollOffset","lockedScrollY","focusedInputScrollFrame","setScrollEnabled","next","lockTo","_ref","lockY","scrollLockY","current","enabled","_scrollRef_current_scrollTo","_scrollRef_current","scrollTo","call","x","y","animated","forceScrollTo","emitManualScroll","useCallback","node","scrollStartY","nativeEvent","contentOffset","scrollLeft","contentSize","scrollHeight","width","scrollWidth","layoutMeasurement","offsetHeight","offsetWidth","timeStamp","Date","now","scrollFocusedInputClearOfKeyboard","getScrollableNode","active","document","activeElement","contains","keyboardHeight","activeRect","getBoundingClientRect","nodeRect","margin","keyboardTop","visibleTop","top","visibleBottom","min","bottom","nextScrollTop","scrollTop","ceil","maxScrollTop","clientHeight","scheduleFocusedInputScroll","cancelAnimationFrame","requestAnimationFrame","_window_visualViewport","window","addEventListener","visualViewport","_window_visualViewport2","removeEventListener","updateScrollable","recordFitHeight","gestureProps","onManualScroll","contentWrapper","onLayout","e","floor","layout","RNGHComponent","style","scrollEventThrottle","simultaneousHandlers","bounces","keyboardShouldPersistTaps","keyboardDismissMode","className"],"sources":["../../src/SheetScrollView.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,22 @@
1
1
  import { getGestureHandler } from "@tamagui/native";
2
+ const SHEET_GESTURE_STATE_KEY = "__tamagui_sheet_gesture_state__";
3
+ function getSheetGestureHandlerState() {
4
+ const g = globalThis;
5
+ return g[SHEET_GESTURE_STATE_KEY] ?? getGestureHandler().state;
6
+ }
2
7
  function isGestureHandlerEnabled() {
3
- return getGestureHandler().isEnabled;
8
+ return getSheetGestureHandlerState().enabled;
4
9
  }
5
10
  function getGestureHandlerState() {
6
- return getGestureHandler().state;
11
+ return getSheetGestureHandlerState();
7
12
  }
8
13
  function setGestureHandlerState(updates) {
14
+ const g = globalThis;
15
+ const sheetState = g[SHEET_GESTURE_STATE_KEY];
16
+ if (sheetState) {
17
+ Object.assign(sheetState, updates);
18
+ return;
19
+ }
9
20
  getGestureHandler().set(updates);
10
21
  }
11
22
  const setGestureState = setGestureHandlerState;
@@ -1 +1 @@
1
- {"version":3,"names":["getGestureHandler","isGestureHandlerEnabled","isEnabled","getGestureHandlerState","state","setGestureHandlerState","updates","set","setGestureState"],"sources":["../../src/gestureState.ts"],"sourcesContent":[null],"mappings":"AAKA,SAASA,iBAAA,QAA4C;AAK9C,SAASC,wBAAA,EAAmC;EACjD,OAAOD,iBAAA,CAAkB,EAAEE,SAAA;AAC7B;AAEO,SAASC,uBAAA,EAAuC;EACrD,OAAOH,iBAAA,CAAkB,EAAEI,KAAA;AAC7B;AAEO,SAASC,uBAAuBC,OAAA,EAAsC;EAC3EN,iBAAA,CAAkB,EAAEO,GAAA,CAAID,OAAO;AACjC;AAGO,MAAME,eAAA,GAAkBH,sBAAA","ignoreList":[]}
1
+ {"version":3,"names":["getGestureHandler","SHEET_GESTURE_STATE_KEY","getSheetGestureHandlerState","g","globalThis","state","isGestureHandlerEnabled","enabled","getGestureHandlerState","setGestureHandlerState","updates","sheetState","Object","assign","set","setGestureState"],"sources":["../../src/gestureState.ts"],"sourcesContent":[null],"mappings":"AAKA,SAASA,iBAAA,QAA4C;AAIrD,MAAMC,uBAAA,GAA0B;AAEhC,SAASC,4BAAA,EAA4C;EACnD,MAAMC,CAAA,GAAIC,UAAA;EAIV,OAAOD,CAAA,CAAEF,uBAAuB,KAAKD,iBAAA,CAAkB,EAAEK,KAAA;AAC3D;AAGO,SAASC,wBAAA,EAAmC;EACjD,OAAOJ,2BAAA,CAA4B,EAAEK,OAAA;AACvC;AAEO,SAASC,uBAAA,EAAuC;EACrD,OAAON,2BAAA,CAA4B;AACrC;AAEO,SAASO,uBAAuBC,OAAA,EAAsC;EAC3E,MAAMP,CAAA,GAAIC,UAAA;EAIV,MAAMO,UAAA,GAAaR,CAAA,CAAEF,uBAAuB;EAC5C,IAAIU,UAAA,EAAY;IACdC,MAAA,CAAOC,MAAA,CAAOF,UAAA,EAAYD,OAAO;IACjC;EACF;EAEAV,iBAAA,CAAkB,EAAEc,GAAA,CAAIJ,OAAO;AACjC;AAGO,MAAMK,eAAA,GAAkBN,sBAAA","ignoreList":[]}
@@ -1,11 +1,23 @@
1
1
  import { getGestureHandler } from "@tamagui/native";
2
+ var SHEET_GESTURE_STATE_KEY = "__tamagui_sheet_gesture_state__";
3
+ function getSheetGestureHandlerState() {
4
+ var g = globalThis;
5
+ var _g_SHEET_GESTURE_STATE_KEY;
6
+ return (_g_SHEET_GESTURE_STATE_KEY = g[SHEET_GESTURE_STATE_KEY]) !== null && _g_SHEET_GESTURE_STATE_KEY !== void 0 ? _g_SHEET_GESTURE_STATE_KEY : getGestureHandler().state;
7
+ }
2
8
  function isGestureHandlerEnabled() {
3
- return getGestureHandler().isEnabled;
9
+ return getSheetGestureHandlerState().enabled;
4
10
  }
5
11
  function getGestureHandlerState() {
6
- return getGestureHandler().state;
12
+ return getSheetGestureHandlerState();
7
13
  }
8
14
  function setGestureHandlerState(updates) {
15
+ var g = globalThis;
16
+ var sheetState = g[SHEET_GESTURE_STATE_KEY];
17
+ if (sheetState) {
18
+ Object.assign(sheetState, updates);
19
+ return;
20
+ }
9
21
  getGestureHandler().set(updates);
10
22
  }
11
23
  var setGestureState = setGestureHandlerState;
@@ -1 +1 @@
1
- {"version":3,"names":["getGestureHandler","isGestureHandlerEnabled","isEnabled","getGestureHandlerState","state","setGestureHandlerState","updates","set","setGestureState"],"sources":["../../src/gestureState.ts"],"sourcesContent":[null],"mappings":"AAKA,SAASA,iBAAA,QAA4C;AAK9C,SAASC,wBAAA,EAAmC;EACjD,OAAOD,iBAAA,CAAkB,EAAEE,SAAA;AAC7B;AAEO,SAASC,uBAAA,EAAuC;EACrD,OAAOH,iBAAA,CAAkB,EAAEI,KAAA;AAC7B;AAEO,SAASC,uBAAuBC,OAAA,EAAsC;EAC3EN,iBAAA,CAAkB,EAAEO,GAAA,CAAID,OAAO;AACjC;AAGO,IAAAE,eAAM,GAAAH,sBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["getGestureHandler","SHEET_GESTURE_STATE_KEY","getSheetGestureHandlerState","g","globalThis","_g_SHEET_GESTURE_STATE_KEY","state","isGestureHandlerEnabled","enabled","getGestureHandlerState","setGestureHandlerState","updates","sheetState","Object","assign","set"],"sources":["../../src/gestureState.ts"],"sourcesContent":[null],"mappings":"AAKA,SAASA,iBAAA,QAA4C;AAIrD,IAAAC,uBAAM,oCAA0B;AAEhC,SAASC,4BAAA,EAA4C;EACnD,IAAAC,CAAA,GAAMC,UAAI;EAIV,IAAAC,0BAAS;EACX,QAAAA,0BAAA,GAAAF,CAAA,CAAAF,uBAAA,eAAAI,0BAAA,cAAAA,0BAAA,GAAAL,iBAAA,GAAAM,KAAA;AAGO;AACL,SAAOC,wBAAA;EACT,OAAAL,2BAAA,GAAAM,OAAA;AAEO;AACL,SAAOC,uBAAA;EACT,OAAAP,2BAAA;AAEO;AACL,SAAMQ,sBAAIA,CAAAC,OAAA;EAIV,IAAAR,CAAA,GAAMC,UAAA;EACN,IAAIQ,UAAA,GAAYT,CAAA,CAAAF,uBAAA;EACd,IAAAW,UAAO,EAAO;IACdC,MAAA,CAAAC,MAAA,CAAAF,UAAA,EAAAD,OAAA;IACF;EAEA;EACFX,iBAAA,GAAAe,GAAA,CAAAJ,OAAA;AAGO","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -9,4 +9,6 @@ export * from "./SheetScrollView.mjs";
9
9
  export * from "./nativeSheet.mjs";
10
10
  export * from "./types.mjs";
11
11
  export * from "./contexts.mjs";
12
+ import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.mjs";
13
+ export { getGestureHandlerState as unstable_getSheetGestureHandlerState, isGestureHandlerEnabled as unstable_isSheetGestureHandlerEnabled };
12
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["getGestureHandlerState","isGestureHandlerEnabled"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAC4BA,sBAAA,EACCC,uBAAA,QACtB","ignoreList":[]}
@@ -9,4 +9,6 @@ export * from "./SheetScrollView.mjs";
9
9
  export * from "./nativeSheet.mjs";
10
10
  export * from "./types.mjs";
11
11
  export * from "./contexts.mjs";
12
+ import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.mjs";
13
+ export { getGestureHandlerState as unstable_getSheetGestureHandlerState, isGestureHandlerEnabled as unstable_isSheetGestureHandlerEnabled };
12
14
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["getGestureHandlerState","isGestureHandlerEnabled"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAC4BA,sBAAA,EACCC,uBAAA,QACtB","ignoreList":[]}
@@ -9,4 +9,6 @@ export * from "./SheetScrollView.native.js";
9
9
  export * from "./nativeSheet.native.js";
10
10
  export * from "./types.native.js";
11
11
  export * from "./contexts.native.js";
12
+ import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.native.js";
13
+ export { getGestureHandlerState as unstable_getSheetGestureHandlerState, isGestureHandlerEnabled as unstable_isSheetGestureHandlerEnabled };
12
14
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["getGestureHandlerState","isGestureHandlerEnabled","unstable_getSheetGestureHandlerState","unstable_isSheetGestureHandlerEnabled"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAAA,sBAAA,EAAAC,uBAAA;AAAA,SAE6BD,sBAAA,IAAAE,oCAAA,EAAAD,uBACtB,IAAAE,qCAAA","ignoreList":[]}
@@ -1,6 +1,8 @@
1
1
  import { getGestureHandler } from "@tamagui/native";
2
+ const SHEET_GESTURE_STATE_KEY = "__tamagui_sheet_gesture_state__";
2
3
  function isGestureHandlerEnabled() {
3
- return getGestureHandler().isEnabled;
4
+ const g = globalThis;
5
+ return g[SHEET_GESTURE_STATE_KEY]?.enabled ?? getGestureHandler().isEnabled;
4
6
  }
5
7
  function setupGestureHandler(config) {
6
8
  const g = globalThis;
@@ -14,12 +16,13 @@ function setupGestureHandler(config) {
14
16
  ScrollView
15
17
  } = config;
16
18
  if (Gesture && GestureDetector) {
17
- getGestureHandler().set({
19
+ g[SHEET_GESTURE_STATE_KEY] = {
18
20
  enabled: true,
19
21
  Gesture,
20
22
  GestureDetector,
21
- ScrollView: ScrollView || null
22
- });
23
+ ScrollView: ScrollView || null,
24
+ RootView: null
25
+ };
23
26
  }
24
27
  }
25
28
  export { isGestureHandlerEnabled, setupGestureHandler };
@@ -1 +1 @@
1
- {"version":3,"names":["getGestureHandler","isGestureHandlerEnabled","isEnabled","setupGestureHandler","config","g","globalThis","__tamagui_sheet_gesture_handler_setup","Gesture","GestureDetector","ScrollView","set","enabled"],"sources":["../../src/setupGestureHandler.ts"],"sourcesContent":[null],"mappings":"AAIA,SAASA,iBAAA,QAAyB;AAE3B,SAASC,wBAAA,EAAmC;EACjD,OAAOD,iBAAA,CAAkB,EAAEE,SAAA;AAC7B;AAQO,SAASC,oBAAoBC,MAAA,EAAyC;EAC3E,MAAMC,CAAA,GAAIC,UAAA;EACV,IAAID,CAAA,CAAEE,qCAAA,EAAuC;IAC3C;EACF;EACAF,CAAA,CAAEE,qCAAA,GAAwC;EAE1C,MAAM;IAAEC,OAAA;IAASC,eAAA;IAAiBC;EAAW,IAAIN,MAAA;EAEjD,IAAII,OAAA,IAAWC,eAAA,EAAiB;IAC9BT,iBAAA,CAAkB,EAAEW,GAAA,CAAI;MACtBC,OAAA,EAAS;MACTJ,OAAA;MACAC,eAAA;MACAC,UAAA,EAAYA,UAAA,IAAc;IAC5B,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"names":["getGestureHandler","SHEET_GESTURE_STATE_KEY","isGestureHandlerEnabled","g","globalThis","enabled","isEnabled","setupGestureHandler","config","__tamagui_sheet_gesture_handler_setup","Gesture","GestureDetector","ScrollView","RootView"],"sources":["../../src/setupGestureHandler.ts"],"sourcesContent":[null],"mappings":"AAIA,SAASA,iBAAA,QAAyB;AAIlC,MAAMC,uBAAA,GAA0B;AAEzB,SAASC,wBAAA,EAAmC;EACjD,MAAMC,CAAA,GAAIC,UAAA;EAIV,OAAOD,CAAA,CAAEF,uBAAuB,GAAGI,OAAA,IAAWL,iBAAA,CAAkB,EAAEM,SAAA;AACpE;AAQO,SAASC,oBAAoBC,MAAA,EAAyC;EAC3E,MAAML,CAAA,GAAIC,UAAA;EACV,IAAID,CAAA,CAAEM,qCAAA,EAAuC;IAC3C;EACF;EACAN,CAAA,CAAEM,qCAAA,GAAwC;EAE1C,MAAM;IAAEC,OAAA;IAASC,eAAA;IAAiBC;EAAW,IAAIJ,MAAA;EAEjD,IAAIE,OAAA,IAAWC,eAAA,EAAiB;IAC9BR,CAAA,CAAEF,uBAAuB,IAAI;MAC3BI,OAAA,EAAS;MACTK,OAAA;MACAC,eAAA;MACAC,UAAA,EAAYA,UAAA,IAAc;MAC1BC,QAAA,EAAU;IACZ;EACF;AACF","ignoreList":[]}
@@ -1,6 +1,10 @@
1
1
  import { getGestureHandler } from "@tamagui/native";
2
+ var SHEET_GESTURE_STATE_KEY = "__tamagui_sheet_gesture_state__";
2
3
  function isGestureHandlerEnabled() {
3
- return getGestureHandler().isEnabled;
4
+ var _g_SHEET_GESTURE_STATE_KEY;
5
+ var g = globalThis;
6
+ var _g_SHEET_GESTURE_STATE_KEY_enabled;
7
+ return (_g_SHEET_GESTURE_STATE_KEY_enabled = (_g_SHEET_GESTURE_STATE_KEY = g[SHEET_GESTURE_STATE_KEY]) === null || _g_SHEET_GESTURE_STATE_KEY === void 0 ? void 0 : _g_SHEET_GESTURE_STATE_KEY.enabled) !== null && _g_SHEET_GESTURE_STATE_KEY_enabled !== void 0 ? _g_SHEET_GESTURE_STATE_KEY_enabled : getGestureHandler().isEnabled;
4
8
  }
5
9
  function setupGestureHandler(config) {
6
10
  var g = globalThis;
@@ -14,12 +18,13 @@ function setupGestureHandler(config) {
14
18
  ScrollView
15
19
  } = config;
16
20
  if (Gesture && GestureDetector) {
17
- getGestureHandler().set({
21
+ g[SHEET_GESTURE_STATE_KEY] = {
18
22
  enabled: true,
19
23
  Gesture,
20
24
  GestureDetector,
21
- ScrollView: ScrollView || null
22
- });
25
+ ScrollView: ScrollView || null,
26
+ RootView: null
27
+ };
23
28
  }
24
29
  }
25
30
  export { isGestureHandlerEnabled, setupGestureHandler };
@@ -1 +1 @@
1
- {"version":3,"names":["getGestureHandler","isGestureHandlerEnabled","isEnabled","setupGestureHandler","config","g","globalThis","__tamagui_sheet_gesture_handler_setup","Gesture","GestureDetector","ScrollView","set","enabled"],"sources":["../../src/setupGestureHandler.ts"],"sourcesContent":[null],"mappings":"AAIA,SAASA,iBAAA,QAAyB;AAE3B,SAASC,wBAAA,EAAmC;EACjD,OAAOD,iBAAA,CAAkB,EAAEE,SAAA;AAC7B;AAQO,SAASC,oBAAoBC,MAAA,EAAyC;EAC3E,IAAAC,CAAA,GAAMC,UAAI;EACV,IAAID,CAAA,CAAEE,qCAAA,EAAuC;IAC3C;EACF;EACAF,CAAA,CAAEE,qCAAA,GAAwC;EAE1C;IAAMC,OAAE;IAAAC,eAAS;IAAAC;EAAiB,IAAWN,MAAI;EAEjD,IAAII,OAAA,IAAWC,eAAA,EAAiB;IAC9BT,iBAAA,CAAkB,EAAEW,GAAA,CAAI;MACtBC,OAAA,EAAS;MACTJ,OAAA;MACAC,eAAA;MACAC,UAAA,EAAYA,UAAA,IAAc;IAC5B,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"names":["getGestureHandler","SHEET_GESTURE_STATE_KEY","isGestureHandlerEnabled","_g_SHEET_GESTURE_STATE_KEY","g","globalThis","_g_SHEET_GESTURE_STATE_KEY_enabled","enabled","isEnabled","setupGestureHandler","config","__tamagui_sheet_gesture_handler_setup","Gesture","GestureDetector","ScrollView","RootView"],"sources":["../../src/setupGestureHandler.ts"],"sourcesContent":[null],"mappings":"AAIA,SAASA,iBAAA,QAAyB;AAIlC,IAAAC,uBAAM,oCAA0B;AAEzB,SAASC,wBAAA,EAAmC;EACjD,IAAAC,0BAAU;EAIV,IAAAC,CAAA,GAAOC,UAAE;EACX,IAAAC,kCAAA;EAQO,OAAS,CAAAA,kCAA6D,IAAAH,0BAAA,GAAAC,CAAA,CAAAH,uBAAA,eAAAE,0BAAA,uBAAAA,0BAAA,CAAAI,OAAA,cAAAD,kCAAA,cAAAA,kCAAA,GAAAN,iBAAA,GAAAQ,SAAA;AAC3E;AACA,SAAMC,oBAAAC,MAAA;EACJ,IAAAN,CAAA,GAAAC,UAAA;EACF,IAAAD,CAAA,CAAAO,qCAAA;IACE;EAEF;EAEAP,CAAA,CAAAO,qCAAgC;EAC9B,IAAE;IAAAC,OAAA;IAAAC,eAAuB;IAAIC;EAAA,IAAAJ,MAAA;EAAA,IAC3BE,OAAA,IAASC,eAAA;IAAAT,CAAA,CACTH,uBAAA;MACAM,OAAA;MACAK,OAAA;MACAC,eAAU;MACZC,UAAA,EAAAA,UAAA;MACFC,QAAA;IACF","ignoreList":[]}
@@ -1,8 +1,9 @@
1
1
  import { isWeb } from "@tamagui/constants";
2
- import { useCallback, useMemo, useRef } from "react";
2
+ import { useCallback, useEffect, useMemo, useRef } from "react";
3
3
  import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.mjs";
4
4
  import { getSheetReleasePosition } from "./keyboardAvoidance.mjs";
5
5
  const AT_TOP_THRESHOLD = 5;
6
+ const SCROLL_HANDOFF_THRESHOLD = 160;
6
7
  function useGestureHandlerPan(config) {
7
8
  const {
8
9
  positions,
@@ -47,15 +48,41 @@ function useGestureHandlerPan(config) {
47
48
  frozenMinY: 0,
48
49
  frozenIsKeyboardVisible: false,
49
50
  // whether pan gesture actually started (vs just a tap in onBegin)
50
- panStarted: false
51
+ panStarted: false,
52
+ startedBelowTop: false,
53
+ upwardDragAfterTop: 0,
54
+ scrollUnlockedAfterTop: false,
55
+ keepScrollLockedAfterEnd: false
51
56
  });
57
+ const unlockScrollTimer = useRef(null);
58
+ useEffect(() => {
59
+ return () => {
60
+ if (unlockScrollTimer.current) {
61
+ clearTimeout(unlockScrollTimer.current);
62
+ unlockScrollTimer.current = null;
63
+ }
64
+ };
65
+ }, []);
52
66
  const onStart = useCallback(() => {
53
67
  stopSpring();
54
68
  }, [stopSpring]);
55
- const onEnd = useCallback((closestPoint, animationOverride) => {
69
+ const onEnd = useCallback((closestPoint, animationOverride, keepScrollLocked = false) => {
70
+ if (unlockScrollTimer.current) {
71
+ clearTimeout(unlockScrollTimer.current);
72
+ unlockScrollTimer.current = null;
73
+ }
56
74
  setIsDragging(false);
57
75
  scrollBridge.setParentDragging(false);
58
- scrollBridge.setScrollEnabled?.(true);
76
+ scrollBridge.lockScrollAtTop = false;
77
+ if (keepScrollLocked) {
78
+ scrollBridge.setScrollEnabled?.(false, 0);
79
+ unlockScrollTimer.current = setTimeout(() => {
80
+ unlockScrollTimer.current = null;
81
+ scrollBridge.setScrollEnabled?.(true);
82
+ }, 160);
83
+ } else {
84
+ scrollBridge.setScrollEnabled?.(true);
85
+ }
59
86
  setPosition(closestPoint);
60
87
  animateTo(closestPoint, animationOverride);
61
88
  }, [setIsDragging, scrollBridge, setPosition, animateTo]);
@@ -87,6 +114,15 @@ function useGestureHandlerPan(config) {
87
114
  gs.frozenPositions = [...positions];
88
115
  gs.frozenMinY = minY;
89
116
  gs.frozenIsKeyboardVisible = releaseConfigRef.current.isKeyboardVisible;
117
+ gs.startedBelowTop = !atTop;
118
+ gs.upwardDragAfterTop = 0;
119
+ gs.scrollUnlockedAfterTop = false;
120
+ gs.keepScrollLockedAfterEnd = false;
121
+ scrollBridge.lockScrollAtTop = false;
122
+ if (unlockScrollTimer.current) {
123
+ clearTimeout(unlockScrollTimer.current);
124
+ unlockScrollTimer.current = null;
125
+ }
90
126
  if (!atTop) {
91
127
  scrollBridge.setScrollEnabled?.(false, 0);
92
128
  }
@@ -128,13 +164,24 @@ function useGestureHandlerPan(config) {
128
164
  }
129
165
  } else {
130
166
  if (hasScrollableContent) {
131
- panHandles = false;
167
+ if (gs.startedBelowTop && !gs.scrollUnlockedAfterTop) {
168
+ gs.upwardDragAfterTop += Math.max(0, -deltaY);
169
+ if (gs.upwardDragAfterTop >= SCROLL_HANDOFF_THRESHOLD) {
170
+ gs.scrollUnlockedAfterTop = true;
171
+ panHandles = false;
172
+ } else {
173
+ panHandles = true;
174
+ }
175
+ } else {
176
+ panHandles = false;
177
+ }
132
178
  } else {
133
179
  panHandles = true;
134
180
  }
135
181
  }
136
182
  }
137
183
  if (panHandles) {
184
+ scrollBridge.lockScrollAtTop = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
138
185
  const lockTo = isCurrentlyAtTop && isSwipingDown && gs.scrollEngaged ? void 0 : 0;
139
186
  scrollBridge.setScrollEnabled?.(false, lockTo);
140
187
  gs.accumulatedOffset += deltaY;
@@ -143,18 +190,23 @@ function useGestureHandlerPan(config) {
143
190
  setAnimatedPosition(newPosition);
144
191
  scrollBridge.setParentDragging(newPosition > minY);
145
192
  } else {
193
+ scrollBridge.lockScrollAtTop = false;
146
194
  scrollBridge.setScrollEnabled?.(true);
195
+ scrollBridge.setParentDragging(false);
147
196
  }
148
197
  }).onEnd(event => {
149
198
  const {
150
199
  velocityY
151
200
  } = event;
152
201
  const currentPos = gs.startY + gs.accumulatedOffset;
153
- scrollBridge.scrollLockY = void 0;
202
+ const keepScrollLockedAfterEnd = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
203
+ scrollBridge.lockScrollAtTop = false;
204
+ scrollBridge.scrollLockY = keepScrollLockedAfterEnd ? 0 : void 0;
205
+ gs.keepScrollLockedAfterEnd = keepScrollLockedAfterEnd;
154
206
  const snapPositions = gs.frozenPositions.length > 0 ? gs.frozenPositions : positions;
155
207
  const snapMinY = gs.frozenPositions.length > 0 ? gs.frozenMinY : minY;
156
208
  if (currentPos <= snapMinY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
157
- onEnd(0);
209
+ onEnd(0, void 0, keepScrollLockedAfterEnd);
158
210
  return;
159
211
  }
160
212
  const velocity = velocityY / 1e3;
@@ -170,9 +222,10 @@ function useGestureHandlerPan(config) {
170
222
  isKeyboardVisible: gs.frozenIsKeyboardVisible,
171
223
  isWeb
172
224
  });
173
- onEnd(closestPoint);
225
+ onEnd(closestPoint, void 0, keepScrollLockedAfterEnd);
174
226
  }).onFinalize(() => {
175
- scrollBridge.scrollLockY = void 0;
227
+ scrollBridge.lockScrollAtTop = false;
228
+ scrollBridge.scrollLockY = gs.keepScrollLockedAfterEnd ? 0 : void 0;
176
229
  if (gs.panStarted) {
177
230
  setIsDragging(false);
178
231
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["isWeb","useCallback","useMemo","useRef","getGestureHandlerState","isGestureHandlerEnabled","getSheetReleasePosition","AT_TOP_THRESHOLD","useGestureHandlerPan","config","positions","frameSize","setPosition","animateTo","stopSpring","scrollBridge","setIsDragging","getCurrentPosition","resisted","disableDrag","isShowingInnerSheet","setAnimatedPosition","scrollGestureRef","gestureHandlerEnabled","panGestureRef","releaseConfigRef","dismissOnSnapToBottom","snapPointsMode","isKeyboardVisible","current","gestureStateRef","startY","lastPanTranslationY","accumulatedOffset","prevTranslationY","scrollEngaged","frozenPositions","frozenMinY","frozenIsKeyboardVisible","panStarted","onStart","onEnd","closestPoint","animationOverride","setParentDragging","setScrollEnabled","panGesture","Gesture","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","velocityY","scrollLockY","snapPositions","length","snapMinY","velocity","projectedEnd","releaseConfig","currentPosition","onFinalize","runOnJS","simultaneousWithExternalGesture"],"sources":["../../src/useGestureHandlerPan.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["isWeb","useCallback","useEffect","useMemo","useRef","getGestureHandlerState","isGestureHandlerEnabled","getSheetReleasePosition","AT_TOP_THRESHOLD","SCROLL_HANDOFF_THRESHOLD","useGestureHandlerPan","config","positions","frameSize","setPosition","animateTo","stopSpring","scrollBridge","setIsDragging","getCurrentPosition","resisted","disableDrag","isShowingInnerSheet","setAnimatedPosition","scrollGestureRef","gestureHandlerEnabled","panGestureRef","releaseConfigRef","dismissOnSnapToBottom","snapPointsMode","isKeyboardVisible","current","gestureStateRef","startY","lastPanTranslationY","accumulatedOffset","prevTranslationY","scrollEngaged","frozenPositions","frozenMinY","frozenIsKeyboardVisible","panStarted","startedBelowTop","upwardDragAfterTop","scrollUnlockedAfterTop","keepScrollLockedAfterEnd","unlockScrollTimer","clearTimeout","onStart","onEnd","closestPoint","animationOverride","keepScrollLocked","setParentDragging","lockScrollAtTop","setScrollEnabled","setTimeout","panGesture","Gesture","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","length","snapMinY","velocity","projectedEnd","releaseConfig","currentPosition","onFinalize","runOnJS","simultaneousWithExternalGesture"],"sources":["../../src/useGestureHandlerPan.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,9 @@
1
1
  import { isWeb } from "@tamagui/constants";
2
- import { useCallback, useMemo, useRef } from "react";
2
+ import { useCallback, useEffect, useMemo, useRef } from "react";
3
3
  import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.native.js";
4
4
  import { getSheetReleasePosition } from "./keyboardAvoidance.native.js";
5
5
  var AT_TOP_THRESHOLD = 5;
6
+ var SCROLL_HANDOFF_THRESHOLD = 160;
6
7
  function useGestureHandlerPan(config) {
7
8
  var {
8
9
  positions,
@@ -49,16 +50,45 @@ function useGestureHandlerPan(config) {
49
50
  frozenMinY: 0,
50
51
  frozenIsKeyboardVisible: false,
51
52
  // whether pan gesture actually started (vs just a tap in onBegin)
52
- panStarted: false
53
+ panStarted: false,
54
+ startedBelowTop: false,
55
+ upwardDragAfterTop: 0,
56
+ scrollUnlockedAfterTop: false,
57
+ keepScrollLockedAfterEnd: false
53
58
  });
59
+ var unlockScrollTimer = useRef(null);
60
+ useEffect(function () {
61
+ return function () {
62
+ if (unlockScrollTimer.current) {
63
+ clearTimeout(unlockScrollTimer.current);
64
+ unlockScrollTimer.current = null;
65
+ }
66
+ };
67
+ }, []);
54
68
  var onStart = useCallback(function () {
55
69
  stopSpring();
56
70
  }, [stopSpring]);
57
71
  var onEnd = useCallback(function (closestPoint, animationOverride) {
58
- var _scrollBridge_setScrollEnabled;
72
+ var keepScrollLocked = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
73
+ if (unlockScrollTimer.current) {
74
+ clearTimeout(unlockScrollTimer.current);
75
+ unlockScrollTimer.current = null;
76
+ }
59
77
  setIsDragging(false);
60
78
  scrollBridge.setParentDragging(false);
61
- (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, true);
79
+ scrollBridge.lockScrollAtTop = false;
80
+ if (keepScrollLocked) {
81
+ var _scrollBridge_setScrollEnabled;
82
+ (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, false, 0);
83
+ unlockScrollTimer.current = setTimeout(function () {
84
+ var _scrollBridge_setScrollEnabled2;
85
+ unlockScrollTimer.current = null;
86
+ (_scrollBridge_setScrollEnabled2 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled2 === void 0 ? void 0 : _scrollBridge_setScrollEnabled2.call(scrollBridge, true);
87
+ }, 160);
88
+ } else {
89
+ var _scrollBridge_setScrollEnabled1;
90
+ (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 ? void 0 : _scrollBridge_setScrollEnabled1.call(scrollBridge, true);
91
+ }
62
92
  setPosition(closestPoint);
63
93
  animateTo(closestPoint, animationOverride);
64
94
  }, [setIsDragging, scrollBridge, setPosition, animateTo]);
@@ -90,6 +120,15 @@ function useGestureHandlerPan(config) {
90
120
  gs.frozenPositions = [...positions];
91
121
  gs.frozenMinY = minY;
92
122
  gs.frozenIsKeyboardVisible = releaseConfigRef.current.isKeyboardVisible;
123
+ gs.startedBelowTop = !atTop;
124
+ gs.upwardDragAfterTop = 0;
125
+ gs.scrollUnlockedAfterTop = false;
126
+ gs.keepScrollLockedAfterEnd = false;
127
+ scrollBridge.lockScrollAtTop = false;
128
+ if (unlockScrollTimer.current) {
129
+ clearTimeout(unlockScrollTimer.current);
130
+ unlockScrollTimer.current = null;
131
+ }
93
132
  if (!atTop) {
94
133
  var _scrollBridge_setScrollEnabled;
95
134
  (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, false, 0);
@@ -132,7 +171,17 @@ function useGestureHandlerPan(config) {
132
171
  }
133
172
  } else {
134
173
  if (hasScrollableContent) {
135
- panHandles = false;
174
+ if (gs.startedBelowTop && !gs.scrollUnlockedAfterTop) {
175
+ gs.upwardDragAfterTop += Math.max(0, -deltaY);
176
+ if (gs.upwardDragAfterTop >= SCROLL_HANDOFF_THRESHOLD) {
177
+ gs.scrollUnlockedAfterTop = true;
178
+ panHandles = false;
179
+ } else {
180
+ panHandles = true;
181
+ }
182
+ } else {
183
+ panHandles = false;
184
+ }
136
185
  } else {
137
186
  panHandles = true;
138
187
  }
@@ -140,6 +189,7 @@ function useGestureHandlerPan(config) {
140
189
  }
141
190
  if (panHandles) {
142
191
  var _scrollBridge_setScrollEnabled;
192
+ scrollBridge.lockScrollAtTop = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
143
193
  var lockTo = isCurrentlyAtTop && isSwipingDown && gs.scrollEngaged ? void 0 : 0;
144
194
  (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, false, lockTo);
145
195
  gs.accumulatedOffset += deltaY;
@@ -149,18 +199,23 @@ function useGestureHandlerPan(config) {
149
199
  scrollBridge.setParentDragging(newPosition > minY);
150
200
  } else {
151
201
  var _scrollBridge_setScrollEnabled1;
202
+ scrollBridge.lockScrollAtTop = false;
152
203
  (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 ? void 0 : _scrollBridge_setScrollEnabled1.call(scrollBridge, true);
204
+ scrollBridge.setParentDragging(false);
153
205
  }
154
206
  }).onEnd(function (event) {
155
207
  var {
156
208
  velocityY
157
209
  } = event;
158
210
  var currentPos = gs.startY + gs.accumulatedOffset;
159
- scrollBridge.scrollLockY = void 0;
211
+ var keepScrollLockedAfterEnd = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
212
+ scrollBridge.lockScrollAtTop = false;
213
+ scrollBridge.scrollLockY = keepScrollLockedAfterEnd ? 0 : void 0;
214
+ gs.keepScrollLockedAfterEnd = keepScrollLockedAfterEnd;
160
215
  var snapPositions = gs.frozenPositions.length > 0 ? gs.frozenPositions : positions;
161
216
  var snapMinY = gs.frozenPositions.length > 0 ? gs.frozenMinY : minY;
162
217
  if (currentPos <= snapMinY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
163
- onEnd(0);
218
+ onEnd(0, void 0, keepScrollLockedAfterEnd);
164
219
  return;
165
220
  }
166
221
  var velocity = velocityY / 1e3;
@@ -176,9 +231,10 @@ function useGestureHandlerPan(config) {
176
231
  isKeyboardVisible: gs.frozenIsKeyboardVisible,
177
232
  isWeb
178
233
  });
179
- onEnd(closestPoint);
234
+ onEnd(closestPoint, void 0, keepScrollLockedAfterEnd);
180
235
  }).onFinalize(function () {
181
- scrollBridge.scrollLockY = void 0;
236
+ scrollBridge.lockScrollAtTop = false;
237
+ scrollBridge.scrollLockY = gs.keepScrollLockedAfterEnd ? 0 : void 0;
182
238
  if (gs.panStarted) {
183
239
  setIsDragging(false);
184
240
  } else {