@tamagui/sheet 2.3.3 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/dist/cjs/SheetImplementationCustom.cjs +42 -29
- package/dist/cjs/SheetImplementationCustom.native.js +46 -33
- package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
- package/dist/cjs/SheetScrollView.cjs +64 -22
- package/dist/cjs/SheetScrollView.native.js +66 -23
- package/dist/cjs/SheetScrollView.native.js.map +1 -1
- package/dist/cjs/useGestureHandlerPan.cjs +61 -8
- package/dist/cjs/useGestureHandlerPan.native.js +64 -8
- package/dist/cjs/useGestureHandlerPan.native.js.map +1 -1
- package/dist/cjs/useSheetScrollViewGestures.cjs +13 -3
- package/dist/esm/SheetImplementationCustom.mjs +43 -32
- package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
- package/dist/esm/SheetImplementationCustom.native.js +47 -36
- package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
- package/dist/esm/SheetScrollView.mjs +64 -22
- package/dist/esm/SheetScrollView.mjs.map +1 -1
- package/dist/esm/SheetScrollView.native.js +66 -23
- package/dist/esm/SheetScrollView.native.js.map +1 -1
- package/dist/esm/useGestureHandlerPan.mjs +62 -9
- package/dist/esm/useGestureHandlerPan.mjs.map +1 -1
- package/dist/esm/useGestureHandlerPan.native.js +65 -9
- package/dist/esm/useGestureHandlerPan.native.js.map +1 -1
- package/dist/esm/useSheetScrollViewGestures.mjs +13 -3
- package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -1
- package/dist/jsx/SheetImplementationCustom.mjs +43 -32
- package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
- package/dist/jsx/SheetImplementationCustom.native.js +46 -33
- package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
- package/dist/jsx/SheetScrollView.mjs +64 -22
- package/dist/jsx/SheetScrollView.mjs.map +1 -1
- package/dist/jsx/SheetScrollView.native.js +66 -23
- package/dist/jsx/SheetScrollView.native.js.map +1 -1
- package/dist/jsx/useGestureHandlerPan.mjs +62 -9
- package/dist/jsx/useGestureHandlerPan.mjs.map +1 -1
- package/dist/jsx/useGestureHandlerPan.native.js +64 -8
- package/dist/jsx/useGestureHandlerPan.native.js.map +1 -1
- package/dist/jsx/useSheetScrollViewGestures.mjs +13 -3
- package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -1
- package/package.json +20 -20
- package/src/SheetImplementationCustom.tsx +79 -47
- package/src/SheetScrollView.tsx +61 -13
- package/src/types.tsx +3 -0
- package/src/useGestureHandlerPan.tsx +64 -10
- package/src/useSheetScrollViewGestures.ts +17 -2
- package/types/SheetImplementationCustom.d.ts.map +1 -1
- package/types/SheetScrollView.d.ts.map +1 -1
- package/types/types.d.ts +1 -0
- package/types/types.d.ts.map +1 -1
- package/types/useGestureHandlerPan.d.ts.map +1 -1
- package/types/useSheetScrollViewGestures.d.ts +2 -1
- package/types/useSheetScrollViewGestures.d.ts.map +1 -1
|
@@ -84,6 +84,9 @@ var SheetScrollView = /* @__PURE__ */import_react.default.forwardRef(function (p
|
|
|
84
84
|
} : {
|
|
85
85
|
flex: 1
|
|
86
86
|
};
|
|
87
|
+
var contentContainerStyle = hasFit ? void 0 : {
|
|
88
|
+
minHeight: "100%"
|
|
89
|
+
};
|
|
87
90
|
var keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {
|
|
88
91
|
height: frozenFrameHeight,
|
|
89
92
|
maxHeight: frozenFrameHeight
|
|
@@ -94,20 +97,33 @@ var SheetScrollView = /* @__PURE__ */import_react.default.forwardRef(function (p
|
|
|
94
97
|
} = (0, import_gestureState.getGestureHandlerState)();
|
|
95
98
|
var useRNGHScrollView = (0, import_gestureState.isGestureHandlerEnabled)() && RNGHScrollView && panGestureRef;
|
|
96
99
|
var currentScrollOffset = (0, import_react.useRef)(0);
|
|
100
|
+
var lastEmittedScrollOffset = (0, import_react.useRef)(0);
|
|
97
101
|
var lockedScrollY = (0, import_react.useRef)(0);
|
|
98
102
|
var focusedInputScrollFrame = (0, import_react.useRef)(0);
|
|
99
103
|
var setScrollEnabled = function (next, lockTo) {
|
|
100
104
|
if (!next) {
|
|
101
|
-
var
|
|
102
|
-
var lockY = lockTo !== null && lockTo !== void 0 ? lockTo : currentScrollOffset.current;
|
|
105
|
+
var _ref;
|
|
106
|
+
var lockY = (_ref = lockTo !== null && lockTo !== void 0 ? lockTo : scrollBridge.scrollLockY) !== null && _ref !== void 0 ? _ref : currentScrollOffset.current;
|
|
107
|
+
if (scrollBridge.enabled === false && scrollBridge.scrollLockY === lockY) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
scrollBridge.enabled = false;
|
|
103
111
|
lockedScrollY.current = lockY;
|
|
104
112
|
scrollBridge.scrollLockY = lockY;
|
|
105
|
-
(
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
113
|
+
if (currentScrollOffset.current !== lockY) {
|
|
114
|
+
var _scrollRef_current_scrollTo, _scrollRef_current;
|
|
115
|
+
(_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {
|
|
116
|
+
x: 0,
|
|
117
|
+
y: lockY,
|
|
118
|
+
animated: false
|
|
119
|
+
});
|
|
120
|
+
currentScrollOffset.current = lockY;
|
|
121
|
+
}
|
|
110
122
|
} else {
|
|
123
|
+
if (scrollBridge.enabled === true && scrollBridge.scrollLockY === void 0) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
scrollBridge.enabled = true;
|
|
111
127
|
lockedScrollY.current = currentScrollOffset.current;
|
|
112
128
|
scrollBridge.scrollLockY = void 0;
|
|
113
129
|
}
|
|
@@ -119,7 +135,31 @@ var SheetScrollView = /* @__PURE__ */import_react.default.forwardRef(function (p
|
|
|
119
135
|
y,
|
|
120
136
|
animated: false
|
|
121
137
|
});
|
|
138
|
+
currentScrollOffset.current = y;
|
|
122
139
|
};
|
|
140
|
+
var emitManualScroll = import_react.default.useCallback(function (node, y) {
|
|
141
|
+
currentScrollOffset.current = y;
|
|
142
|
+
scrollBridge.y = y;
|
|
143
|
+
if (y > 0) scrollBridge.scrollStartY = -1;
|
|
144
|
+
lastEmittedScrollOffset.current = y;
|
|
145
|
+
onScroll === null || onScroll === void 0 ? void 0 : onScroll({
|
|
146
|
+
nativeEvent: {
|
|
147
|
+
contentOffset: {
|
|
148
|
+
x: node.scrollLeft,
|
|
149
|
+
y
|
|
150
|
+
},
|
|
151
|
+
contentSize: {
|
|
152
|
+
height: node.scrollHeight,
|
|
153
|
+
width: node.scrollWidth
|
|
154
|
+
},
|
|
155
|
+
layoutMeasurement: {
|
|
156
|
+
height: node.offsetHeight,
|
|
157
|
+
width: node.offsetWidth
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
timeStamp: Date.now()
|
|
161
|
+
});
|
|
162
|
+
}, [onScroll, scrollBridge]);
|
|
123
163
|
var scrollFocusedInputClearOfKeyboard = import_react.default.useCallback(function () {
|
|
124
164
|
var _scrollRef_current;
|
|
125
165
|
if (!import_core.isWeb || !hasFit || !isKeyboardVisible || keyboardOccludedHeight <= 0) {
|
|
@@ -201,7 +241,8 @@ var SheetScrollView = /* @__PURE__ */import_react.default.forwardRef(function (p
|
|
|
201
241
|
scrollBridge,
|
|
202
242
|
hasScrollableContent,
|
|
203
243
|
scrollEnabled,
|
|
204
|
-
setScrollEnabled
|
|
244
|
+
setScrollEnabled,
|
|
245
|
+
onManualScroll: emitManualScroll
|
|
205
246
|
});
|
|
206
247
|
var contentWrapper = /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_core.View, {
|
|
207
248
|
onLayout: function (e) {
|
|
@@ -246,26 +287,29 @@ var SheetScrollView = /* @__PURE__ */import_react.default.forwardRef(function (p
|
|
|
246
287
|
animated: false
|
|
247
288
|
});
|
|
248
289
|
}
|
|
290
|
+
currentScrollOffset.current = scrollBridge.scrollLockY;
|
|
249
291
|
scrollBridge.y = scrollBridge.scrollLockY;
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
...e
|
|
254
|
-
|
|
255
|
-
...e.nativeEvent
|
|
256
|
-
|
|
292
|
+
if (lastEmittedScrollOffset.current !== scrollBridge.scrollLockY) {
|
|
293
|
+
lastEmittedScrollOffset.current = scrollBridge.scrollLockY;
|
|
294
|
+
onScroll === null || onScroll === void 0 ? void 0 : onScroll({
|
|
295
|
+
...e,
|
|
296
|
+
nativeEvent: {
|
|
297
|
+
...e.nativeEvent,
|
|
298
|
+
contentOffset: {
|
|
299
|
+
...e.nativeEvent.contentOffset,
|
|
300
|
+
y: scrollBridge.scrollLockY
|
|
301
|
+
}
|
|
257
302
|
}
|
|
258
|
-
}
|
|
259
|
-
}
|
|
303
|
+
});
|
|
304
|
+
}
|
|
260
305
|
return;
|
|
261
306
|
}
|
|
262
307
|
scrollBridge.y = y;
|
|
263
308
|
if (y > 0) scrollBridge.scrollStartY = -1;
|
|
309
|
+
lastEmittedScrollOffset.current = y;
|
|
264
310
|
onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);
|
|
265
311
|
},
|
|
266
|
-
contentContainerStyle
|
|
267
|
-
minHeight: "100%"
|
|
268
|
-
},
|
|
312
|
+
contentContainerStyle,
|
|
269
313
|
bounces: false,
|
|
270
314
|
keyboardShouldPersistTaps: "always",
|
|
271
315
|
keyboardDismissMode: "none",
|
|
@@ -291,11 +335,10 @@ var SheetScrollView = /* @__PURE__ */import_react.default.forwardRef(function (p
|
|
|
291
335
|
currentScrollOffset.current = y;
|
|
292
336
|
scrollBridge.y = y;
|
|
293
337
|
if (y > 0) scrollBridge.scrollStartY = -1;
|
|
338
|
+
lastEmittedScrollOffset.current = y;
|
|
294
339
|
onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);
|
|
295
340
|
},
|
|
296
|
-
contentContainerStyle
|
|
297
|
-
minHeight: "100%"
|
|
298
|
-
},
|
|
341
|
+
contentContainerStyle,
|
|
299
342
|
...gestureProps,
|
|
300
343
|
...props,
|
|
301
344
|
...keyboardFrozenOverride,
|
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,uBAAA;AAAAC,QAAA,CAAAD,uBAAA;EAAAE,eAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAA4B,CAAAK,uBAAA;AAC5B,IAAAK,kBAAyC,GAAAC,OAAA;AAEzC,IAAAC,mBAAA,GAA2BD,OAAA;AAC3B,IAAAE,WAAA,GAAAF,OAAA,gBAAqC;AACrC,IAAAG,kBAAmD,GAAAH,OAAA;AAEnD,IAAAI,6BAAuC,GAAAJ,OAAA;AACvC,IAAAK,YAAA,GAAAC,OAAgE,CAAAN,OAAA;AAChE,IAAAO,0BAAgC,GAAAP,OAAA;AAEhC,IAAAQ,mBAAA,GAAAR,OAAA,2BAA2C;AAC3C,IAAAS,mBAAA,GAMOT,OAAA;AAkMD,IAAAU,iCAAA,GAAAV,OAAA;AAhMN,IAAAW,kBAAM,GAAAX,OAAyB;AAExB,IAAAY,sBAAwB,oBAAM;AAAA,IAKjChB,eAAA,kBAAAS,YAAA,CAAAQ,OAAA,CAAAC,UAAA,WAAAC,KAAA,EAAAC,GAAA;EAAA,IACE;IAAAC,YAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,aAAA,EAAAC,iBAAA;IAAA,GAAAC;EAAA,IAAAP,KAAA;EAAA,IACAQ,OAAA,OAAAd,mBAAA,CAAAe,eAAA,EAAAZ,sBAAA,EAAAK,YAAA;EAAA,IACAQ,cAAA,OAAAlB,0BAAA,CAAAmB,sBAAA;EAAA,IACA;IAAAC,YAAe;IAAAC,gBAAA;IAAAC,MAAA;IAAAC;EAAA,IAAAP,OAAA;EAAA,IACfQ,sBAAG,GAAAC,IAAA,CAAAC,GAAA,IAAAV,OAAA,CAAAQ,sBAAA;EACL,IACAG,iBACG,GAAAX,OAAA,CAAAW,iBAAA,aAAAhC,WAAA,CAAAiC,KAAA,QAAAxB,kBAAA,CAAAyB,0BAAA,OAAAzB,kBAAA,CAAA0B,mBAAA;EACH,KAAAjB,aAAM,IAAU,IAAAhB,6BAAA,CAAAkC,oBAAgB;IAChCC,IAAA,EAAMlB,iBAAA;IACNmB,WAAQ;EACR;EAMA,IAAAC,SAAM,GAAApC,YACJ,CAAAQ,OAAQ,CAAA6B,MAAA;EAEV,KAAAC,oBAAoB,EAAAC,uBAAI,QAAAvC,YAAA,CAAAwC,QAAA,MAAqB;EAAA,IAC3CC,YAAM,OAAAzC,YAAA,CAAAqC,MAAA;EAAA,IACNK,aAAa,OAAA1C,YAAA,CAAAqC,MAAA;EAAA,IACdM,iBAAA,GAAAhB,IAAA,CAAAC,GAAA,IAAAV,OAAA,CAAA0B,yBAAA;EACD,IAAAC,cAAM,GAAYrB,MAAA;IAElBsB,IAAA,EAAM,KAAC;IACPC,MAAM;IACNC,SAAM,EAAAvB,UAAA,SAAgB;EAKtB;IAMAqB,IAAA,EAAM;EACF;EACQ,IACNG,sBAAQ,GAAAzB,MAAA,IAAAK,iBAAA,IAAAc,iBAAA;IAAAI,MACR,EAAAJ,iBAAW;IACbK,SACE,EAAAL;EAQN,QAAM;EAKN,IAAAO,aAAM,GAAA9B,cAAgB,SAAgB,IAAAA,cAAA,uBAAAA,cAAA,CAAA8B,aAAA;EACtC;IAAAC,UAAQ,EAAAC;EAAY,IAAe,IAAAjD,mBAAI,CAAAkD,sBAAA;EACvC,IAAAC,iBAAM,OAAAnD,mBAAoB,CAAAoD,uBAAA,OAAwBH,cAAK,IAAAF,aAAkB;EAGzE,IAAAM,mBAAM,OAAAxD,YAAsB,CAAAqC,MAAA;EAC5B,IAAAoB,aAAM,OAAAzD,YAAgB,CAAAqC,MAAA;EACtB,IAAAqB,uBAAM,OAAA1D,YAA0B,CAAAqC,MAAA;EAEhC,IAAAsB,gBAAM,YAAAA,CAAoBC,IAAe,EAAAC,MAAA,EAAoB;IAC3D,KAAAD,IAAK;MACH,IAAAE,2BAAwB,EAAAC,kBAAoB;MAC5C,IAAAC,KAAA,GAAAH,MAAc,SAAU,IAAAA,MAAA,cAAAA,MAAA,GAAAL,mBAAA,CAAAS,OAAA;MACxBR,aAAA,CAAAQ,OAAa,GAAAD,KAAc;MAC3B1C,YAAU,CAAA4C,WAAS,GAAAF,KAAW;MAChC,CAAAD,kBAAO,GAAA3B,SAAA,CAAA6B,OAAA,cAAAF,kBAAA,wBAAAD,2BAAA,GAAAC,kBAAA,CAAAI,QAAA,cAAAL,2BAAA,uBAAAA,2BAAA,CAAAM,IAAA,CAAAL,kBAAA;QACLM,CAAA;QACAC,CAAA,EAAAN,KAAA;QACFO,QAAA;MACF;IAEA,OAAM;MACJd,aAAU,CAAAQ,OAAS,GAAAT,mBAAsB,CAAAS,OAAU;MACrD3C,YAAA,CAAA4C,WAAA;IAEA;EACE;EACE,IAAAM,aAAA,YAAAA,CAAAF,CAAA;IAAA,IACFR,2BAAA,EAAAC,kBAAA;IACA,CAAAA,kBAAa,GAAA3B,SAAU,CAAA6B,OAAS,cAAkBF,kBAAA,wBAAAD,2BAAA,GAAAC,kBAAA,CAAAI,QAAA,cAAAL,2BAAA,uBAAAA,2BAAA,CAAAM,IAAA,CAAAL,kBAAA;MAClDM,CAAA;MACAC,CAAA;MACEC,QAAA;IAAA,EACF;EAEA;EACA,IAAAE,iCAAyB,GAAAzE,YAAA,CAAAQ,OAAA,CAAAkE,WAAA;IAEzB,IAAAX,kBAAmB;IACnB,KAAAlE,WAAM,CAAAiC,KAAW,IAAK,CAAAN,MAAA,KAAAK,iBAAsB,IAAAH,sBAAA;MAC5C;IACA;IACA,IAAAiD,IAAM,IAAAZ,kBAAsB,GAAA3B,SAAM,CAAA6B,OAAA,cAAAF,kBAAA,uBAAAA,kBAAA,CAAAa,iBAAA;IAClC,IAAAC,MAAM,GAAAC,QAAA,CAAAC,aAAyB;IAC/B,KAAAJ,IAAI,KAAAE,MAAA,IAAgB,GAAK,EAAAvE,kBAAA,CAAA0E,iBAAA,EAAAH,MAAA,MAAAF,IAAA,CAAAM,QAAA,CAAAJ,MAAA;MAEzB;IACE;IAA4D,IAC9DK,cAAW,GAAAvD,IAAW,CAAAC,GAAA,CAAMF,sBAAY,MAAApB,kBAAA,CAAA6E,yBAAA;IACtC,IAAAD,cAAA,IAAiB;IAAqC,IACxDE,UAAA,GAAAP,MAAA,CAAAQ,qBAAA;IAEA,IAAAC,QAAM,GAAAX,IAAA,CAAAU,qBAAgC;IACtC,IAAAE,MAAA;IACA,IAAAC,WAAI,OAAAlF,kBAAkC,CAAAmF,6BAAA,MAAAP,cAAA;IAEtC,IAAAQ,UAAK,GAAAJ,QAAY,CAAAK,GAAA,GAAAJ,MAAA;IACjB,IAAAK,aAAA,GAAAjE,IAAoB,CAAAkE,GAAA,CAAAP,QAAU,CAAAQ,MAAA,EAAAN,WAAA,IAAAD,MAAA;IAC9B,IAAAQ,aAAa,GAAIpB,IAAA,CAAAqB,SAAA;IACjB,IAAAZ,UAAI,CAAAU,MAAA,GAAmBF,aAAA,EAAa;MACtCG,aAAY,IAAApE,IAAA,CAAAsE,IAAA,CAAAb,UAAmB,CAAAU,MAAA,GAAAF,aAAwB;IAEvD,OAAM,IAAAR,UAAA,CAAAO,GAAA,GAAAD,UAA6B;MACjCK,aAAK,IAAApE,IAAA,CAAAsE,IAAS,CAACP,UAAQ,GAAAN,UAAA,CAAAO,GAAA;IACvB;IACA,IAAAO,YAAA,GAAAvE,IAAA,CAAAC,GAAwB,IAAA+C,IAAA,CAAUwB,YAAA,GAAAxB,IAAA,CAAAyB,YAA4B;IAC5DL,aAAA,GAAApE,IAAA,CAAAC,GAAA,IAAAD,IAAA,CAAAkE,GAAA,CAAAK,YAAkC,EAAAH,aAAA;IAClC,IAAAA,aAAA,KAAApB,IAAA,CAAAqB,SAAwB,EAAU;IAAArB,IAAA,CAAAqB,SAChC,GAAAD,aAAA;IAAAvC,mBACF,CAAAS,OAAA,GAAA8B,aAAA;IAAAzE,YACD,CAAAgD,CAAA,GAAAyB,aAAA;IACH,IAAIA,aAAQ,MAAAzE,YAAA,CAAA+E,YAAkC;EAE9C,IACE7E,MAAI,EACJK,iBAAA,EACAH,sBAAO,EACPJ,YAAO,CAEP;EACE,IAAAgF,0BAAqB,GAAAtG,YAAA,CAAAQ,OAAwB,CAAAkE,WAAO;IACpD,KAAA7E,WAAO,CAAAiC,KAAA,KAAAN,MAAoB;IAC3B+E,oBAAO,CAAA7C,uBAAgB,CAAAO,OAAoB;IAAoCP,uBACjF,CAAAO,OAAA,GAAAuC,qBAAA;MACF/B,iCAAY;MAEZf,uBAAA,CAAAO,OAAU,GAAMuC,qBAAA,CAAA/B,iCAAA;IACd;EACA,IACEjD,MAAA,EACAiD,iCAA6B;EAE/B,IAAAzE,YAAO,CAAMyG,SAAA;IACX,IAAAC,sBAAsB;IACtB,KAAA7G,WAAA,CAAaiC,KAAA,KAAAN,MAAA;IACb8E,0BAAa;IAAgBK,MAC/B,CAAAC,gBAAA,YAAAN,0BAAA;IACF,CAAAI,sBAAK,GAAAC,MAAA,CAAAE,cAAA,cAAAH,sBAAA,uBAAAA,sBAAA,CAAAE,gBAAA,WAAAN,0BAAA;IAEL,OAAM;MACJ,IAAIQ,uBAAa;MACfP,oBAAA,CAAA7C,uBAAsC,CAAAO,OAAU;MAClD0C,MAAA,CAAAI,mBAAA,YAAAT,0BAAA;MACF,CAAAQ,uBAAA,GAAAH,MAAA,CAAAE,cAAA,cAAAC,uBAAA,uBAAAA,uBAAA,CAAAC,mBAAA,WAAAT,0BAAA;IAIA;EACE,IACF9E,MAAA,EAEA8E,0BAAA,CACE;EAAoC,EACtC,EAAAtG,YAAI,CAAAyG,SAAoB,EAAC;IAGzBlF,gBAAM;IAA0C,IAC9C,IAAApB,mBAAA,CAAAoD,uBAAA;MACAjC,YAAA,CAAAqC,gBAAA,GAAAA,gBAAA;MACArC,YAAA,CAAAkD,aAAA,GAAAA,aAAA;IAAA;IACA,OACA;MACDjD,gBAAA;MAGDD,YAAM,CAAAqC,gBACJ;MAACrC,YAAA,CAAAkD,aAAA;IAAA;EAAA,MACC;EACE,IAAAwC,gBAAM,GAAS,SAAAA,CAAA,EAAW;IAC1B,IAAAvE,YAAI,CAAAwB,OAAW,IAAAvB,aAAc,CAAAuB,OAAS;MACpC1B,uBAAc,CAAAG,aAAU,CAAAuB,OAAA,GAAAxB,YAAA,CAAAwB,OAAA;IACxB;EACA;EACE,IAAAgD,eAAA,YAAAA,CAAAlE,MAAA,EAA2B;IAAAN,YAC7B,CAAAwB,OAAA,GAAAlB,MAAA;EAAA;EACF,IAAA/C,YACF,CAAAyG,SAAA;IAAAnF,YAEC,CAAAgB,oBAAA,GAAAA,oBAAA;EAAA,IAAAA,oBACA,CACC;EAAC,IAAA4E,YAAA,OAAA7G,iCAAA,CAAA8G,0BAAA;IAAA/E,SAAA;IAC+Bd,YAC9B;IAAQgB,oBACF;IAAAvB,aAAA;IAAA4C;EACR;EAAA,IAAAyD,cAAA,sBAAA1H,kBAAA,CAAA2H,IAAA,EAAAxH,WAAA,CAAAyH,IAAA;IAEJC,QAAA,WAAAA,CAAAC,CAAA;MAIF,IAAIzE,MAAA,GAAApB,IAAA,CAAA8F,KAAqB,CAAAD,CAAA,CAAAE,WAAA,CAAAC,MAAkB,CAAA5E,MAAA;MACzC,IAAAA,MAAM,KAAAL,aAAgB,CAAAuB,OAAA;QACtBvB,aACE,CAAAuB,OAAA,GAAAlB,MAAA;QAACiE,gBAAA;QAAA,IAAAtF,sBAAA;UACC4E,0BAAK;QAAiC;MAC/B;IACc;IACrBzF,QACA,GAAoCA,QACpC,EACEa,sBAAgB,QAAK,eAAmB,IAAAhC,kBAAc,CAAAkI,GAAA,EAAA/H,WAAA,CAAAyH,IAAA;MACtD,gCAAiB;MAAAvE,MACnB,EAAArB,sBAAA;MAAAmG,KACA;IACE;EAGA;EACE,IAAAvE,iBAAI,IAAMF,cAAa,IAAAF,aAAa;IAClC,IAAA4E,aAAA,GAAA1E,cAAmB;IAAW,sBACzB,IAAA1D,kBAAA,CAAAkI,GAAA,EAAAE,aAAA;MAAAnH,GAAA,MAAAf,mBACa,CAAAmI,WAAA,EAAA3F,SAAA,EAAAzB,GAAA;MAAAqH,KAAA,EAAAnF,cAChB;MAAUoF,mBACX;MAAAlH,aACH;MACAmH,oBAAA,EAAa,CACbhF,aAAA,CAAW;MACNqE,QAAA,EACH,SAAAA,CAAAC,CAAA;QAAaP,eACN,CAAAtF,IAAA,CAAAsE,IAAA,CAAAuB,CAAA,CAAAE,WAAA,CAAAC,MAAA,CAAA5E,MAAA;QAAAiE,gBACL;MAAe;MACIlG,QAAA,WAAAA,CACd0G,CAAA;QAAa;UAAAlD;QAAA,IAClBkD,CAAA,CAAAE,WAAA,CAAAS,aAAA;QAAA3E,mBACF,CAAAS,OAAA,GAAAK,CAAA;QAAA,IAAAhD,YACD,CAAA4C,WAAA;UACD,IAAAI,CAAA,KAAAhD,YAAA,CAAA4C,WAAA;YACF,IAAAJ,2BAAA,EAAAC,kBAAA;YAEA,CAAAA,kBAAiB,GAAA3B,SAAA,CAAA6B,OAAA,cAAAF,kBAAA,wBAAAD,2BAAA,GAAAC,kBAAA,CAAAI,QAAA,cAAAL,2BAAA,uBAAAA,2BAAA,CAAAM,IAAA,CAAAL,kBAAA;cACjBM,CAAA,EAAI;cACJC,CAAA,EAAAhD,YAAY,CAAA4C,WAAA;cACdK,QAAA;YACA;UACA;UACAjD,YAAA,CAAAgD,CAAA,GAAAhD,YAA0B,CAAA4C,WAAA;UAC1BpD,QAAA,aAAoBA,QAAA,uBAAAA,QAAA;YACnB,GAAG0G,CAAA;YACHE,WAAG;cAEH,GAAAF,CAAA,CAAAE,WAAA;cAAAS,aAAA;gBACH,GAAAX,CAAA,CAAAE,WAAA,CAAAS,aAAA;gBAEJ7D,CAAA,EAAAhD,YAAA,CAAA4C;cAIE;YAAC;UAAA;UACC;QACE;QACA5C,YAAA,CAAAgD,CAAA,GAAAA,CAAA;QACF,IAAAA,CAAA,MAAAhD,YAAA,CAAA+E,YAAA;QACAvF,QAAA,KAAK,QAAAA,QAAA,cAAY,SAAAA,QAAqB,CAAA0G,CAAA;MAAA;MAClCY,qBACJ,EAAqB;QACrBC,SAAA,EAAU;MAAA;MACVC,OACA,OAAW;MACTC,yBAAgB,UAAY;MAC5BC,mBAAA,QAAoB;MACpB,GAAAvH,KAAA;MACA,GAAAgC,sBAAW;MACXpC,QAAA,EAAAuG;IAAY;EACd;EAC2C,OAC1C,eAAG,IAAA1H,kBAAA,CAAAkI,GAAA,EAAA9H,kBAAA,CAAAqD,UAAA;IAAAoE,QACA,WAAAA,CAAAC,CAAA;MAAAP,eACA,CAAAtF,IAAA,CAAAsE,IAAA,CAAAuB,CAAA,CAAAE,WAAA,CAAAC,MAAA,CAAA5E,MAAA;MAAAiE,gBAEH;IAAA;IACHrG,GAAA,MAAAf,mBAAA,CAAAmI,WAAA,EAAA3F,SAAA,EAAAzB,GAAA;IAEJ,GAAAkC,cAAA;IACFoF,mBAAA","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","contentContainerStyle","minHeight","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","emitManualScroll","useCallback","node","scrollStartY","nativeEvent","contentOffset","scrollLeft","contentSize","scrollHeight","width","scrollWidth","layoutMeasurement","offsetHeight","offsetWidth","timeStamp","Date","now","scrollFocusedInputClearOfKeyboard","getScrollableNode","active","document","activeElement","isEditableElement","contains","keyboardHeight","getWebKeyboardBottomInset","activeRect","getBoundingClientRect","nodeRect","margin","keyboardTop","getStableLayoutViewportHeight","visibleTop","top","visibleBottom","min","bottom","nextScrollTop","scrollTop","ceil","maxScrollTop","clientHeight","scheduleFocusedInputScroll","cancelAnimationFrame","requestAnimationFrame","useEffect","_window_visualViewport","window","addEventListener","visualViewport","_window_visualViewport2","removeEventListener","updateScrollable","recordFitHeight","gestureProps","useSheetScrollViewGestures","onManualScroll","contentWrapper","jsxs","View","onLayout","e","floor","layout","jsx","RNGHComponent","composeRefs","style","scrollEventThrottle","simultaneousHandlers","bounces","keyboardShouldPersistTaps","keyboardDismissMode"],"sources":["../../src/SheetScrollView.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,uBAAA;AAAAC,QAAA,CAAAD,uBAAA;EAAAE,eAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAA4B,CAAAK,uBAAA;AAC5B,IAAAK,kBAAyC,GAAAC,OAAA;AAEzC,IAAAC,mBAAA,GAA2BD,OAAA;AAC3B,IAAAE,WAAA,GAAAF,OAAA,gBAAqC;AACrC,IAAAG,kBAAmD,GAAAH,OAAA;AAEnD,IAAAI,6BAAuC,GAAAJ,OAAA;AACvC,IAAAK,YAAA,GAAAC,OAAgE,CAAAN,OAAA;AAChE,IAAAO,0BAAgC,GAAAP,OAAA;AAEhC,IAAAQ,mBAAA,GAAAR,OAAA,2BAA2C;AAC3C,IAAAS,mBAAA,GAMOT,OAAA;AA4OD,IAAAU,iCAAA,GAAAV,OAAA;AA1ON,IAAAW,kBAAM,GAAAX,OAAyB;AAExB,IAAAY,sBAAwB,oBAAM;AAAA,IAKjChB,eAAA,kBAAAS,YAAA,CAAAQ,OAAA,CAAAC,UAAA,WAAAC,KAAA,EAAAC,GAAA;EAAA,IACE;IAAAC,YAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,aAAA,EAAAC,iBAAA;IAAA,GAAAC;EAAA,IAAAP,KAAA;EAAA,IACAQ,OAAA,OAAAd,mBAAA,CAAAe,eAAA,EAAAZ,sBAAA,EAAAK,YAAA;EAAA,IACAQ,cAAA,OAAAlB,0BAAA,CAAAmB,sBAAA;EAAA,IACA;IAAAC,YAAe;IAAAC,gBAAA;IAAAC,MAAA;IAAAC;EAAA,IAAAP,OAAA;EAAA,IACfQ,sBAAG,GAAAC,IAAA,CAAAC,GAAA,IAAAV,OAAA,CAAAQ,sBAAA;EACL,IACAG,iBACG,GAAAX,OAAA,CAAAW,iBAAA,aAAAhC,WAAA,CAAAiC,KAAA,QAAAxB,kBAAA,CAAAyB,0BAAA,OAAAzB,kBAAA,CAAA0B,mBAAA;EACH,KAAAjB,aAAM,IAAU,IAAAhB,6BAAA,CAAAkC,oBAAgB;IAChCC,IAAA,EAAMlB,iBAAA;IACNmB,WAAQ;EACR;EAMA,IAAAC,SAAM,GAAApC,YACJ,CAAAQ,OAAQ,CAAA6B,MAAA;EAEV,KAAAC,oBAAoB,EAAAC,uBAAI,QAAAvC,YAAA,CAAAwC,QAAA,MAAqB;EAAA,IAC3CC,YAAM,OAAAzC,YAAA,CAAAqC,MAAA;EAAA,IACNK,aAAa,OAAA1C,YAAA,CAAAqC,MAAA;EAAA,IACdM,iBAAA,GAAAhB,IAAA,CAAAC,GAAA,IAAAV,OAAA,CAAA0B,yBAAA;EACD,IAAAC,cAAM,GAAYrB,MAAA;IAElBsB,IAAA,EAAM,KAAC;IACPC,MAAM;IACNC,SAAM,EAAAvB,UAAA,SAAgB;EAKtB;IAMAqB,IAAA,EAAM;EACF;EACQ,IACNG,qBAAQ,GAAAzB,MAAA;IAAA0B,SACR;EAAyB;EAG/B,IAAAC,sBAAM,GAAA3B,MAAwB,IAAAK,iBAAuB,IAAAc,iBAA2B;IAQhFI,MAAM,EAAAJ,iBAAA;IAKNK,SAAM,EAAAL;EACN,QAAM;EACN,IAAAS,aAAM,GAAAhC,cAAoB,aAAAA,cAAA,mBAAwB,IAAKA,cAAA,CAAAgC,aAAkB;EAGzE;IAAAC,UAAM,EAAAC;EAAA,CAAsB,OAAAnD,mBAAQ,CAAAoD,sBAAA;EACpC,IAAAC,iBAAM,OAAArD,mBAA0B,CAAAsD,uBAAQ,OAAAH,cAAA,IAAAF,aAAA;EACxC,IAAAM,mBAAM,KAAgB,EAAA1D,YAAA,CAAAqC,MAAO,EAAC;EAC9B,IAAAsB,uBAAM,OAAA3D,YAA0B,CAAAqC,MAAA;EAEhC,IAAAuB,aAAM,OAAA5D,YAAmC,CAAAqC,MAAA,EAAoB;EAC3D,IAAAwB,uBAAW,OAAA7D,YAAA,CAAAqC,MAAA;EACT,IAAAyB,gBAAc,YAAAA,CAAUC,IAAA,EAAAC,MAAa;IACrC,KAAAD,IAAI;MACF,IAAAE,IAAA;MAAA,IACFC,KAAA,IAAAD,IAAA,GAAAD,MAAA,aAAAA,MAAA,cAAAA,MAAA,GAAA1C,YAAA,CAAA6C,WAAA,cAAAF,IAAA,cAAAA,IAAA,GAAAP,mBAAA,CAAAU,OAAA;MACA,IAAA9C,YAAa,CAAA+C,OAAA,KAAU,SAAA/C,YAAA,CAAA6C,WAAA,KAAAD,KAAA;QACvB;MACA;MACA5C,YAAI,CAAA+C,OAAA,QAAoB;MACtBT,aAAA,CAAUQ,OAAA,GAASF,KAAA;MACnB5C,YAAA,CAAA6C,WAAoB,GAAAD,KAAA;MAAU,IAChCR,mBAAA,CAAAU,OAAA,KAAAF,KAAA;QACF,IAAAI,2BAAO,EAAAC,kBAAA;QACL,CAAAA,kBAAiB,GAAAnC,SAAY,CAAAgC,OAAQ,cAAaG,kBAAgB,KAAW,mBAAAD,2BAAA,GAAAC,kBAAA,CAAAC,QAAA,cAAAF,2BAAA,uBAAAA,2BAAA,CAAAG,IAAA,CAAAF,kBAAA;UAC3EG,CAAA;UACFC,CAAA,EAAAT,KAAA;UACAU,QAAA;QACA;QACAlB,mBAAa,CAAAU,OAAc,GAAAF,KAAA;MAC7B;IACF;MAEA,IAAM5C,YAAA,CAAA+C,OAAiB,KAAc,QAAA/C,YAAA,CAAA6C,WAAA;QACnC;MACA;MACF7C,YAAA,CAAA+C,OAAA;MAEAT,aAAM,CAAAQ,OAAA,GAAmBV,mBAAA,CAAMU,OAAA;MAC7B9C,YAAoB,CAAc6C,WAAA;IAChC;EACA;EACA,IAAAU,aAAW,YAAAA,CAAAF,CAAa;IACxB,IAAAL,2BAAwB,EAAAC,kBAAU;IAClC,CAAAA,kBAAW,GAAAnC,SAAA,CAAAgC,OAAA,cAAAG,kBAAA,wBAAAD,2BAAA,GAAAC,kBAAA,CAAAC,QAAA,cAAAF,2BAAA,uBAAAA,2BAAA,CAAAG,IAAA,CAAAF,kBAAA;MAAAG,CAAA,GACT;MAAaC,CAAA;MACIC,QACb;IAAQ;IACRlB,mBACF,CAAAU,OAAA,GAAAO,CAAA;EAAA;EACa,IAAAG,gBACH,GAAA9E,YAAK,CAAAQ,OAAA,CAAAuE,WAAA,WAAAC,IAAA,EAAAL,CAAA;IAAAjB,mBACN,CAAAU,OAAK,GAAAO,CAAA;IAAArD,YACd,CAAAqD,CAAA,GAAAA,CAAA;IAAA,IAAAA,CAAA,GACA,GAAArD,YAAA,CAAA2D,YAAmB;IAAAtB,uBACJ,CAAAS,OAAA,GAAAO,CAAA;IAAA7D,QAAA,KACb,IAAO,IAAAA,QAAK,uBAAAA,QAAA;MAAAoE,WACd;QAAAC,aACF;UACAT,CAAA,EAAAM,IAAA,CAAAI,UAAgB;UACVT;QACV;QACCU,WAAU;UACbtC,MAAA,EAAAiC,IAAA,CAAAM,YAAA;UAEMC,KAAA,EAAAP,IAAA,CAAAQ;QACJ;QACEC,iBAAA;UACF1C,MAAA,EAAAiC,IAAA,CAAAU,YAAA;UACAH,KAAM,EAAAP,IAAO,CAAAW;QACb;MACA;MACEC,SAAA,EAAAC,IAAA,CAAAC,GAAA;IAAA,EACF;EAEA,IACAhF,QAAI,EAEJQ,YAAM,CACN;EACA,IAAAyE,iCAAe,GAAA/F,YAAA,CAAAQ,OAAA,CAAAuE,WAAA;IACf,IAAAR,kBAAM;IACN,KAAA1E,WAAM,CAAAiC,KAAa,KAAAN,MAAS,IAAM,CAAAK,iBAAA,IAAAH,sBAAA;MAClC;IACA;IAEA,IAAAsD,IAAI,IAAAT,kBAAoB,GAAAnC,SAAe,CAAAgC,OAAA,cAAAG,kBAAA,uBAAAA,kBAAA,CAAAyB,iBAAA;IACrC,IAAAC,MAAA,GAAAC,QAAiB,CAAAC,aAAU;IAAiC,IAC9D,CAAAnB,IAAA,IAAW,CAAAiB,MAAA,IAAW,KAAA3F,kBAAkB,CAAA8F,iBAAA,EAAAH,MAAA,MAAAjB,IAAA,CAAAqB,QAAA,CAAAJ,MAAA;MACtC;IAAsD;IAGxD,IAAAK,cAAM,GAAA3E,IAAe,CAAAC,GAAK,CAAAF,sBAAY,GAAe,GAAApB,kBAAiB,CAAAiG,yBAAA;IACtE,IAAAD,cAAgB,KAAK;IACrB,IAAAE,UAAI,GAAAP,MAAA,CAAkBQ,qBAAgB;IAEtC,IAAAC,QAAK,GAAA1B,IAAY,CAAAyB,qBAAA;IACjB,IAAAE,MAAA;IACA,IAAAC,WAAa,IAAI,GAAAtG,kBAAA,CAAAuG,6BAAA,MAAAP,cAAA;IACjB,IAAAQ,UAAI,GAAAJ,QAAmB,CAAAK,GAAA,GAAAJ,MAAa;IACtC,IAAIK,aAAQ,GAAArF,IAAA,CAAAsF,GAAA,CAAAP,QAAmB,CAAAQ,MAAA,EAAAN,WAAwB,IAAAD,MAAY;IAEnE,IAAAQ,aAAM,GAAAnC,IAAA,CAAAoC,SAAA;IACJ,IAAAZ,UAAK,CAAAU,MAAA,GAAAF,aAAkB;MACvBG,aAAA,IAAAxF,IAAqB,CAAA0F,IAAA,CAAAb,UAAA,CAAAU,MAAA,GAAwBF,aAAO;IACpD,WAAAR,UAAA,CAAAO,GAAA,GAAwBD,UAAU;MAChCK,aAAA,IAAAxF,IAAA,CAAA0F,IAAA,CAAAP,UAAkC,GAAAN,UAAA,CAAAO,GAAA;IAClC;IAAkC,IAAAO,YAChC,GAAA3F,IAAA,CAAAC,GAAA,IAAAoD,IAAA,CAAAM,YAAA,GAAAN,IAAA,CAAAuC,YAAA;IAAAJ,aACF,GAAAxF,IAAA,CAAAC,GAAA,IAAAD,IAAA,CAAAsF,GAAA,CAAAK,YAAA,EAAAH,aAAA;IAAA,IACDA,aAAA,KAAAnC,IAAA,CAAAoC,SAAA;IACHpC,IAAI,CAAAoC,SAAQ,GAAAD,aAAA;IAEZzD,mBAAA,CAAAU,OAAA,GAAU+C,aAAM;IACd7F,YAAK,CAAAqD,CAAA,GAAAwC,aAAU;IACf,IAAAA,aAAA,MAAA7F,YAA2B,CAAA2D,YAAA;EAC3B,IACAzD,MAAA,EAEAK,iBAAa,EACXH,sBAAA,EACAJ,YAAO,CACP;EAA+E,IACjFkG,0BAAA,GAAAxH,YAAA,CAAAQ,OAAA,CAAAuE,WAAA;IACF,IAAI,CAAAlF,WAAQ,CAAAiC,KAAA,KAAAN,MAAA;IAEZiG,oBAAA,CAAA5D,uBAAgB,CAAAO,OAAA;IACdP,uBAAqB,CAAAO,OAAA,GAAAsD,qBAAA;MACrB3B,iCAAI;MACFlC,uBAAa,CAAAO,OAAA,GAAmBsD,qBAAA,CAAA3B,iCAAA;IAChC;EAA6B,IAE/BvE,MAAA,EACEuE,iCAAsB,CACtB;EACA,IAAA/F,YAAA,CAAA2H,SAAa,cAAgB;IAAA,IAC/BC,sBAAA;IACF,IAAI,CAAC/H,WAAA,CAAAiC,KAAA,KAAAN,MAAA;IAELgG,0BAAyB;IACvBK,MAAI,CAAAC,gBAAa,UAAW,EAAAN,0BAAuB;IACjD,CAAAI,sBAAA,GAAAC,MAAwB,CAAAE,cAAc,MAAU,QAAAH,sBAAoB,uBAAAA,sBAAA,CAAAE,gBAAA,WAAAN,0BAAA;IAAA,OACtE;MACF,IAAAQ,uBAAA;MAIAP,oBAAM,CAAA5D,uBAAsC,CAAAO,OAAA;MAC1CyD,MAAA,CAAAI,mBAAuB,YAAAT,0BAAA;MACzB,CAAAQ,uBAAA,GAAAH,MAAA,CAAAE,cAAA,cAAAC,uBAAA,uBAAAA,uBAAA,CAAAC,mBAAA,WAAAT,0BAAA;IAEA;EACE,IACFhG,MAAI,EAGJgG,0BAAqB,CAA2B;EAC9C,IACAxH,YAAA,CAAA2H,SAAA;IAAApG,gBACA;IAAA,IACA,IAAApB,mBAAA,CAAAsD,uBAAA;MACAnC,YAAA,CAAAwC,gBAAA,GAAAA,gBAAA;MACAxC,YAAA,CAAAuD,aAAgB,GAAAA,aAAA;IAClB;IAGA,OAAM;MACHtD,gBAAA;MAAAD,YAAA,CAAAwC,gBAAA;MAAAxC,YACW,CAACuD,aAAM;IACf;EACA;EACE,IAAAqD,gBAAA,YAAAA,CAAA,EAAwB;IACxB,IAAAzF,YAAA,CAAA2B,OAAA,IAAiB1B,aAAA,CAAA0B,OAAA;MACjB7B,uBAAI,CAAAG,aAAyB,CAAG0B,OAAA,GAAA3B,YAAA,CAAA2B,OAAA;IAC9B;EAA2B;EAC7B,IAAA+D,eACF,YAAAA,CAAApF,MAAA;IAAAN,YACF,CAAA2B,OAAA,GAAArB,MAAA;EAAA;EAEC,IAAA/C,YAAA,CAAA2H,SAAA;IAAArG,YACA,CAAAgB,oBAAyB,GACxBA,oBAAA;EAAA,IAACA,oBAAA;EAC+B,IAAA8F,YAC9B,IAAQ,GAAA/H,iCAAA,CAAAgI,0BAAA;IAAAjG,SAAA;IACFd,YAAA;IAAAgB,oBACR;IAAAvB,aAAA;IAAA+C,gBAAA;IAEJwE,cAAA,EAAAxD;EAIF;EACE,IAAAyD,cAAM,kBAAgB,IAAA7I,kBAAA,CAAA8I,IAAA,EAAA3I,WAAA,CAAA4I,IAAA;IACtBC,QAAA,EACE,SAAAA,CAAAC,CAAA;MAAA,IAAC5F,MAAA,GAAApB,IAAA,CAAAiH,KAAA,CAAAD,CAAA,CAAAzD,WAAA,CAAA2D,MAAA,CAAA9F,MAAA;MAAA,IAAAA,MAAA,KAAAL,aAAA,CAAA0B,OAAA;QAAA1B,aACM,CAAA0B,OAAA,GAAArB,MAAA;QAAiCmF,gBAC/B;QAAA,IACPxG,sBAAqB;UACrB8F,0BAAA;QAAA;MACoC;IAElC;IACA3G,QAAA,GAAiBA,QACnB,EAAAa,sBACsB,2BAAAhC,kBAAA,CAAAoJ,GAAA,EAAAjJ,WAAA,CAAA4I,IAAA;MACpB,gCAA4B;MAC5B1F,MAAA,EAAArB,sBAAoB;MAEpB6D,KAAA;IACE;EACgC;EACzB,IAAA/B,iBACA,IAAAF,cAAa,IAAAF,aAAA;IAAA,IAAA2F,aAChB,GAAAzF,cAAU;IAAA,sBACX,IAAA5D,kBAAA,CAAAoJ,GAAA,EAAAC,aAAA;MAAApI,GAAA,MACHf,mBAAA,CAAAoJ,WAAA,EAAA5G,SAAA,EAAAzB,GAAA;MACAsI,KAAA,EAAApG,cAAA;MACAqG,mBAAA,EAAa;MACbnI,aAAI;MACFoI,oBAAA,GACA/F,aAAA,CAAW;MACNsF,QAAA,WAAAA,CACHC,CAAA;QAAaR,eACR,CAAAxG,IAAE,CAAA0F,IAAA,CAAAsB,CAAA,CAAAzD,WAAA,CAAA2D,MAAA,CAAA9F,MAAA;QAAAmF,gBACL;MAAe;MACIpH,QAAA,WAAAA,CACd6H,CAAA;QAAa;UAAAhE;QAAA,IAClBgE,CAAA,CAAAzD,WAAA,CAAAC,aAAA;QAAAzB,mBACF,CAAAU,OAAA,GAAAO,CAAA;QAAA,IAAArD,YACD,CAAA6C,WAAA;UAAA,IACHQ,CAAA,KAAArD,YAAA,CAAA6C,WAAA;YACA,IAAAG,2BAAA,EAAAC,kBAAA;YACF,CAAAA,kBAAA,GAAAnC,SAAA,CAAAgC,OAAA,cAAAG,kBAAA,wBAAAD,2BAAA,GAAAC,kBAAA,CAAAC,QAAA,cAAAF,2BAAA,uBAAAA,2BAAA,CAAAG,IAAA,CAAAF,kBAAA;cAEAG,CAAA;cACAC,CAAA,EAAIrD,YAAO,CAAA6C,WAAa;cACxBS,QAAA;YACA;UACF;UACAlB,mBAAA,CAAAU,OAAA,GAAA9C,YAAA,CAAA6C,WAAA;UACA7C,YAAS,CAAAqD,CAAA,GAAArD,YAAA,CAAA6C,WAAA;UACT,IAAAR,uBAA0B,CAAAS,OAAA,KAAA9C,YAAA,CAAA6C,WAAA;YAC1BR,uBAAoB,CAAAS,OAAA,GAAA9C,YAAA,CAAA6C,WAAA;YACnBrD,QAAG,aAAAA,QAAA,uBAAAA,QAAA;cACA,GAAA6H,CAAA;cAEHzD,WAAA;gBAAA,GAAAyD,CAAA,CAAAzD,WAAA;gBACHC,aAAA;kBAEJ,GAAAwD,CAAA,CAAAzD,WAAA,CAAAC,aAAA;kBAIER,CAAA,EAAArD,YAAA,CAAA6C;gBAAC;cAAA;YACC;UACE;UACA;QACF;QACA7C,YAAK,CAAAqD,CAAA,GAAAA,CAAA;QACJ,IAAGA,CAAA,MAAArD,YAAA,CAAA2D,YAAA;QACJtB,uBAAqB,CAAAS,OAAA,GAAAO,CAAA;QACrB7D,QAAA,KAAU,QAAAA,QAAA,uBAAAA,QAAA,CAAA6H,CAAA;MAAA;MACV1F,qBACiB;MACfmG,OAAA,OAAU;MACVC,yBAAoB,UAAU;MAC9BC,mBAAa,EAAI;MACjB,GAAArI,KAAI;MACJ,GAAAkC,sBAAA;MACAtC,QAAA,EAAA0H;IAAY;EACd;EACA,OACC,eAAG,IAAA7I,kBAAA,CAAAoJ,GAAA,EAAAhJ,kBAAA,CAAAuD,UAAA;IAAAqF,QACA,WAAAA,CAAAC,CAAA;MAAAR,eACA,CAAAxG,IAAA,CAAA0F,IAAA,CAAAsB,CAAA,CAAAzD,WAAA,CAAA2D,MAAA,CAAA9F,MAAA;MAAAmF,gBAEH;IAAA;IACHvH,GAAA,MAAAf,mBAAA,CAAAoJ,WAAA,EAAA5G,SAAA,EAAAzB,GAAA;IAEJ,GAAAkC,cAAA;IACFqG,mBAAA","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.
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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","
|
|
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
|
-
|
|
137
|
+
setScrollTop(newScrollY);
|
|
128
138
|
scrollBridge.y = newScrollY;
|
|
129
139
|
if (newScrollY > 0) scrollBridge.scrollStartY = -1;
|
|
130
140
|
}
|