@tamagui/sheet 2.0.0-1769233344020 → 2.0.0-1769288527117
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/dist/cjs/GestureDetectorWrapper.cjs +48 -0
- package/dist/cjs/GestureDetectorWrapper.js +29 -0
- package/dist/cjs/GestureDetectorWrapper.js.map +6 -0
- package/dist/cjs/GestureDetectorWrapper.native.js +53 -0
- package/dist/cjs/GestureDetectorWrapper.native.js.map +1 -0
- package/dist/cjs/GestureSheetContext.cjs +52 -0
- package/dist/cjs/GestureSheetContext.js +43 -0
- package/dist/cjs/GestureSheetContext.js.map +6 -0
- package/dist/cjs/GestureSheetContext.native.js +56 -0
- package/dist/cjs/GestureSheetContext.native.js.map +1 -0
- package/dist/cjs/SheetImplementationCustom.cjs +85 -40
- package/dist/cjs/SheetImplementationCustom.js +81 -58
- package/dist/cjs/SheetImplementationCustom.js.map +1 -1
- package/dist/cjs/SheetImplementationCustom.native.js +105 -50
- package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
- package/dist/cjs/SheetScrollView.cjs +88 -17
- package/dist/cjs/SheetScrollView.js +85 -26
- package/dist/cjs/SheetScrollView.js.map +1 -1
- package/dist/cjs/SheetScrollView.native.js +102 -19
- package/dist/cjs/SheetScrollView.native.js.map +1 -1
- package/dist/cjs/gestureState.cjs +39 -0
- package/dist/cjs/gestureState.js +34 -0
- package/dist/cjs/gestureState.js.map +6 -0
- package/dist/cjs/gestureState.native.js +42 -0
- package/dist/cjs/gestureState.native.js.map +1 -0
- package/dist/cjs/setupGestureHandler.cjs +46 -0
- package/dist/cjs/setupGestureHandler.js +38 -0
- package/dist/cjs/setupGestureHandler.js.map +6 -0
- package/dist/cjs/setupGestureHandler.native.js +50 -0
- package/dist/cjs/setupGestureHandler.native.js.map +1 -0
- package/dist/cjs/useGestureHandlerPan.cjs +126 -0
- package/dist/cjs/useGestureHandlerPan.js +117 -0
- package/dist/cjs/useGestureHandlerPan.js.map +6 -0
- package/dist/cjs/useGestureHandlerPan.native.js +135 -0
- package/dist/cjs/useGestureHandlerPan.native.js.map +1 -0
- package/dist/esm/GestureDetectorWrapper.js +15 -0
- package/dist/esm/GestureDetectorWrapper.js.map +6 -0
- package/dist/esm/GestureDetectorWrapper.mjs +25 -0
- package/dist/esm/GestureDetectorWrapper.mjs.map +1 -0
- package/dist/esm/GestureDetectorWrapper.native.js +27 -0
- package/dist/esm/GestureDetectorWrapper.native.js.map +1 -0
- package/dist/esm/GestureSheetContext.js +28 -0
- package/dist/esm/GestureSheetContext.js.map +6 -0
- package/dist/esm/GestureSheetContext.mjs +28 -0
- package/dist/esm/GestureSheetContext.mjs.map +1 -0
- package/dist/esm/GestureSheetContext.native.js +29 -0
- package/dist/esm/GestureSheetContext.native.js.map +1 -0
- package/dist/esm/SheetImplementationCustom.js +83 -57
- package/dist/esm/SheetImplementationCustom.js.map +1 -1
- package/dist/esm/SheetImplementationCustom.mjs +85 -40
- package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
- package/dist/esm/SheetImplementationCustom.native.js +105 -50
- package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
- package/dist/esm/SheetScrollView.js +87 -26
- package/dist/esm/SheetScrollView.js.map +1 -1
- package/dist/esm/SheetScrollView.mjs +89 -18
- package/dist/esm/SheetScrollView.mjs.map +1 -1
- package/dist/esm/SheetScrollView.native.js +103 -20
- package/dist/esm/SheetScrollView.native.js.map +1 -1
- package/dist/esm/gestureState.js +18 -0
- package/dist/esm/gestureState.js.map +6 -0
- package/dist/esm/gestureState.mjs +13 -0
- package/dist/esm/gestureState.mjs.map +1 -0
- package/dist/esm/gestureState.native.js +13 -0
- package/dist/esm/gestureState.native.js.map +1 -0
- package/dist/esm/setupGestureHandler.js +22 -0
- package/dist/esm/setupGestureHandler.js.map +6 -0
- package/dist/esm/setupGestureHandler.mjs +22 -0
- package/dist/esm/setupGestureHandler.mjs.map +1 -0
- package/dist/esm/setupGestureHandler.native.js +23 -0
- package/dist/esm/setupGestureHandler.native.js.map +1 -0
- package/dist/esm/useGestureHandlerPan.js +102 -0
- package/dist/esm/useGestureHandlerPan.js.map +6 -0
- package/dist/esm/useGestureHandlerPan.mjs +103 -0
- package/dist/esm/useGestureHandlerPan.mjs.map +1 -0
- package/dist/esm/useGestureHandlerPan.native.js +109 -0
- package/dist/esm/useGestureHandlerPan.native.js.map +1 -0
- package/dist/jsx/GestureDetectorWrapper.js +15 -0
- package/dist/jsx/GestureDetectorWrapper.js.map +6 -0
- package/dist/jsx/GestureDetectorWrapper.mjs +25 -0
- package/dist/jsx/GestureDetectorWrapper.mjs.map +1 -0
- package/dist/jsx/GestureDetectorWrapper.native.js +53 -0
- package/dist/jsx/GestureDetectorWrapper.native.js.map +1 -0
- package/dist/jsx/GestureSheetContext.js +28 -0
- package/dist/jsx/GestureSheetContext.js.map +6 -0
- package/dist/jsx/GestureSheetContext.mjs +28 -0
- package/dist/jsx/GestureSheetContext.mjs.map +1 -0
- package/dist/jsx/GestureSheetContext.native.js +56 -0
- package/dist/jsx/GestureSheetContext.native.js.map +1 -0
- package/dist/jsx/SheetImplementationCustom.js +83 -57
- package/dist/jsx/SheetImplementationCustom.js.map +1 -1
- package/dist/jsx/SheetImplementationCustom.mjs +85 -40
- package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
- package/dist/jsx/SheetImplementationCustom.native.js +105 -50
- package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
- package/dist/jsx/SheetScrollView.js +87 -26
- package/dist/jsx/SheetScrollView.js.map +1 -1
- package/dist/jsx/SheetScrollView.mjs +89 -18
- package/dist/jsx/SheetScrollView.mjs.map +1 -1
- package/dist/jsx/SheetScrollView.native.js +102 -19
- package/dist/jsx/SheetScrollView.native.js.map +1 -1
- package/dist/jsx/gestureState.js +18 -0
- package/dist/jsx/gestureState.js.map +6 -0
- package/dist/jsx/gestureState.mjs +13 -0
- package/dist/jsx/gestureState.mjs.map +1 -0
- package/dist/jsx/gestureState.native.js +42 -0
- package/dist/jsx/gestureState.native.js.map +1 -0
- package/dist/jsx/setupGestureHandler.js +22 -0
- package/dist/jsx/setupGestureHandler.js.map +6 -0
- package/dist/jsx/setupGestureHandler.mjs +22 -0
- package/dist/jsx/setupGestureHandler.mjs.map +1 -0
- package/dist/jsx/setupGestureHandler.native.js +50 -0
- package/dist/jsx/setupGestureHandler.native.js.map +1 -0
- package/dist/jsx/useGestureHandlerPan.js +102 -0
- package/dist/jsx/useGestureHandlerPan.js.map +6 -0
- package/dist/jsx/useGestureHandlerPan.mjs +103 -0
- package/dist/jsx/useGestureHandlerPan.mjs.map +1 -0
- package/dist/jsx/useGestureHandlerPan.native.js +135 -0
- package/dist/jsx/useGestureHandlerPan.native.js.map +1 -0
- package/package.json +48 -21
- package/src/GestureDetectorWrapper.tsx +41 -0
- package/src/GestureSheetContext.tsx +62 -0
- package/src/SheetImplementationCustom.tsx +124 -57
- package/src/SheetScrollView.tsx +169 -20
- package/src/gestureState.ts +24 -0
- package/src/setupGestureHandler.ts +34 -0
- package/src/types.tsx +15 -0
- package/src/useGestureHandlerPan.tsx +312 -0
- package/types/GestureDetectorWrapper.d.ts +14 -0
- package/types/GestureDetectorWrapper.d.ts.map +1 -0
- package/types/GestureDetectorWrapper.native.d.ts +14 -0
- package/types/GestureSheetContext.d.ts +36 -0
- package/types/GestureSheetContext.d.ts.map +1 -0
- package/types/SheetImplementationCustom.d.ts.map +1 -1
- package/types/SheetScrollView.d.ts.map +1 -1
- package/types/gestureState.d.ts +11 -0
- package/types/gestureState.d.ts.map +1 -0
- package/types/gestureState.native.d.ts +12 -0
- package/types/setupGestureHandler.d.ts +11 -0
- package/types/setupGestureHandler.d.ts.map +1 -0
- package/types/setupGestureHandler.native.d.ts +41 -0
- package/types/types.d.ts +8 -0
- package/types/types.d.ts.map +1 -1
- package/types/useGestureHandlerPan.d.ts +43 -0
- package/types/useGestureHandlerPan.d.ts.map +1 -0
- package/types/useGestureHandlerPan.native.d.ts +33 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","getGestureHandlerState","isGestureHandlerEnabled","jsx","GestureDetectorWrapper","gesture","children","style","GestureDetector","collapsable"],"sources":["../../src/GestureDetectorWrapper.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,IAAA,QAA4B;AACrC,SAASC,sBAAA,EAAwBC,uBAAA,QAA+B;AA6BxD,SAAAC,GAAA;AAjBD,SAASC,uBAAuB;EACrCC,OAAA;EACAC,QAAA;EACAC;AACF,GAAgC;EAC9B,MAAM;IAAEC;EAAgB,IAAIP,sBAAA,CAAuB;EAMnD,OALgBC,uBAAA,CAAwB,KAKzBM,eAAA,IAAmBH,OAAA,GAK9B,eAAAF,GAAA,CAACK,eAAA;IAAgBH,OAAA;IACfC,QAAA,iBAAAH,GAAA,CAACH,IAAA;MAAKO,KAAA;MAAcE,WAAA,EAAa;MAC9BH;IAAA,CACH;EAAA,CACF,IAKG,eAAAH,GAAA,CAACH,IAAA;IAAKO,KAAA;IAAeD;EAAA,CAAS;AACvC","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { View } from "react-native";
|
|
3
|
+
import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.native.js";
|
|
4
|
+
function GestureDetectorWrapper(param) {
|
|
5
|
+
var {
|
|
6
|
+
gesture,
|
|
7
|
+
children,
|
|
8
|
+
style
|
|
9
|
+
} = param,
|
|
10
|
+
{
|
|
11
|
+
GestureDetector
|
|
12
|
+
} = getGestureHandlerState(),
|
|
13
|
+
enabled = isGestureHandlerEnabled();
|
|
14
|
+
return enabled && GestureDetector && gesture ? /* @__PURE__ */_jsx(GestureDetector, {
|
|
15
|
+
gesture,
|
|
16
|
+
children: /* @__PURE__ */_jsx(View, {
|
|
17
|
+
style,
|
|
18
|
+
collapsable: !1,
|
|
19
|
+
children
|
|
20
|
+
})
|
|
21
|
+
}) : /* @__PURE__ */_jsx(View, {
|
|
22
|
+
style,
|
|
23
|
+
children
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
export { GestureDetectorWrapper };
|
|
27
|
+
//# sourceMappingURL=GestureDetectorWrapper.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","View","getGestureHandlerState","isGestureHandlerEnabled","GestureDetectorWrapper","param","gesture","children","style","GestureDetector","enabled","collapsable"],"sources":["../../src/GestureDetectorWrapper.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,GAAA,IAAAC,IAAA,QAA4B;AACrC,SAASC,IAAA,sBAAwB;AA6BzB,SAAAC,sBAAA,EAAAC,uBAAA;AAjBD,SAASC,uBAAuBC,KAAA;EACrC;MAAAC,OAAA;MAAAC,QAAA;MAAAC;IAAA,IAAAH,KAAA;IAAA;MAAAI;IAAA,IAAAP,sBAAA;IAAAQ,OAAA,GAAAP,uBAAA;EACA,OAAAO,OAAA,IAAAD,eAAA,IAAAH,OAAA,kBAAAN,IAAA,CAAAS,eAAA;IACAH,OAAA;IAC8BC,QAAA,iBAAAP,IAAA,CAAAC,IAAA;MAC9BO,KAAQ;MAMRG,WALgB;MAoBlBJ","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createContext, useContext } from "react";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
const GestureSheetContext = createContext(null);
|
|
4
|
+
function useGestureSheetContext() {
|
|
5
|
+
return useContext(GestureSheetContext);
|
|
6
|
+
}
|
|
7
|
+
function GestureSheetProvider({
|
|
8
|
+
children,
|
|
9
|
+
isDragging,
|
|
10
|
+
blockPan,
|
|
11
|
+
setBlockPan,
|
|
12
|
+
panGesture,
|
|
13
|
+
panGestureRef
|
|
14
|
+
}) {
|
|
15
|
+
const value = {
|
|
16
|
+
panGesture,
|
|
17
|
+
panGestureRef,
|
|
18
|
+
isDragging,
|
|
19
|
+
blockPan,
|
|
20
|
+
setBlockPan
|
|
21
|
+
};
|
|
22
|
+
return /* @__PURE__ */ jsx(GestureSheetContext.Provider, { value, children });
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
GestureSheetProvider,
|
|
26
|
+
useGestureSheetContext
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=GestureSheetContext.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/GestureSheetContext.tsx"],
|
|
4
|
+
"mappings": "AACA,SAAS,eAAe,kBAAkC;AA0DtD;AAhCJ,MAAM,sBAAsB,cAA+C,IAAI;AAExE,SAAS,yBAA0D;AACxE,SAAO,WAAW,mBAAmB;AACvC;AAWO,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA8B;AAC5B,QAAM,QAAkC;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SACE,oBAAC,oBAAoB,UAApB,EAA6B,OAAe,UAAS;AAE1D;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createContext, useContext } from "react";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
const GestureSheetContext = createContext(null);
|
|
4
|
+
function useGestureSheetContext() {
|
|
5
|
+
return useContext(GestureSheetContext);
|
|
6
|
+
}
|
|
7
|
+
function GestureSheetProvider({
|
|
8
|
+
children,
|
|
9
|
+
isDragging,
|
|
10
|
+
blockPan,
|
|
11
|
+
setBlockPan,
|
|
12
|
+
panGesture,
|
|
13
|
+
panGestureRef
|
|
14
|
+
}) {
|
|
15
|
+
const value = {
|
|
16
|
+
panGesture,
|
|
17
|
+
panGestureRef,
|
|
18
|
+
isDragging,
|
|
19
|
+
blockPan,
|
|
20
|
+
setBlockPan
|
|
21
|
+
};
|
|
22
|
+
return /* @__PURE__ */jsx(GestureSheetContext.Provider, {
|
|
23
|
+
value,
|
|
24
|
+
children
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
export { GestureSheetProvider, useGestureSheetContext };
|
|
28
|
+
//# sourceMappingURL=GestureSheetContext.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","useContext","jsx","GestureSheetContext","useGestureSheetContext","GestureSheetProvider","children","isDragging","blockPan","setBlockPan","panGesture","panGestureRef","value","Provider"],"sources":["../../src/GestureSheetContext.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,aAAA,EAAeC,UAAA,QAAkC;AA0DtD,SAAAC,GAAA;AAhCJ,MAAMC,mBAAA,GAAsBH,aAAA,CAA+C,IAAI;AAExE,SAASI,uBAAA,EAA0D;EACxE,OAAOH,UAAA,CAAWE,mBAAmB;AACvC;AAWO,SAASE,qBAAqB;EACnCC,QAAA;EACAC,UAAA;EACAC,QAAA;EACAC,WAAA;EACAC,UAAA;EACAC;AACF,GAA8B;EAC5B,MAAMC,KAAA,GAAkC;IACtCF,UAAA;IACAC,aAAA;IACAJ,UAAA;IACAC,QAAA;IACAC;EACF;EAEA,OACE,eAAAP,GAAA,CAACC,mBAAA,CAAoBU,QAAA,EAApB;IAA6BD,KAAA;IAAeN;EAAA,CAAS;AAE1D","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext } from "react";
|
|
3
|
+
var GestureSheetContext = /* @__PURE__ */createContext(null);
|
|
4
|
+
function useGestureSheetContext() {
|
|
5
|
+
return useContext(GestureSheetContext);
|
|
6
|
+
}
|
|
7
|
+
function GestureSheetProvider(param) {
|
|
8
|
+
var {
|
|
9
|
+
children,
|
|
10
|
+
isDragging,
|
|
11
|
+
blockPan,
|
|
12
|
+
setBlockPan,
|
|
13
|
+
panGesture,
|
|
14
|
+
panGestureRef
|
|
15
|
+
} = param,
|
|
16
|
+
value = {
|
|
17
|
+
panGesture,
|
|
18
|
+
panGestureRef,
|
|
19
|
+
isDragging,
|
|
20
|
+
blockPan,
|
|
21
|
+
setBlockPan
|
|
22
|
+
};
|
|
23
|
+
return /* @__PURE__ */_jsx(GestureSheetContext.Provider, {
|
|
24
|
+
value,
|
|
25
|
+
children
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export { GestureSheetProvider, useGestureSheetContext };
|
|
29
|
+
//# sourceMappingURL=GestureSheetContext.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","createContext","useContext","GestureSheetContext","useGestureSheetContext","GestureSheetProvider","param","children","isDragging","blockPan","setBlockPan","panGesture","panGestureRef","value","Provider"],"sources":["../../src/GestureSheetContext.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,GAAA,IAAAC,IAAA,QAAe,mBAAkC;AA0DtD,SAAAC,aAAA,EAAAC,UAAA;AAhCJ,IAAAC,mBAAM,kBAAqEF,aAAI;AAExE,SAASG,uBAAA,EAA0D;EACxE,OAAOF,UAAA,CAAWC,mBAAmB;AACvC;AAWO,SAASE,qBAAqBC,KAAA;EACnC;MAAAC,QAAA;MAAAC,UAAA;MAAAC,QAAA;MAAAC,WAAA;MAAAC,UAAA;MAAAC;IAAA,IAAAN,KAAA;IAAAO,KAAA;MACAF,UAAA;MACAC,aAAA;MACAJ,UAAA;MACAC,QAAA;MACAC;IACF,CAA8B;EAC5B,OAAM,eAAkCV,IAAA,CAAAG,mBAAA,CAAAW,QAAA;IACtCD,KAAA;IACAN;EAAA,EACA;AAAA;AACA,SAEFF,oBAAA,EAEAD,sBACE","ignoreList":[]}
|
|
@@ -20,8 +20,11 @@ import { needsPortalRepropagation, Portal } from "@tamagui/portal";
|
|
|
20
20
|
import React, { useState } from "react";
|
|
21
21
|
import { Dimensions, Keyboard, PanResponder, View } from "react-native-web";
|
|
22
22
|
import { ParentSheetContext, SheetInsideSheetContext } from "./contexts";
|
|
23
|
+
import { GestureDetectorWrapper } from "./GestureDetectorWrapper";
|
|
24
|
+
import { GestureSheetProvider } from "./GestureSheetContext";
|
|
23
25
|
import { resisted } from "./helpers";
|
|
24
26
|
import { SheetProvider } from "./SheetContext";
|
|
27
|
+
import { useGestureHandlerPan } from "./useGestureHandlerPan";
|
|
25
28
|
import { useSheetOpenState } from "./useSheetOpenState";
|
|
26
29
|
import { useSheetProviderProps } from "./useSheetProviderProps";
|
|
27
30
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -69,19 +72,11 @@ const relativeDimensionTo = isWeb ? "window" : "screen", SheetImplementationCust
|
|
|
69
72
|
React.useEffect(() => {
|
|
70
73
|
open && frameSize && (stableFrameSize.current = frameSize);
|
|
71
74
|
}, [open, frameSize]);
|
|
72
|
-
const positions = React.useMemo(
|
|
75
|
+
const effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize, positions = React.useMemo(
|
|
73
76
|
() => snapPoints.map(
|
|
74
|
-
(point) => (
|
|
75
|
-
// FIX: Use stable frameSize when closing to prevent position jumps
|
|
76
|
-
getYPositions(
|
|
77
|
-
snapPointsMode,
|
|
78
|
-
point,
|
|
79
|
-
screenSize,
|
|
80
|
-
open ? frameSize : stableFrameSize.current
|
|
81
|
-
)
|
|
82
|
-
)
|
|
77
|
+
(point) => getYPositions(snapPointsMode, point, screenSize, effectiveFrameSize)
|
|
83
78
|
),
|
|
84
|
-
[screenSize,
|
|
79
|
+
[screenSize, effectiveFrameSize, snapPoints, snapPointsMode]
|
|
85
80
|
), { useAnimatedNumber, useAnimatedNumberStyle, useAnimatedNumberReaction } = animationDriver, AnimatedView = animationDriver.View ?? TamaguiView;
|
|
86
81
|
useIsomorphicLayoutEffect(() => {
|
|
87
82
|
if (sheetInsideSheet && open)
|
|
@@ -103,8 +98,10 @@ const relativeDimensionTo = isWeb ? "window" : "screen", SheetImplementationCust
|
|
|
103
98
|
React.useCallback(
|
|
104
99
|
(value) => {
|
|
105
100
|
at.current = value, scrollBridge.paneY = value;
|
|
101
|
+
const minY = positions[0], wasAtTop = scrollBridge.isAtTop, nowAtTop = value <= minY + 5;
|
|
102
|
+
wasAtTop !== nowAtTop && (scrollBridge.isAtTop = nowAtTop, nowAtTop ? (scrollBridge.scrollLockY = void 0, scrollBridge.setScrollEnabled?.(!0)) : (scrollBridge.scrollLockY = 0, scrollBridge.setScrollEnabled?.(!1)));
|
|
106
103
|
},
|
|
107
|
-
[animationDriver]
|
|
104
|
+
[animationDriver, positions]
|
|
108
105
|
)
|
|
109
106
|
);
|
|
110
107
|
function stopSpring() {
|
|
@@ -134,9 +131,12 @@ const relativeDimensionTo = isWeb ? "window" : "screen", SheetImplementationCust
|
|
|
134
131
|
);
|
|
135
132
|
return;
|
|
136
133
|
}
|
|
137
|
-
disableAnimation
|
|
134
|
+
if (!disableAnimation && !(!frameSize || !screenSize || isHidden || hasntMeasured && !open) && (animateTo(position), position === -1 && (scrollBridge.scrollLock = !1, scrollBridge.scrollStartY = -1), open && position >= 0)) {
|
|
135
|
+
const isTopPosition = position === 0;
|
|
136
|
+
scrollBridge.isAtTop = isTopPosition, isTopPosition ? (scrollBridge.scrollLockY = void 0, scrollBridge.setScrollEnabled?.(!0)) : (scrollBridge.scrollLockY = 0, scrollBridge.setScrollEnabled?.(!1));
|
|
137
|
+
}
|
|
138
138
|
}, [hasntMeasured, disableAnimation, isHidden, frameSize, screenSize, open, position]);
|
|
139
|
-
const disableDrag = props.disableDrag ?? controller?.disableDrag, themeName = useThemeName(), [isDragging, setIsDragging] = React.useState(!1), panResponder = React.useMemo(() => {
|
|
139
|
+
const disableDrag = props.disableDrag ?? controller?.disableDrag, themeName = useThemeName(), [isDragging, setIsDragging] = React.useState(!1), [blockPan, setBlockPan] = React.useState(!1), panResponder = React.useMemo(() => {
|
|
140
140
|
if (disableDrag || !frameSize || isShowingInnerSheet) return;
|
|
141
141
|
const minY = positions[0];
|
|
142
142
|
scrollBridge.paneMinY = minY;
|
|
@@ -198,7 +198,22 @@ const relativeDimensionTo = isWeb ? "window" : "screen", SheetImplementationCust
|
|
|
198
198
|
onPanResponderTerminate: finish,
|
|
199
199
|
onPanResponderRelease: finish
|
|
200
200
|
});
|
|
201
|
-
}, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]),
|
|
201
|
+
}, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]), { panGesture, panGestureRef, gestureHandlerEnabled } = useGestureHandlerPan({
|
|
202
|
+
positions,
|
|
203
|
+
frameSize,
|
|
204
|
+
setPosition,
|
|
205
|
+
animateTo,
|
|
206
|
+
stopSpring,
|
|
207
|
+
scrollBridge,
|
|
208
|
+
setIsDragging,
|
|
209
|
+
getCurrentPosition: () => at.current,
|
|
210
|
+
resisted,
|
|
211
|
+
disableDrag,
|
|
212
|
+
isShowingInnerSheet,
|
|
213
|
+
setAnimatedPosition: (val) => {
|
|
214
|
+
animatedNumber.setValue(val, { type: "direct" });
|
|
215
|
+
}
|
|
216
|
+
}), handleAnimationViewLayout = React.useCallback(
|
|
202
217
|
(e) => {
|
|
203
218
|
if (!open && stableFrameSize.current !== 0)
|
|
204
219
|
return;
|
|
@@ -258,49 +273,59 @@ const relativeDimensionTo = isWeb ? "window" : "screen", SheetImplementationCust
|
|
|
258
273
|
) : maxSnapPoint, setHasScrollView = React.useCallback((val) => {
|
|
259
274
|
hasScrollView.current = val;
|
|
260
275
|
}, []);
|
|
261
|
-
let contents = /* @__PURE__ */ jsx(LayoutMeasurementController, { disable: !open, children: /* @__PURE__ */ jsx(ParentSheetContext.Provider, { value: nextParentContext, children: /* @__PURE__ */
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
pointerEvents: "none"
|
|
274
|
-
},
|
|
275
|
-
onLayout: handleMaxContentViewLayout
|
|
276
|
-
}
|
|
277
|
-
),
|
|
278
|
-
/* @__PURE__ */ jsx(
|
|
279
|
-
AnimatedView,
|
|
280
|
-
{
|
|
281
|
-
ref,
|
|
282
|
-
...panResponder?.panHandlers,
|
|
283
|
-
onLayout: handleAnimationViewLayout,
|
|
284
|
-
transition: isDragging || disableAnimation ? null : transition,
|
|
285
|
-
disableClassName: !0,
|
|
286
|
-
style: [
|
|
276
|
+
let contents = /* @__PURE__ */ jsx(LayoutMeasurementController, { disable: !open, children: /* @__PURE__ */ jsx(ParentSheetContext.Provider, { value: nextParentContext, children: /* @__PURE__ */ jsx(SheetProvider, { ...providerProps, setHasScrollView, children: /* @__PURE__ */ jsxs(
|
|
277
|
+
GestureSheetProvider,
|
|
278
|
+
{
|
|
279
|
+
isDragging,
|
|
280
|
+
blockPan,
|
|
281
|
+
setBlockPan,
|
|
282
|
+
panGesture,
|
|
283
|
+
panGestureRef,
|
|
284
|
+
children: [
|
|
285
|
+
/* @__PURE__ */ jsx(AnimatePresence, { custom: { open }, children: shouldHideParentSheet || !open ? null : overlayComponent }),
|
|
286
|
+
snapPointsMode !== "percent" && /* @__PURE__ */ jsx(
|
|
287
|
+
View,
|
|
287
288
|
{
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
289
|
+
style: {
|
|
290
|
+
opacity: 0,
|
|
291
|
+
position: "absolute",
|
|
292
|
+
top: 0,
|
|
293
|
+
left: 0,
|
|
294
|
+
right: 0,
|
|
295
|
+
bottom: 0,
|
|
295
296
|
pointerEvents: "none"
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
297
|
+
},
|
|
298
|
+
onLayout: handleMaxContentViewLayout
|
|
299
|
+
}
|
|
300
|
+
),
|
|
301
|
+
/* @__PURE__ */ jsx(
|
|
302
|
+
AnimatedView,
|
|
303
|
+
{
|
|
304
|
+
ref,
|
|
305
|
+
...!gestureHandlerEnabled && panResponder?.panHandlers,
|
|
306
|
+
onLayout: handleAnimationViewLayout,
|
|
307
|
+
transition: isDragging || disableAnimation ? null : transition,
|
|
308
|
+
disableClassName: !0,
|
|
309
|
+
style: [
|
|
310
|
+
{
|
|
311
|
+
position: "absolute",
|
|
312
|
+
zIndex,
|
|
313
|
+
width: "100%",
|
|
314
|
+
height: forcedContentHeight,
|
|
315
|
+
minHeight: forcedContentHeight,
|
|
316
|
+
opacity: shouldHideParentSheet ? 0 : opacity,
|
|
317
|
+
...(shouldHideParentSheet || !open) && {
|
|
318
|
+
pointerEvents: "none"
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
animatedStyle
|
|
322
|
+
],
|
|
323
|
+
children: gestureHandlerEnabled && panGesture ? /* @__PURE__ */ jsx(GestureDetectorWrapper, { gesture: panGesture, style: { flex: 1 }, children: props.children }) : props.children
|
|
324
|
+
}
|
|
325
|
+
)
|
|
326
|
+
]
|
|
327
|
+
}
|
|
328
|
+
) }) }) });
|
|
304
329
|
const shouldMountChildren = unmountChildrenWhenHidden ? !!opacity : !0;
|
|
305
330
|
if (modal) {
|
|
306
331
|
const modalContents = /* @__PURE__ */ jsx(Portal, { stackZIndex: zIndex, ...portalProps, children: shouldMountChildren && /* @__PURE__ */ jsx(ContainerComponent, { children: /* @__PURE__ */ jsx(Theme, { contain: !0, forceClassName: !0, name: themeName, children: contents }) }) });
|
|
@@ -310,7 +335,8 @@ const relativeDimensionTo = isWeb ? "window" : "screen", SheetImplementationCust
|
|
|
310
335
|
}
|
|
311
336
|
);
|
|
312
337
|
function getYPositions(mode, point, screenSize, frameSize) {
|
|
313
|
-
if (!screenSize || !frameSize)
|
|
338
|
+
if (!screenSize || !frameSize)
|
|
339
|
+
return 0;
|
|
314
340
|
if (mode === "mixed") {
|
|
315
341
|
if (typeof point == "number")
|
|
316
342
|
return screenSize - Math.min(screenSize, Math.max(0, point));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SheetImplementationCustom.tsx"],
|
|
4
|
-
"mappings": "AAAA,OAAqD;AACrD,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAChC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,0BAA0B,cAAc;AACjD,OAAO,SAAS,gBAAgB;AAOhC,SAAS,YAAY,UAAU,cAAc,YAAY;AACzD,SAAS,oBAAoB,+BAA+B;AAC5D,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAE9B,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["position", "state", "pct"]
|
|
6
6
|
}
|
|
@@ -6,8 +6,11 @@ import { needsPortalRepropagation, Portal } from "@tamagui/portal";
|
|
|
6
6
|
import React, { useState } from "react";
|
|
7
7
|
import { Dimensions, Keyboard, PanResponder, View } from "react-native-web";
|
|
8
8
|
import { ParentSheetContext, SheetInsideSheetContext } from "./contexts.mjs";
|
|
9
|
+
import { GestureDetectorWrapper } from "./GestureDetectorWrapper.mjs";
|
|
10
|
+
import { GestureSheetProvider } from "./GestureSheetContext.mjs";
|
|
9
11
|
import { resisted } from "./helpers.mjs";
|
|
10
12
|
import { SheetProvider } from "./SheetContext.mjs";
|
|
13
|
+
import { useGestureHandlerPan } from "./useGestureHandlerPan.mjs";
|
|
11
14
|
import { useSheetOpenState } from "./useSheetOpenState.mjs";
|
|
12
15
|
import { useSheetProviderProps } from "./useSheetProviderProps.mjs";
|
|
13
16
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -73,9 +76,8 @@ const relativeDimensionTo = isWeb ? "window" : "screen",
|
|
|
73
76
|
React.useEffect(() => {
|
|
74
77
|
open && frameSize && (stableFrameSize.current = frameSize);
|
|
75
78
|
}, [open, frameSize]);
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
getYPositions(snapPointsMode, point, screenSize, open ? frameSize : stableFrameSize.current)), [screenSize, frameSize, snapPoints, snapPointsMode, open]),
|
|
79
|
+
const effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize,
|
|
80
|
+
positions = React.useMemo(() => snapPoints.map(point => getYPositions(snapPointsMode, point, screenSize, effectiveFrameSize)), [screenSize, effectiveFrameSize, snapPoints, snapPointsMode]),
|
|
79
81
|
{
|
|
80
82
|
useAnimatedNumber,
|
|
81
83
|
useAnimatedNumberStyle,
|
|
@@ -101,7 +103,11 @@ const relativeDimensionTo = isWeb ? "window" : "screen",
|
|
|
101
103
|
hostRef: sheetRef
|
|
102
104
|
}, React.useCallback(value => {
|
|
103
105
|
at.current = value, scrollBridge.paneY = value;
|
|
104
|
-
|
|
106
|
+
const minY = positions[0],
|
|
107
|
+
wasAtTop = scrollBridge.isAtTop,
|
|
108
|
+
nowAtTop = value <= minY + 5;
|
|
109
|
+
wasAtTop !== nowAtTop && (scrollBridge.isAtTop = nowAtTop, nowAtTop ? (scrollBridge.scrollLockY = void 0, scrollBridge.setScrollEnabled?.(!0)) : (scrollBridge.scrollLockY = 0, scrollBridge.setScrollEnabled?.(!1)));
|
|
110
|
+
}, [animationDriver, positions]));
|
|
105
111
|
function stopSpring() {
|
|
106
112
|
animatedNumber.stop(), scrollBridge.onFinishAnimate && (scrollBridge.onFinishAnimate(), scrollBridge.onFinishAnimate = void 0);
|
|
107
113
|
}
|
|
@@ -125,11 +131,15 @@ const relativeDimensionTo = isWeb ? "window" : "screen",
|
|
|
125
131
|
});
|
|
126
132
|
return;
|
|
127
133
|
}
|
|
128
|
-
disableAnimation
|
|
134
|
+
if (!disableAnimation && !(!frameSize || !screenSize || isHidden || hasntMeasured && !open) && (animateTo(position), position === -1 && (scrollBridge.scrollLock = !1, scrollBridge.scrollStartY = -1), open && position >= 0)) {
|
|
135
|
+
const isTopPosition = position === 0;
|
|
136
|
+
scrollBridge.isAtTop = isTopPosition, isTopPosition ? (scrollBridge.scrollLockY = void 0, scrollBridge.setScrollEnabled?.(!0)) : (scrollBridge.scrollLockY = 0, scrollBridge.setScrollEnabled?.(!1));
|
|
137
|
+
}
|
|
129
138
|
}, [hasntMeasured, disableAnimation, isHidden, frameSize, screenSize, open, position]);
|
|
130
139
|
const disableDrag = props.disableDrag ?? controller?.disableDrag,
|
|
131
140
|
themeName = useThemeName(),
|
|
132
141
|
[isDragging, setIsDragging] = React.useState(!1),
|
|
142
|
+
[blockPan, setBlockPan] = React.useState(!1),
|
|
133
143
|
panResponder = React.useMemo(() => {
|
|
134
144
|
if (disableDrag || !frameSize || isShowingInnerSheet) return;
|
|
135
145
|
const minY = positions[0];
|
|
@@ -206,6 +216,28 @@ const relativeDimensionTo = isWeb ? "window" : "screen",
|
|
|
206
216
|
onPanResponderRelease: finish
|
|
207
217
|
});
|
|
208
218
|
}, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]),
|
|
219
|
+
{
|
|
220
|
+
panGesture,
|
|
221
|
+
panGestureRef,
|
|
222
|
+
gestureHandlerEnabled
|
|
223
|
+
} = useGestureHandlerPan({
|
|
224
|
+
positions,
|
|
225
|
+
frameSize,
|
|
226
|
+
setPosition,
|
|
227
|
+
animateTo,
|
|
228
|
+
stopSpring,
|
|
229
|
+
scrollBridge,
|
|
230
|
+
setIsDragging,
|
|
231
|
+
getCurrentPosition: () => at.current,
|
|
232
|
+
resisted,
|
|
233
|
+
disableDrag,
|
|
234
|
+
isShowingInnerSheet,
|
|
235
|
+
setAnimatedPosition: val => {
|
|
236
|
+
animatedNumber.setValue(val, {
|
|
237
|
+
type: "direct"
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
}),
|
|
209
241
|
handleAnimationViewLayout = React.useCallback(e => {
|
|
210
242
|
if (!open && stableFrameSize.current !== 0) return;
|
|
211
243
|
const layoutHeight = e.nativeEvent?.layout.height,
|
|
@@ -265,44 +297,57 @@ const relativeDimensionTo = isWeb ? "window" : "screen",
|
|
|
265
297
|
disable: !open,
|
|
266
298
|
children: /* @__PURE__ */jsx(ParentSheetContext.Provider, {
|
|
267
299
|
value: nextParentContext,
|
|
268
|
-
children: /* @__PURE__ */
|
|
300
|
+
children: /* @__PURE__ */jsx(SheetProvider, {
|
|
269
301
|
...providerProps,
|
|
270
302
|
setHasScrollView,
|
|
271
|
-
children:
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
onLayout: handleAnimationViewLayout,
|
|
291
|
-
transition: isDragging || disableAnimation ? null : transition,
|
|
292
|
-
disableClassName: !0,
|
|
293
|
-
style: [{
|
|
294
|
-
position: "absolute",
|
|
295
|
-
zIndex,
|
|
296
|
-
width: "100%",
|
|
297
|
-
height: forcedContentHeight,
|
|
298
|
-
minHeight: forcedContentHeight,
|
|
299
|
-
opacity: shouldHideParentSheet ? 0 : opacity,
|
|
300
|
-
...((shouldHideParentSheet || !open) && {
|
|
303
|
+
children: /* @__PURE__ */jsxs(GestureSheetProvider, {
|
|
304
|
+
isDragging,
|
|
305
|
+
blockPan,
|
|
306
|
+
setBlockPan,
|
|
307
|
+
panGesture,
|
|
308
|
+
panGestureRef,
|
|
309
|
+
children: [/* @__PURE__ */jsx(AnimatePresence, {
|
|
310
|
+
custom: {
|
|
311
|
+
open
|
|
312
|
+
},
|
|
313
|
+
children: shouldHideParentSheet || !open ? null : overlayComponent
|
|
314
|
+
}), snapPointsMode !== "percent" && /* @__PURE__ */jsx(View, {
|
|
315
|
+
style: {
|
|
316
|
+
opacity: 0,
|
|
317
|
+
position: "absolute",
|
|
318
|
+
top: 0,
|
|
319
|
+
left: 0,
|
|
320
|
+
right: 0,
|
|
321
|
+
bottom: 0,
|
|
301
322
|
pointerEvents: "none"
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
323
|
+
},
|
|
324
|
+
onLayout: handleMaxContentViewLayout
|
|
325
|
+
}), /* @__PURE__ */jsx(AnimatedView, {
|
|
326
|
+
ref,
|
|
327
|
+
...(!gestureHandlerEnabled && panResponder?.panHandlers),
|
|
328
|
+
onLayout: handleAnimationViewLayout,
|
|
329
|
+
transition: isDragging || disableAnimation ? null : transition,
|
|
330
|
+
disableClassName: !0,
|
|
331
|
+
style: [{
|
|
332
|
+
position: "absolute",
|
|
333
|
+
zIndex,
|
|
334
|
+
width: "100%",
|
|
335
|
+
height: forcedContentHeight,
|
|
336
|
+
minHeight: forcedContentHeight,
|
|
337
|
+
opacity: shouldHideParentSheet ? 0 : opacity,
|
|
338
|
+
...((shouldHideParentSheet || !open) && {
|
|
339
|
+
pointerEvents: "none"
|
|
340
|
+
})
|
|
341
|
+
}, animatedStyle],
|
|
342
|
+
children: gestureHandlerEnabled && panGesture ? /* @__PURE__ */jsx(GestureDetectorWrapper, {
|
|
343
|
+
gesture: panGesture,
|
|
344
|
+
style: {
|
|
345
|
+
flex: 1
|
|
346
|
+
},
|
|
347
|
+
children: props.children
|
|
348
|
+
}) : props.children
|
|
349
|
+
})]
|
|
350
|
+
})
|
|
306
351
|
})
|
|
307
352
|
})
|
|
308
353
|
});
|