@hanzogui/sheet 7.3.0 → 8.0.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 +2 -0
- package/controller/index.cjs +2 -0
- package/controller/index.d.ts +5 -0
- package/controller/index.js +2 -0
- package/controller/index.native.cjs +2 -0
- package/controller/index.native.js +2 -0
- package/dist/cjs/GestureDetectorWrapper.native.js.map +1 -1
- package/dist/cjs/SheetImplementationCustom.cjs +137 -74
- package/dist/cjs/SheetImplementationCustom.native.js +162 -83
- package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
- package/dist/cjs/SheetScrollView.cjs +155 -34
- package/dist/cjs/SheetScrollView.native.js +160 -35
- package/dist/cjs/SheetScrollView.native.js.map +1 -1
- package/dist/cjs/createSheet.cjs +7 -3
- package/dist/cjs/createSheet.native.js +7 -3
- package/dist/cjs/createSheet.native.js.map +1 -1
- package/dist/cjs/gestureState.cjs +13 -2
- package/dist/cjs/gestureState.native.js +14 -2
- package/dist/cjs/gestureState.native.js.map +1 -1
- package/dist/cjs/index.cjs +12 -1
- package/dist/cjs/index.native.js +11 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/keyboardAvoidance.cjs +93 -0
- package/dist/cjs/keyboardAvoidance.native.js +99 -0
- package/dist/cjs/keyboardAvoidance.native.js.map +1 -0
- package/dist/cjs/nativeSheet.cjs +3 -0
- package/dist/cjs/nativeSheet.native.js +3 -0
- package/dist/cjs/nativeSheet.native.js.map +1 -1
- package/dist/cjs/setupGestureHandler.cjs +9 -6
- package/dist/cjs/setupGestureHandler.native.js +11 -6
- package/dist/cjs/setupGestureHandler.native.js.map +1 -1
- package/dist/cjs/useGestureHandlerPan.cjs +86 -18
- package/dist/cjs/useGestureHandlerPan.native.js +91 -18
- package/dist/cjs/useGestureHandlerPan.native.js.map +1 -1
- package/dist/cjs/useKeyboardControllerSheet.cjs +68 -6
- package/dist/cjs/useSafeAreaInsets.cjs +44 -0
- package/dist/cjs/useSafeAreaInsets.native.js +48 -0
- package/dist/cjs/useSafeAreaInsets.native.js.map +1 -0
- package/dist/cjs/useSheetProviderProps.cjs +1 -1
- package/dist/cjs/useSheetProviderProps.native.js +1 -1
- package/dist/cjs/useSheetProviderProps.native.js.map +1 -1
- package/dist/cjs/useSheetScrollViewGestures.cjs +30 -5
- package/dist/cjs/useSheetScrollViewGestures.native.js +4 -0
- package/dist/cjs/useSheetScrollViewGestures.native.js.map +1 -1
- package/dist/cjs/webViewport.cjs +75 -0
- package/dist/cjs/webViewport.native.js +81 -0
- package/dist/cjs/webViewport.native.js.map +1 -0
- package/dist/esm/GestureDetectorWrapper.mjs.map +1 -1
- package/dist/esm/GestureDetectorWrapper.native.js.map +1 -1
- package/dist/esm/SheetImplementationCustom.mjs +143 -84
- package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
- package/dist/esm/SheetImplementationCustom.native.js +173 -102
- package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
- package/dist/esm/SheetScrollView.mjs +157 -36
- package/dist/esm/SheetScrollView.mjs.map +1 -1
- package/dist/esm/SheetScrollView.native.js +162 -37
- package/dist/esm/SheetScrollView.native.js.map +1 -1
- package/dist/esm/createSheet.mjs +9 -6
- package/dist/esm/createSheet.mjs.map +1 -1
- package/dist/esm/createSheet.native.js +19 -15
- package/dist/esm/createSheet.native.js.map +1 -1
- package/dist/esm/gestureState.mjs +13 -2
- package/dist/esm/gestureState.mjs.map +1 -1
- package/dist/esm/gestureState.native.js +14 -2
- package/dist/esm/gestureState.native.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -0
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/keyboardAvoidance.mjs +66 -0
- package/dist/esm/keyboardAvoidance.mjs.map +1 -0
- package/dist/esm/keyboardAvoidance.native.js +69 -0
- package/dist/esm/keyboardAvoidance.native.js.map +1 -0
- package/dist/esm/nativeSheet.mjs +3 -0
- package/dist/esm/nativeSheet.mjs.map +1 -1
- package/dist/esm/nativeSheet.native.js +3 -0
- package/dist/esm/nativeSheet.native.js.map +1 -1
- package/dist/esm/setupGestureHandler.mjs +9 -6
- package/dist/esm/setupGestureHandler.mjs.map +1 -1
- package/dist/esm/setupGestureHandler.native.js +11 -6
- package/dist/esm/setupGestureHandler.native.js.map +1 -1
- package/dist/esm/useGestureHandlerPan.mjs +87 -19
- package/dist/esm/useGestureHandlerPan.mjs.map +1 -1
- package/dist/esm/useGestureHandlerPan.native.js +92 -19
- package/dist/esm/useGestureHandlerPan.native.js.map +1 -1
- package/dist/esm/useKeyboardControllerSheet.mjs +69 -7
- package/dist/esm/useKeyboardControllerSheet.mjs.map +1 -1
- package/dist/esm/useSafeAreaInsets.mjs +7 -0
- package/dist/esm/useSafeAreaInsets.mjs.map +1 -0
- package/dist/esm/useSafeAreaInsets.native.js +8 -0
- package/dist/esm/useSafeAreaInsets.native.js.map +1 -0
- package/dist/esm/useSheetProviderProps.mjs +1 -1
- package/dist/esm/useSheetProviderProps.mjs.map +1 -1
- package/dist/esm/useSheetProviderProps.native.js +1 -1
- package/dist/esm/useSheetProviderProps.native.js.map +1 -1
- package/dist/esm/useSheetScrollViewGestures.mjs +30 -5
- package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -1
- package/dist/esm/useSheetScrollViewGestures.native.js +4 -0
- package/dist/esm/useSheetScrollViewGestures.native.js.map +1 -1
- package/dist/esm/webViewport.mjs +43 -0
- package/dist/esm/webViewport.mjs.map +1 -0
- package/dist/esm/webViewport.native.js +46 -0
- package/dist/esm/webViewport.native.js.map +1 -0
- package/dist/jsx/GestureDetectorWrapper.mjs.map +1 -1
- package/dist/jsx/GestureDetectorWrapper.native.js.map +1 -1
- package/dist/jsx/SheetImplementationCustom.mjs +143 -84
- package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
- package/dist/jsx/SheetImplementationCustom.native.js +162 -83
- package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
- package/dist/jsx/SheetScrollView.mjs +157 -36
- package/dist/jsx/SheetScrollView.mjs.map +1 -1
- package/dist/jsx/SheetScrollView.native.js +160 -35
- package/dist/jsx/SheetScrollView.native.js.map +1 -1
- package/dist/jsx/createSheet.mjs +9 -6
- package/dist/jsx/createSheet.mjs.map +1 -1
- package/dist/jsx/createSheet.native.js +7 -3
- package/dist/jsx/createSheet.native.js.map +1 -1
- package/dist/jsx/gestureState.mjs +13 -2
- package/dist/jsx/gestureState.mjs.map +1 -1
- package/dist/jsx/gestureState.native.js +14 -2
- package/dist/jsx/gestureState.native.js.map +1 -1
- package/dist/jsx/index.js +2 -0
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -0
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +11 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/keyboardAvoidance.mjs +66 -0
- package/dist/jsx/keyboardAvoidance.mjs.map +1 -0
- package/dist/jsx/keyboardAvoidance.native.js +99 -0
- package/dist/jsx/keyboardAvoidance.native.js.map +1 -0
- package/dist/jsx/nativeSheet.mjs +3 -0
- package/dist/jsx/nativeSheet.mjs.map +1 -1
- package/dist/jsx/nativeSheet.native.js +3 -0
- package/dist/jsx/nativeSheet.native.js.map +1 -1
- package/dist/jsx/setupGestureHandler.mjs +9 -6
- package/dist/jsx/setupGestureHandler.mjs.map +1 -1
- package/dist/jsx/setupGestureHandler.native.js +11 -6
- package/dist/jsx/setupGestureHandler.native.js.map +1 -1
- package/dist/jsx/useGestureHandlerPan.mjs +87 -19
- package/dist/jsx/useGestureHandlerPan.mjs.map +1 -1
- package/dist/jsx/useGestureHandlerPan.native.js +91 -18
- package/dist/jsx/useGestureHandlerPan.native.js.map +1 -1
- package/dist/jsx/useKeyboardControllerSheet.mjs +69 -7
- package/dist/jsx/useKeyboardControllerSheet.mjs.map +1 -1
- package/dist/jsx/useSafeAreaInsets.mjs +7 -0
- package/dist/jsx/useSafeAreaInsets.mjs.map +1 -0
- package/dist/jsx/useSafeAreaInsets.native.js +48 -0
- package/dist/jsx/useSafeAreaInsets.native.js.map +1 -0
- package/dist/jsx/useSheetProviderProps.mjs +1 -1
- package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
- package/dist/jsx/useSheetProviderProps.native.js +1 -1
- package/dist/jsx/useSheetProviderProps.native.js.map +1 -1
- package/dist/jsx/useSheetScrollViewGestures.mjs +30 -5
- package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -1
- package/dist/jsx/useSheetScrollViewGestures.native.js +4 -0
- package/dist/jsx/useSheetScrollViewGestures.native.js.map +1 -1
- package/dist/jsx/webViewport.mjs +43 -0
- package/dist/jsx/webViewport.mjs.map +1 -0
- package/dist/jsx/webViewport.native.js +81 -0
- package/dist/jsx/webViewport.native.js.map +1 -0
- package/next.md +78 -0
- package/package.json +30 -48
- package/setup-gesture-handler/index.cjs +2 -0
- package/setup-gesture-handler/index.js +2 -0
- package/setup-gesture-handler/index.native.cjs +2 -0
- package/setup-gesture-handler/index.native.js +2 -0
- package/src/GestureDetectorWrapper.tsx +0 -3
- package/src/SheetImplementationCustom.tsx +387 -127
- package/src/SheetScrollView.tsx +195 -22
- package/src/createSheet.tsx +20 -7
- package/src/gestureState.ts +22 -2
- package/src/index.ts +4 -0
- package/src/keyboardAvoidance.ts +121 -0
- package/src/nativeSheet.tsx +8 -1
- package/src/setupGestureHandler.ts +14 -5
- package/src/types.tsx +20 -1
- package/src/useGestureHandlerPan.tsx +94 -35
- package/src/useKeyboardControllerSheet.ts +127 -10
- package/src/useSafeAreaInsets.native.ts +29 -0
- package/src/useSafeAreaInsets.ts +19 -0
- package/src/useSheetProviderProps.tsx +12 -1
- package/src/useSheetScrollViewGestures.native.ts +4 -0
- package/src/useSheetScrollViewGestures.ts +52 -5
- package/src/webViewport.ts +100 -0
- package/test/keyboardAvoidance.test.ts +269 -0
- package/tsconfig.json +57 -0
- package/types/GestureDetectorWrapper.d.ts +1 -1
- package/types/GestureDetectorWrapper.d.ts.map +1 -1
- package/types/GestureSheetContext.d.ts +1 -1
- package/types/GestureSheetContext.d.ts.map +1 -1
- package/types/Sheet.d.ts +6 -5
- package/types/Sheet.d.ts.map +1 -1
- package/types/SheetContext.d.ts +5 -2
- package/types/SheetContext.d.ts.map +1 -1
- package/types/SheetController.d.ts +1 -2
- package/types/SheetController.d.ts.map +1 -1
- package/types/SheetImplementationCustom.d.ts +1 -0
- package/types/SheetImplementationCustom.d.ts.map +1 -1
- package/types/SheetScrollView.d.ts.map +1 -1
- package/types/createSheet.d.ts +13 -12
- package/types/createSheet.d.ts.map +1 -1
- package/types/gestureState.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/keyboardAvoidance.d.ts +26 -0
- package/types/keyboardAvoidance.d.ts.map +1 -0
- package/types/nativeSheet.d.ts.map +1 -1
- package/types/setupGestureHandler.d.ts.map +1 -1
- package/types/types.d.ts +10 -1
- package/types/types.d.ts.map +1 -1
- package/types/useGestureHandlerPan.d.ts +4 -1
- package/types/useGestureHandlerPan.d.ts.map +1 -1
- package/types/useKeyboardControllerSheet.d.ts +14 -3
- package/types/useKeyboardControllerSheet.d.ts.map +1 -1
- package/types/useSafeAreaInsets.d.ts +10 -0
- package/types/useSafeAreaInsets.d.ts.map +1 -0
- package/types/useSafeAreaInsets.native.d.ts +20 -0
- package/types/useSafeAreaInsets.native.d.ts.map +1 -0
- package/types/useSheetProviderProps.d.ts +3 -0
- package/types/useSheetProviderProps.d.ts.map +1 -1
- package/types/useSheetScrollViewGestures.d.ts +2 -1
- package/types/useSheetScrollViewGestures.d.ts.map +1 -1
- package/types/useSheetScrollViewGestures.native.d.ts.map +1 -1
- package/types/webViewport.d.ts +36 -0
- package/types/webViewport.d.ts.map +1 -0
- package/LICENSE +0 -42
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import { getGestureHandler } from "@hanzogui/native";
|
|
2
|
+
const SHEET_GESTURE_STATE_KEY = "__hanzogui_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
|
|
8
|
+
return getSheetGestureHandlerState().enabled;
|
|
4
9
|
}
|
|
5
10
|
function getGestureHandlerState() {
|
|
6
|
-
return
|
|
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","
|
|
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 "@hanzogui/native";
|
|
2
|
+
var SHEET_GESTURE_STATE_KEY = "__hanzogui_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
|
|
9
|
+
return getSheetGestureHandlerState().enabled;
|
|
4
10
|
}
|
|
5
11
|
function getGestureHandlerState() {
|
|
6
|
-
return
|
|
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","
|
|
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,qCAA0B;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
|
package/dist/esm/index.js.map
CHANGED
|
@@ -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":[]}
|
package/dist/esm/index.mjs
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.mjs.map
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -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":[]}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -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":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
function getKeyboardAdjustedSheetY({
|
|
2
|
+
sheetY,
|
|
3
|
+
screenSize,
|
|
4
|
+
isKeyboardVisible,
|
|
5
|
+
keyboardHeight,
|
|
6
|
+
shouldTranslate,
|
|
7
|
+
safeAreaTop
|
|
8
|
+
}) {
|
|
9
|
+
if (!shouldTranslate || !isKeyboardVisible || keyboardHeight <= 0 || screenSize <= 0 || sheetY >= screenSize) {
|
|
10
|
+
return sheetY;
|
|
11
|
+
}
|
|
12
|
+
return Math.max(safeAreaTop, sheetY - keyboardHeight);
|
|
13
|
+
}
|
|
14
|
+
function getSheetReleasePosition({
|
|
15
|
+
positions,
|
|
16
|
+
projectedEnd,
|
|
17
|
+
currentPosition,
|
|
18
|
+
frameSize,
|
|
19
|
+
dismissOnSnapToBottom,
|
|
20
|
+
snapPointsMode,
|
|
21
|
+
isKeyboardVisible,
|
|
22
|
+
isWeb
|
|
23
|
+
}) {
|
|
24
|
+
let closestPoint = 0;
|
|
25
|
+
let dist = Number.POSITIVE_INFINITY;
|
|
26
|
+
for (let i = 0; i < positions.length; i++) {
|
|
27
|
+
const position = positions[i];
|
|
28
|
+
const curDist = Math.abs(projectedEnd - position);
|
|
29
|
+
if (curDist < dist) {
|
|
30
|
+
dist = curDist;
|
|
31
|
+
closestPoint = i;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const dismissPoint = positions.length - 1;
|
|
35
|
+
const isKeyboardFitDismiss = isWeb && dismissOnSnapToBottom && isKeyboardVisible && snapPointsMode === "fit" && positions.length === 2 && closestPoint === dismissPoint;
|
|
36
|
+
if (!isKeyboardFitDismiss) {
|
|
37
|
+
return closestPoint;
|
|
38
|
+
}
|
|
39
|
+
const openPosition = positions[0];
|
|
40
|
+
const dismissPosition = positions[dismissPoint];
|
|
41
|
+
const dismissDistance = dismissPosition - openPosition;
|
|
42
|
+
if (dismissDistance <= 0 || frameSize <= 0) {
|
|
43
|
+
return closestPoint;
|
|
44
|
+
}
|
|
45
|
+
const draggedDistance = Math.max(0, currentPosition - openPosition);
|
|
46
|
+
const thresholdBase = Math.min(frameSize, dismissDistance);
|
|
47
|
+
const dismissThreshold = Math.max(120, thresholdBase * 0.35);
|
|
48
|
+
return draggedDistance >= dismissThreshold ? closestPoint : 0;
|
|
49
|
+
}
|
|
50
|
+
function getKeyboardOccludedHeight({
|
|
51
|
+
frameSize,
|
|
52
|
+
isKeyboardVisible,
|
|
53
|
+
keyboardHeight,
|
|
54
|
+
screenSize,
|
|
55
|
+
sheetY
|
|
56
|
+
}) {
|
|
57
|
+
if (!isKeyboardVisible || keyboardHeight <= 0 || screenSize <= 0 || frameSize <= 0 || sheetY === void 0 || sheetY >= screenSize) {
|
|
58
|
+
return 0;
|
|
59
|
+
}
|
|
60
|
+
const keyboardTop = screenSize - keyboardHeight;
|
|
61
|
+
const sheetBottom = sheetY + frameSize;
|
|
62
|
+
const occludedHeight = Math.ceil(sheetBottom - keyboardTop);
|
|
63
|
+
return Math.min(frameSize, Math.max(0, occludedHeight));
|
|
64
|
+
}
|
|
65
|
+
export { getKeyboardAdjustedSheetY, getKeyboardOccludedHeight, getSheetReleasePosition };
|
|
66
|
+
//# sourceMappingURL=keyboardAvoidance.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getKeyboardAdjustedSheetY","sheetY","screenSize","isKeyboardVisible","keyboardHeight","shouldTranslate","safeAreaTop","Math","max","getSheetReleasePosition","positions","projectedEnd","currentPosition","frameSize","dismissOnSnapToBottom","snapPointsMode","isWeb","closestPoint","dist","Number","POSITIVE_INFINITY","i","length","position","curDist","abs","dismissPoint","isKeyboardFitDismiss","openPosition","dismissPosition","dismissDistance","draggedDistance","thresholdBase","min","dismissThreshold","getKeyboardOccludedHeight","keyboardTop","sheetBottom","occludedHeight","ceil"],"sources":["../../src/keyboardAvoidance.ts"],"sourcesContent":[null],"mappings":"AAAO,SAASA,0BAA0B;EACxCC,MAAA;EACAC,UAAA;EACAC,iBAAA;EACAC,cAAA;EACAC,eAAA;EACAC;AACF,GAOG;EACD,IACE,CAACD,eAAA,IACD,CAACF,iBAAA,IACDC,cAAA,IAAkB,KAClBF,UAAA,IAAc,KACdD,MAAA,IAAUC,UAAA,EACV;IACA,OAAOD,MAAA;EACT;EAEA,OAAOM,IAAA,CAAKC,GAAA,CAAIF,WAAA,EAAaL,MAAA,GAASG,cAAc;AACtD;AAEO,SAASK,wBAAwB;EACtCC,SAAA;EACAC,YAAA;EACAC,eAAA;EACAC,SAAA;EACAC,qBAAA;EACAC,cAAA;EACAZ,iBAAA;EACAa;AACF,GASG;EACD,IAAIC,YAAA,GAAe;EACnB,IAAIC,IAAA,GAAOC,MAAA,CAAOC,iBAAA;EAElB,SAASC,CAAA,GAAI,GAAGA,CAAA,GAAIX,SAAA,CAAUY,MAAA,EAAQD,CAAA,IAAK;IACzC,MAAME,QAAA,GAAWb,SAAA,CAAUW,CAAC;IAC5B,MAAMG,OAAA,GAAUjB,IAAA,CAAKkB,GAAA,CAAId,YAAA,GAAeY,QAAQ;IAChD,IAAIC,OAAA,GAAUN,IAAA,EAAM;MAClBA,IAAA,GAAOM,OAAA;MACPP,YAAA,GAAeI,CAAA;IACjB;EACF;EAOA,MAAMK,YAAA,GAAehB,SAAA,CAAUY,MAAA,GAAS;EACxC,MAAMK,oBAAA,GACJX,KAAA,IACAF,qBAAA,IACAX,iBAAA,IACAY,cAAA,KAAmB,SACnBL,SAAA,CAAUY,MAAA,KAAW,KACrBL,YAAA,KAAiBS,YAAA;EAEnB,IAAI,CAACC,oBAAA,EAAsB;IACzB,OAAOV,YAAA;EACT;EAEA,MAAMW,YAAA,GAAelB,SAAA,CAAU,CAAC;EAChC,MAAMmB,eAAA,GAAkBnB,SAAA,CAAUgB,YAAY;EAC9C,MAAMI,eAAA,GAAkBD,eAAA,GAAkBD,YAAA;EAC1C,IAAIE,eAAA,IAAmB,KAAKjB,SAAA,IAAa,GAAG;IAC1C,OAAOI,YAAA;EACT;EAEA,MAAMc,eAAA,GAAkBxB,IAAA,CAAKC,GAAA,CAAI,GAAGI,eAAA,GAAkBgB,YAAY;EAClE,MAAMI,aAAA,GAAgBzB,IAAA,CAAK0B,GAAA,CAAIpB,SAAA,EAAWiB,eAAe;EACzD,MAAMI,gBAAA,GAAmB3B,IAAA,CAAKC,GAAA,CAAI,KAAKwB,aAAA,GAAgB,IAAI;EAE3D,OAAOD,eAAA,IAAmBG,gBAAA,GAAmBjB,YAAA,GAAe;AAC9D;AAEO,SAASkB,0BAA0B;EACxCtB,SAAA;EACAV,iBAAA;EACAC,cAAA;EACAF,UAAA;EACAD;AACF,GAMG;EACD,IACE,CAACE,iBAAA,IACDC,cAAA,IAAkB,KAClBF,UAAA,IAAc,KACdW,SAAA,IAAa,KACbZ,MAAA,KAAW,UACXA,MAAA,IAAUC,UAAA,EACV;IACA,OAAO;EACT;EAEA,MAAMkC,WAAA,GAAclC,UAAA,GAAaE,cAAA;EACjC,MAAMiC,WAAA,GAAcpC,MAAA,GAASY,SAAA;EAC7B,MAAMyB,cAAA,GAAiB/B,IAAA,CAAKgC,IAAA,CAAKF,WAAA,GAAcD,WAAW;EAE1D,OAAO7B,IAAA,CAAK0B,GAAA,CAAIpB,SAAA,EAAWN,IAAA,CAAKC,GAAA,CAAI,GAAG8B,cAAc,CAAC;AACxD","ignoreList":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
function getKeyboardAdjustedSheetY(param) {
|
|
2
|
+
var {
|
|
3
|
+
sheetY,
|
|
4
|
+
screenSize,
|
|
5
|
+
isKeyboardVisible,
|
|
6
|
+
keyboardHeight,
|
|
7
|
+
shouldTranslate,
|
|
8
|
+
safeAreaTop
|
|
9
|
+
} = param;
|
|
10
|
+
if (!shouldTranslate || !isKeyboardVisible || keyboardHeight <= 0 || screenSize <= 0 || sheetY >= screenSize) {
|
|
11
|
+
return sheetY;
|
|
12
|
+
}
|
|
13
|
+
return Math.max(safeAreaTop, sheetY - keyboardHeight);
|
|
14
|
+
}
|
|
15
|
+
function getSheetReleasePosition(param) {
|
|
16
|
+
var {
|
|
17
|
+
positions,
|
|
18
|
+
projectedEnd,
|
|
19
|
+
currentPosition,
|
|
20
|
+
frameSize,
|
|
21
|
+
dismissOnSnapToBottom,
|
|
22
|
+
snapPointsMode,
|
|
23
|
+
isKeyboardVisible,
|
|
24
|
+
isWeb
|
|
25
|
+
} = param;
|
|
26
|
+
var closestPoint = 0;
|
|
27
|
+
var dist = Number.POSITIVE_INFINITY;
|
|
28
|
+
for (var i = 0; i < positions.length; i++) {
|
|
29
|
+
var position = positions[i];
|
|
30
|
+
var curDist = Math.abs(projectedEnd - position);
|
|
31
|
+
if (curDist < dist) {
|
|
32
|
+
dist = curDist;
|
|
33
|
+
closestPoint = i;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
var dismissPoint = positions.length - 1;
|
|
37
|
+
var isKeyboardFitDismiss = isWeb && dismissOnSnapToBottom && isKeyboardVisible && snapPointsMode === "fit" && positions.length === 2 && closestPoint === dismissPoint;
|
|
38
|
+
if (!isKeyboardFitDismiss) {
|
|
39
|
+
return closestPoint;
|
|
40
|
+
}
|
|
41
|
+
var openPosition = positions[0];
|
|
42
|
+
var dismissPosition = positions[dismissPoint];
|
|
43
|
+
var dismissDistance = dismissPosition - openPosition;
|
|
44
|
+
if (dismissDistance <= 0 || frameSize <= 0) {
|
|
45
|
+
return closestPoint;
|
|
46
|
+
}
|
|
47
|
+
var draggedDistance = Math.max(0, currentPosition - openPosition);
|
|
48
|
+
var thresholdBase = Math.min(frameSize, dismissDistance);
|
|
49
|
+
var dismissThreshold = Math.max(120, thresholdBase * 0.35);
|
|
50
|
+
return draggedDistance >= dismissThreshold ? closestPoint : 0;
|
|
51
|
+
}
|
|
52
|
+
function getKeyboardOccludedHeight(param) {
|
|
53
|
+
var {
|
|
54
|
+
frameSize,
|
|
55
|
+
isKeyboardVisible,
|
|
56
|
+
keyboardHeight,
|
|
57
|
+
screenSize,
|
|
58
|
+
sheetY
|
|
59
|
+
} = param;
|
|
60
|
+
if (!isKeyboardVisible || keyboardHeight <= 0 || screenSize <= 0 || frameSize <= 0 || sheetY === void 0 || sheetY >= screenSize) {
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
var keyboardTop = screenSize - keyboardHeight;
|
|
64
|
+
var sheetBottom = sheetY + frameSize;
|
|
65
|
+
var occludedHeight = Math.ceil(sheetBottom - keyboardTop);
|
|
66
|
+
return Math.min(frameSize, Math.max(0, occludedHeight));
|
|
67
|
+
}
|
|
68
|
+
export { getKeyboardAdjustedSheetY, getKeyboardOccludedHeight, getSheetReleasePosition };
|
|
69
|
+
//# sourceMappingURL=keyboardAvoidance.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getKeyboardAdjustedSheetY","param","sheetY","screenSize","isKeyboardVisible","keyboardHeight","shouldTranslate","safeAreaTop","Math","max","getSheetReleasePosition","positions","projectedEnd","currentPosition","frameSize","dismissOnSnapToBottom","snapPointsMode","isWeb","closestPoint","dist","Number","POSITIVE_INFINITY","i","length","position","curDist","abs","dismissPoint","isKeyboardFitDismiss","openPosition","dismissPosition","dismissDistance","draggedDistance","thresholdBase","min","dismissThreshold","getKeyboardOccludedHeight","keyboardTop","sheetBottom","occludedHeight","ceil"],"sources":["../../src/keyboardAvoidance.ts"],"sourcesContent":[null],"mappings":"AAAO,SAASA,0BAA0BC,KAAA;EACxC;IAAAC,MAAA;IAAAC,UAAA;IAAAC,iBAAA;IAAAC,cAAA;IAAAC,eAAA;IAAAC;EAAA,IAAAN,KAAA;EACA,KAAAK,eAAA,KAAAF,iBAAA,IAAAC,cAAA,SAAAF,UAAA,SAAAD,MAAA,IAAAC,UAAA;IACA,OAAAD,MAAA;EACA;EACA,OAAAM,IAAA,CAAAC,GAAA,CAAAF,WAAA,EAAAL,MAAA,GAAAG,cAAA;AAAA;AAEF,SAOGK,wBAAAT,KAAA;EACD,IACE;IAACU,SAAA;IAAAC,YACA;IAAAC,eACD;IAAAC,SAAA;IAAAC,qBACA;IAAAC,cACA;IAAUZ,iBACV;IAAAa;EAAA,IAAAhB,KAAA;EACA,IAAAiB,YAAO;EACT,IAAAC,IAAA,GAAAC,MAAA,CAAAC,iBAAA;EAEA,SAAOC,CAAA,GAAK,GAAIA,CAAA,GAAAX,SAAa,CAAAY,MAAA,EAASD,CAAA;IACxC,IAAAE,QAAA,GAAAb,SAAA,CAAAW,CAAA;IAEO,IAAAG,OAAS,GAAAjB,IAAA,CAAAkB,GAAA,CAAAd,YAAwB,GAAAY,QAAA;IACtC,IAAAC,OAAA,GAAAN,IAAA;MACAA,IAAA,GAAAM,OAAA;MACAP,YAAA,GAAAI,CAAA;IACA;EACA;EACA,IAAAK,YAAA,GAAAhB,SAAA,CAAAY,MAAA;EACA,IAAAK,oBAAA,GAAAX,KAAA,IAAAF,qBAAA,IAAAX,iBAAA,IAAAY,cAAA,cAAAL,SAAA,CAAAY,MAAA,UAAAL,YAAA,KAAAS,YAAA;EACA,KAAAC,oBAAA;IAUC,OAAAV,YAAA;EACD;EACA,IAAIW,YAAO,GAAOlB,SAAA;EAElB,IAAAmB,eAAgB,GAAInB,SAAU,CAAAgB,YAAa;EACzC,IAAAI,eAAiB,GAAAD,eAAW,GAAAD,YAAA;EAC5B,IAAAE,eAAgB,IAAK,KAAIjB,SAAA,KAAe;IACxC,OAAII,YAAU;EACZ;EACA,IAAAc,eAAe,GAAAxB,IAAA,CAAAC,GAAA,IAAAI,eAAA,GAAAgB,YAAA;EAAA,IACjBI,aAAA,GAAAzB,IAAA,CAAA0B,GAAA,CAAApB,SAAA,EAAAiB,eAAA;EACF,IAAAI,gBAAA,GAAA3B,IAAA,CAAAC,GAAA,MAAAwB,aAAA;EAOA,OAAMD,eAAe,IAAAG,gBAAmB,GAAAjB,YAAA;AACxC;AAQA,SAAKkB,yBAAsBA,CAAAnC,KAAA;EACzB;IAAAa,SAAO;IAAAV,iBAAA;IAAAC,cAAA;IAAAF,UAAA;IAAAD;EAAA,IAAAD,KAAA;EACT,KAAAG,iBAAA,IAAAC,cAAA,SAAAF,UAAA,SAAAW,SAAA,SAAAZ,MAAA,eAAAA,MAAA,IAAAC,UAAA;IAEA,OAAM;EACN;EACA,IAAAkC,WAAM,GAAAlC,UAAkB,GAAAE,cAAkB;EAC1C,IAAIiC,WAAA,GAAApC,MAAmB,GAAAY,SAAK;EAC1B,IAAAyB,cAAO,GAAA/B,IAAA,CAAAgC,IAAA,CAAAF,WAAA,GAAAD,WAAA;EACT,OAAA7B,IAAA,CAAA0B,GAAA,CAAApB,SAAA,EAAAN,IAAA,CAAAC,GAAA,IAAA8B,cAAA;AAEA;AACA,SACAvC,yBAAyB,EAEzBoC,yBAAO,EACT1B,uBAAA","ignoreList":[]}
|
package/dist/esm/nativeSheet.mjs
CHANGED
|
@@ -39,6 +39,9 @@ function setupNativeSheet(platform, RNIOSModal) {
|
|
|
39
39
|
return /* @__PURE__ */jsx(Fragment, {
|
|
40
40
|
children: /* @__PURE__ */jsxs(SheetProvider, {
|
|
41
41
|
setHasScrollView: emptyFn,
|
|
42
|
+
keyboardOccludedHeight: 0,
|
|
43
|
+
isKeyboardVisible: false,
|
|
44
|
+
keyboardStableFrameHeight: 0,
|
|
42
45
|
...providerProps,
|
|
43
46
|
onlyShowFrame: true,
|
|
44
47
|
children: [/* @__PURE__ */jsx(ModalSheetView, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["YStack","useEffect","useRef","View","SheetProvider","useSheetOpenState","useSheetProviderProps","Fragment","jsx","jsxs","nativeSheets","ios","getNativeSheet","platform","setupNativeSheet","RNIOSModal","ModalSheetView","ModalSheetViewMainContent","props","state","providerProps","open","setOpen","ref","current","presentModal","dismissModal","setOpenInternal","next","onOpenChange","children","setHasScrollView","emptyFn","onlyShowFrame","onModalDidDismiss","style","flex","position","opacity","pointerEvents","width","height"],"sources":["../../src/nativeSheet.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAEvB,SAASC,SAAA,EAAWC,MAAA,QAAc;AAClC,SAASC,IAAA,QAAY;AACrB,SAASC,aAAA,QAAqB;AAE9B,SAASC,iBAAA,QAAyB;AAClC,SAASC,qBAAA,QAA6B;AAqD9B,SAAAC,QAAA,
|
|
1
|
+
{"version":3,"names":["YStack","useEffect","useRef","View","SheetProvider","useSheetOpenState","useSheetProviderProps","Fragment","jsx","jsxs","nativeSheets","ios","getNativeSheet","platform","setupNativeSheet","RNIOSModal","ModalSheetView","ModalSheetViewMainContent","props","state","providerProps","open","setOpen","ref","current","presentModal","dismissModal","setOpenInternal","next","onOpenChange","children","setHasScrollView","emptyFn","keyboardOccludedHeight","isKeyboardVisible","keyboardStableFrameHeight","onlyShowFrame","onModalDidDismiss","style","flex","position","opacity","pointerEvents","width","height"],"sources":["../../src/nativeSheet.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAEvB,SAASC,SAAA,EAAWC,MAAA,QAAc;AAClC,SAASC,IAAA,QAAY;AACrB,SAASC,aAAA,QAAqB;AAE9B,SAASC,iBAAA,QAAyB;AAClC,SAASC,qBAAA,QAA6B;AAqD9B,SAAAC,QAAA,EAWQC,GAAA,EAVNC,IAAA,QADF;AA/CR,MAAMC,YAAA,GAAmF;EACvFC,GAAA,EAAK;AACP;AAEO,SAASC,eAAeC,QAAA,EAAgC;EAC7D,OAAOH,YAAA,CAAaG,QAAQ;AAC9B;AAEO,SAASC,iBACdD,QAAA,EACAE,UAAA,EACA;EACA,MAAM;IAAEC,cAAA;IAAgBC;EAA0B,IAAIF,UAAA;EAEtD,IAAIF,QAAA,KAAa,OAAO;IACtBH,YAAA,CAAaG,QAAQ,IAAKK,KAAA,IAAsB;MAC9C,MAAMC,KAAA,GAAQd,iBAAA,CAAkBa,KAAK;MACrC,MAAME,aAAA,GAAgBd,qBAAA,CAAsBY,KAAA,EAAOC,KAAK;MAIxD,MAAM;QAAEE,IAAA;QAAMC;MAAQ,IAAIH,KAAA;MAC1B,MAAMI,GAAA,GAAMrB,MAAA,CAGT,MAAS;MAEZD,SAAA,CAAU,MAAM;QACd,IAAIoB,IAAA,EAAM;UACRE,GAAA,CAAIC,OAAA,EAASC,YAAA,CAAa;QAC5B,OAAO;UACLF,GAAA,CAAIC,OAAA,EAASE,YAAA,CAAa;QAC5B;MACF,GAAG,CAACL,IAAI,CAAC;MAET,SAASM,gBAAgBC,IAAA,EAAe;QACtCV,KAAA,CAAMW,YAAA,GAAeR,IAAI;QACzBC,OAAA,CAAQM,IAAI;MACd;MAQA,OACE,eAAApB,GAAA,CAAAD,QAAA;QACEuB,QAAA,iBAAArB,IAAA,CAACL,aAAA;UACC2B,gBAAA,EAAkBC,OAAA;UAClBC,sBAAA,EAAwB;UACxBC,iBAAA,EAAmB;UACnBC,yBAAA,EAA2B;UAC1B,GAAGf,aAAA;UACJgB,aAAA,EAAa;UAEbN,QAAA,kBAAAtB,GAAA,CAACQ,cAAA;YAAeO,GAAA;YAAUc,iBAAA,EAAmBA,CAAA,KAAMV,eAAA,CAAgB,KAAK;YACtEG,QAAA,iBAAAtB,GAAA,CAACS,yBAAA;cACCa,QAAA,iBAAAtB,GAAA,CAACL,IAAA;gBAAKmC,KAAA,EAAO;kBAAEC,IAAA,EAAM;gBAAE;gBAAIT,QAAA,EAAAZ,KAAA,CAAMY;cAAA,CAAS;YAAA,CAC5C;UAAA,CACF,GAIA,eAAAtB,GAAA,CAACR,MAAA;YACCwC,QAAA,EAAS;YACTC,OAAA,EAAS;YACTC,aAAA,EAAc;YACdC,KAAA,EAAO;YACPC,MAAA,EAAQ;YAEPd,QAAA,EAAAZ,KAAA,CAAMY;UAAA,CACT;QAAA,CACF;MAAA,CACF;IAEJ;EACF;AACF;AAEA,MAAME,OAAA,GAAUA,CAAA,KAAM,CAEtB","ignoreList":[]}
|
|
@@ -42,6 +42,9 @@ function setupNativeSheet(platform, RNIOSModal) {
|
|
|
42
42
|
return /* @__PURE__ */_jsx(_Fragment, {
|
|
43
43
|
children: /* @__PURE__ */_jsxs(SheetProvider, {
|
|
44
44
|
setHasScrollView: emptyFn,
|
|
45
|
+
keyboardOccludedHeight: 0,
|
|
46
|
+
isKeyboardVisible: false,
|
|
47
|
+
keyboardStableFrameHeight: 0,
|
|
45
48
|
...providerProps,
|
|
46
49
|
onlyShowFrame: true,
|
|
47
50
|
children: [/* @__PURE__ */_jsx(ModalSheetView, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","YStack","useEffect","useRef","View","SheetProvider","useSheetOpenState","useSheetProviderProps","nativeSheets","ios","getNativeSheet","platform","setupNativeSheet","RNIOSModal","ModalSheetView","ModalSheetViewMainContent","props","state","providerProps","open","setOpen","ref","_ref_current","current","presentModal","_ref_current1","dismissModal","setOpenInternal","next","_props_onOpenChange","onOpenChange","call","children","setHasScrollView","emptyFn","onlyShowFrame","onModalDidDismiss","style"],"sources":["../../src/nativeSheet.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,EAAAC,IAAc,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAEvB,SAASC,MAAA,QAAW,kBAAc;AAClC,SAASC,SAAA,EAAAC,MAAY;AACrB,SAASC,IAAA,sBAAqB;AAE9B,SAASC,aAAA,kCAAyB;AAClC,SAASC,iBAAA,uCAA6B;AAqD9B,SAAAC,qBACE,QADF;AA/CR,IAAAC,YAAM;EACJC,GAAA,EAAK;AACP;AAEO,SAASC,eAAeC,QAAA,EAAgC;EAC7D,OAAOH,YAAA,CAAaG,QAAQ;AAC9B;AAEO,SAASC,iBACdD,QAAA,EACAE,UAAA,EACA;EACA;IAAMC,cAAE;IAAAC;EAAgB,IAA0BF,UAAI;EAEtD,IAAIF,QAAA,KAAa,OAAO;IACtBH,YAAA,CAAaG,QAAQ,IAAI,UAACK,KAAsB;MAC9C,IAAAC,KAAM,GAAAX,iBAAQ,CAAAU,KAAkB;MAChC,IAAAE,aAAM,GAAAX,qBAAgB,CAAAS,KAAsB,EAAAC,KAAO;MAInD;QAAME,IAAE;QAAAC;MAAM,IAAQH,KAAI;MAC1B,IAAAI,GAAM,GAAAlB,MAAM,MAGT;MAEHD,SAAA,CAAU,YAAM;QACd,IAAIiB,IAAA,EAAM;UACR,IAAIG,YAAS;UACf,CAAAA,YAAO,GAAAD,GAAA,CAAAE,OAAA,cAAAD,YAAA,uBAAAA,YAAA,CAAAE,YAAA;QACL,OAAI;UACN,IAAAC,aAAA;UACE,CAAAA,aAAK,GAAAJ,GAAA,CAAAE,OAAA,cAAAE,aAAA,uBAAAA,aAAA,CAAAC,YAAA;QAET;MACE,IACAP,IAAA,CACF;MAQA,SACEQ,gBAAAC,IAAA;
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","YStack","useEffect","useRef","View","SheetProvider","useSheetOpenState","useSheetProviderProps","nativeSheets","ios","getNativeSheet","platform","setupNativeSheet","RNIOSModal","ModalSheetView","ModalSheetViewMainContent","props","state","providerProps","open","setOpen","ref","_ref_current","current","presentModal","_ref_current1","dismissModal","setOpenInternal","next","_props_onOpenChange","onOpenChange","call","children","setHasScrollView","emptyFn","keyboardOccludedHeight","isKeyboardVisible","keyboardStableFrameHeight","onlyShowFrame","onModalDidDismiss","style","flex"],"sources":["../../src/nativeSheet.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,EAAAC,IAAc,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAEvB,SAASC,MAAA,QAAW,kBAAc;AAClC,SAASC,SAAA,EAAAC,MAAY;AACrB,SAASC,IAAA,sBAAqB;AAE9B,SAASC,aAAA,kCAAyB;AAClC,SAASC,iBAAA,uCAA6B;AAqD9B,SAAAC,qBACE,QADF;AA/CR,IAAAC,YAAM;EACJC,GAAA,EAAK;AACP;AAEO,SAASC,eAAeC,QAAA,EAAgC;EAC7D,OAAOH,YAAA,CAAaG,QAAQ;AAC9B;AAEO,SAASC,iBACdD,QAAA,EACAE,UAAA,EACA;EACA;IAAMC,cAAE;IAAAC;EAAgB,IAA0BF,UAAI;EAEtD,IAAIF,QAAA,KAAa,OAAO;IACtBH,YAAA,CAAaG,QAAQ,IAAI,UAACK,KAAsB;MAC9C,IAAAC,KAAM,GAAAX,iBAAQ,CAAAU,KAAkB;MAChC,IAAAE,aAAM,GAAAX,qBAAgB,CAAAS,KAAsB,EAAAC,KAAO;MAInD;QAAME,IAAE;QAAAC;MAAM,IAAQH,KAAI;MAC1B,IAAAI,GAAM,GAAAlB,MAAM,MAGT;MAEHD,SAAA,CAAU,YAAM;QACd,IAAIiB,IAAA,EAAM;UACR,IAAIG,YAAS;UACf,CAAAA,YAAO,GAAAD,GAAA,CAAAE,OAAA,cAAAD,YAAA,uBAAAA,YAAA,CAAAE,YAAA;QACL,OAAI;UACN,IAAAC,aAAA;UACE,CAAAA,aAAK,GAAAJ,GAAA,CAAAE,OAAA,cAAAE,aAAA,uBAAAA,aAAA,CAAAC,YAAA;QAET;MACE,IACAP,IAAA,CACF;MAQA,SACEQ,gBAAAC,IAAA;QACG,IAAAC,mBAAA;QAAA,CAAAA,mBAAA,GAAAb,KAAA,CAAAc,YAAA,cAAAD,mBAAA,uBAAAA,mBAAA,CAAAE,IAAA,CAAAf,KAAA,EAAAG,IAAA;QAAAC,OACC,CAAAQ,IAAA;MAAkB;MACM,OACxB,eAAmBhC,IAAA,CAAAI,SAAA;QAAAgC,QACnB,iBAAAlC,KAA2B,CAAAO,aAAA;UAC1B4B,gBAAG,EAAAC,OAAA;UACJC,sBAAa;UAEbC,iBAAA;UAAAC,yBAAC;UAID,GAIAnB,aAAA;UAAAoB,aAAC;UAAAN,QAAA,kBACUpC,IAAA,CAAAkB,cAAA;YAAAO,GACT;YAASkB,iBACK,WAAAA,CAAA;cACd,OAAOZ,eAAA;YAAA;YACCK,QAEP,iBAAMpC,IAAA,CAAAmB,yBAAA;cAAAiB,QAAA,iBAAApC,IAAA,CAAAQ,IAAA;gBACToC,KAAA;kBAAAC,IAAA;gBAAA;gBAEJT,QAAA,EAAAhB,KAAA,CAAAgB;cAEJ;YACF;UACF,IAEM;UAEN","ignoreList":[]}
|
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
import { getGestureHandler } from "@hanzogui/native";
|
|
2
|
+
const SHEET_GESTURE_STATE_KEY = "__hanzogui_sheet_gesture_state__";
|
|
2
3
|
function isGestureHandlerEnabled() {
|
|
3
|
-
|
|
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;
|
|
7
|
-
if (g.
|
|
9
|
+
if (g.__hanzogui_sheet_gesture_handler_setup) {
|
|
8
10
|
return;
|
|
9
11
|
}
|
|
10
|
-
g.
|
|
12
|
+
g.__hanzogui_sheet_gesture_handler_setup = true;
|
|
11
13
|
const {
|
|
12
14
|
Gesture,
|
|
13
15
|
GestureDetector,
|
|
14
16
|
ScrollView
|
|
15
17
|
} = config;
|
|
16
18
|
if (Gesture && GestureDetector) {
|
|
17
|
-
|
|
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","
|
|
1
|
+
{"version":3,"names":["getGestureHandler","SHEET_GESTURE_STATE_KEY","isGestureHandlerEnabled","g","globalThis","enabled","isEnabled","setupGestureHandler","config","__hanzogui_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,sCAAA,EAAwC;IAC5C;EACF;EACAN,CAAA,CAAEM,sCAAA,GAAyC;EAE3C,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,25 +1,30 @@
|
|
|
1
1
|
import { getGestureHandler } from "@hanzogui/native";
|
|
2
|
+
var SHEET_GESTURE_STATE_KEY = "__hanzogui_sheet_gesture_state__";
|
|
2
3
|
function isGestureHandlerEnabled() {
|
|
3
|
-
|
|
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;
|
|
7
|
-
if (g.
|
|
11
|
+
if (g.__hanzogui_sheet_gesture_handler_setup) {
|
|
8
12
|
return;
|
|
9
13
|
}
|
|
10
|
-
g.
|
|
14
|
+
g.__hanzogui_sheet_gesture_handler_setup = true;
|
|
11
15
|
var {
|
|
12
16
|
Gesture,
|
|
13
17
|
GestureDetector,
|
|
14
18
|
ScrollView
|
|
15
19
|
} = config;
|
|
16
20
|
if (Gesture && GestureDetector) {
|
|
17
|
-
|
|
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","
|
|
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","__hanzogui_sheet_gesture_handler_setup","Gesture","GestureDetector","ScrollView","RootView"],"sources":["../../src/setupGestureHandler.ts"],"sourcesContent":[null],"mappings":"AAIA,SAASA,iBAAA,QAAyB;AAIlC,IAAAC,uBAAM,qCAA0B;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,sCAAA;IACE;EAEF;EAEAP,CAAA,CAAAO,sCAAgC;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,6 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isWeb } from "@hanzogui/constants";
|
|
2
|
+
import { useCallback, useEffect, useMemo, useRef } from "react";
|
|
2
3
|
import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.mjs";
|
|
4
|
+
import { getSheetReleasePosition } from "./keyboardAvoidance.mjs";
|
|
3
5
|
const AT_TOP_THRESHOLD = 5;
|
|
6
|
+
const SCROLL_HANDOFF_THRESHOLD = 160;
|
|
4
7
|
function useGestureHandlerPan(config) {
|
|
5
8
|
const {
|
|
6
9
|
positions,
|
|
@@ -19,6 +22,16 @@ function useGestureHandlerPan(config) {
|
|
|
19
22
|
} = config;
|
|
20
23
|
const gestureHandlerEnabled = isGestureHandlerEnabled();
|
|
21
24
|
const panGestureRef = useRef(null);
|
|
25
|
+
const releaseConfigRef = useRef({
|
|
26
|
+
dismissOnSnapToBottom: config.dismissOnSnapToBottom === true,
|
|
27
|
+
snapPointsMode: config.snapPointsMode ?? "percent",
|
|
28
|
+
isKeyboardVisible: config.isKeyboardVisible === true
|
|
29
|
+
});
|
|
30
|
+
releaseConfigRef.current = {
|
|
31
|
+
dismissOnSnapToBottom: config.dismissOnSnapToBottom === true,
|
|
32
|
+
snapPointsMode: config.snapPointsMode ?? "percent",
|
|
33
|
+
isKeyboardVisible: config.isKeyboardVisible === true
|
|
34
|
+
};
|
|
22
35
|
const gestureStateRef = useRef({
|
|
23
36
|
startY: 0,
|
|
24
37
|
// track last translation when pan was active (for position calculation after handoff)
|
|
@@ -33,16 +46,43 @@ function useGestureHandlerPan(config) {
|
|
|
33
46
|
// causing positions to revert. Frozen positions ensure stable snap calculation.
|
|
34
47
|
frozenPositions: [],
|
|
35
48
|
frozenMinY: 0,
|
|
49
|
+
frozenIsKeyboardVisible: false,
|
|
36
50
|
// whether pan gesture actually started (vs just a tap in onBegin)
|
|
37
|
-
panStarted: false
|
|
51
|
+
panStarted: false,
|
|
52
|
+
startedBelowTop: false,
|
|
53
|
+
upwardDragAfterTop: 0,
|
|
54
|
+
scrollUnlockedAfterTop: false,
|
|
55
|
+
keepScrollLockedAfterEnd: false
|
|
38
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
|
+
}, []);
|
|
39
66
|
const onStart = useCallback(() => {
|
|
40
67
|
stopSpring();
|
|
41
68
|
}, [stopSpring]);
|
|
42
|
-
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
|
+
}
|
|
43
74
|
setIsDragging(false);
|
|
44
75
|
scrollBridge.setParentDragging(false);
|
|
45
|
-
scrollBridge.
|
|
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
|
+
}
|
|
46
86
|
setPosition(closestPoint);
|
|
47
87
|
animateTo(closestPoint, animationOverride);
|
|
48
88
|
}, [setIsDragging, scrollBridge, setPosition, animateTo]);
|
|
@@ -73,6 +113,16 @@ function useGestureHandlerPan(config) {
|
|
|
73
113
|
gs.scrollEngaged = currentScrollY > 0;
|
|
74
114
|
gs.frozenPositions = [...positions];
|
|
75
115
|
gs.frozenMinY = minY;
|
|
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
|
+
}
|
|
76
126
|
if (!atTop) {
|
|
77
127
|
scrollBridge.setScrollEnabled?.(false, 0);
|
|
78
128
|
}
|
|
@@ -114,13 +164,24 @@ function useGestureHandlerPan(config) {
|
|
|
114
164
|
}
|
|
115
165
|
} else {
|
|
116
166
|
if (hasScrollableContent) {
|
|
117
|
-
|
|
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
|
+
}
|
|
118
178
|
} else {
|
|
119
179
|
panHandles = true;
|
|
120
180
|
}
|
|
121
181
|
}
|
|
122
182
|
}
|
|
123
183
|
if (panHandles) {
|
|
184
|
+
scrollBridge.lockScrollAtTop = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
|
|
124
185
|
const lockTo = isCurrentlyAtTop && isSwipingDown && gs.scrollEngaged ? void 0 : 0;
|
|
125
186
|
scrollBridge.setScrollEnabled?.(false, lockTo);
|
|
126
187
|
gs.accumulatedOffset += deltaY;
|
|
@@ -129,35 +190,42 @@ function useGestureHandlerPan(config) {
|
|
|
129
190
|
setAnimatedPosition(newPosition);
|
|
130
191
|
scrollBridge.setParentDragging(newPosition > minY);
|
|
131
192
|
} else {
|
|
193
|
+
scrollBridge.lockScrollAtTop = false;
|
|
132
194
|
scrollBridge.setScrollEnabled?.(true);
|
|
195
|
+
scrollBridge.setParentDragging(false);
|
|
133
196
|
}
|
|
134
197
|
}).onEnd(event => {
|
|
135
198
|
const {
|
|
136
199
|
velocityY
|
|
137
200
|
} = event;
|
|
138
201
|
const currentPos = gs.startY + gs.accumulatedOffset;
|
|
139
|
-
|
|
202
|
+
const keepScrollLockedAfterEnd = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
|
|
203
|
+
scrollBridge.lockScrollAtTop = false;
|
|
204
|
+
scrollBridge.scrollLockY = keepScrollLockedAfterEnd ? 0 : void 0;
|
|
205
|
+
gs.keepScrollLockedAfterEnd = keepScrollLockedAfterEnd;
|
|
140
206
|
const snapPositions = gs.frozenPositions.length > 0 ? gs.frozenPositions : positions;
|
|
141
207
|
const snapMinY = gs.frozenPositions.length > 0 ? gs.frozenMinY : minY;
|
|
142
208
|
if (currentPos <= snapMinY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
|
|
143
|
-
onEnd(0);
|
|
209
|
+
onEnd(0, void 0, keepScrollLockedAfterEnd);
|
|
144
210
|
return;
|
|
145
211
|
}
|
|
146
212
|
const velocity = velocityY / 1e3;
|
|
147
213
|
const projectedEnd = currentPos + frameSize * velocity * 0.2;
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
214
|
+
const releaseConfig = releaseConfigRef.current;
|
|
215
|
+
const closestPoint = getSheetReleasePosition({
|
|
216
|
+
positions: snapPositions,
|
|
217
|
+
projectedEnd,
|
|
218
|
+
currentPosition: currentPos,
|
|
219
|
+
frameSize,
|
|
220
|
+
dismissOnSnapToBottom: releaseConfig.dismissOnSnapToBottom,
|
|
221
|
+
snapPointsMode: releaseConfig.snapPointsMode,
|
|
222
|
+
isKeyboardVisible: gs.frozenIsKeyboardVisible,
|
|
223
|
+
isWeb
|
|
224
|
+
});
|
|
225
|
+
onEnd(closestPoint, void 0, keepScrollLockedAfterEnd);
|
|
159
226
|
}).onFinalize(() => {
|
|
160
|
-
scrollBridge.
|
|
227
|
+
scrollBridge.lockScrollAtTop = false;
|
|
228
|
+
scrollBridge.scrollLockY = gs.keepScrollLockedAfterEnd ? 0 : void 0;
|
|
161
229
|
if (gs.panStarted) {
|
|
162
230
|
setIsDragging(false);
|
|
163
231
|
} else {
|