@tamagui/sheet 1.130.1 → 1.130.3
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/SheetImplementationCustom.cjs +8 -12
- package/dist/cjs/SheetImplementationCustom.js +50 -59
- package/dist/cjs/SheetImplementationCustom.js.map +1 -1
- package/dist/cjs/SheetImplementationCustom.native.js +10 -12
- package/dist/cjs/SheetImplementationCustom.native.js.map +2 -2
- package/dist/cjs/SheetScrollView.cjs +26 -10
- package/dist/cjs/SheetScrollView.js +32 -11
- package/dist/cjs/SheetScrollView.js.map +1 -1
- package/dist/cjs/SheetScrollView.native.js +34 -11
- package/dist/cjs/SheetScrollView.native.js.map +2 -2
- package/dist/cjs/createSheet.cjs +1 -1
- package/dist/cjs/createSheet.js +7 -1
- package/dist/cjs/createSheet.js.map +1 -1
- package/dist/cjs/createSheet.native.js +1 -1
- package/dist/cjs/createSheet.native.js.map +1 -1
- package/dist/cjs/nativeSheet.cjs +0 -1
- package/dist/cjs/nativeSheet.js +0 -1
- package/dist/cjs/nativeSheet.js.map +1 -1
- package/dist/cjs/nativeSheet.native.js +0 -1
- package/dist/cjs/nativeSheet.native.js.map +2 -2
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/useSheetOpenState.cjs +2 -2
- package/dist/cjs/useSheetOpenState.js +2 -2
- package/dist/cjs/useSheetOpenState.js.map +1 -1
- package/dist/cjs/useSheetOpenState.native.js +2 -2
- package/dist/cjs/useSheetOpenState.native.js.map +2 -2
- package/dist/cjs/useSheetProviderProps.cjs +22 -11
- package/dist/cjs/useSheetProviderProps.js +23 -13
- package/dist/cjs/useSheetProviderProps.js.map +1 -1
- package/dist/cjs/useSheetProviderProps.native.js +15 -3
- package/dist/cjs/useSheetProviderProps.native.js.map +2 -2
- package/dist/esm/SheetImplementationCustom.js +51 -60
- package/dist/esm/SheetImplementationCustom.js.map +1 -1
- package/dist/esm/SheetImplementationCustom.mjs +9 -13
- package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
- package/dist/esm/SheetImplementationCustom.native.js +11 -14
- package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
- package/dist/esm/SheetScrollView.js +32 -11
- package/dist/esm/SheetScrollView.js.map +1 -1
- package/dist/esm/SheetScrollView.mjs +26 -10
- package/dist/esm/SheetScrollView.mjs.map +1 -1
- package/dist/esm/SheetScrollView.native.js +29 -10
- package/dist/esm/SheetScrollView.native.js.map +1 -1
- package/dist/esm/createSheet.js +7 -1
- package/dist/esm/createSheet.js.map +1 -1
- package/dist/esm/createSheet.mjs +1 -1
- package/dist/esm/createSheet.mjs.map +1 -1
- package/dist/esm/createSheet.native.js +1 -1
- package/dist/esm/createSheet.native.js.map +1 -1
- package/dist/esm/nativeSheet.js +0 -1
- package/dist/esm/nativeSheet.js.map +1 -1
- package/dist/esm/nativeSheet.mjs +0 -1
- package/dist/esm/nativeSheet.mjs.map +1 -1
- package/dist/esm/nativeSheet.native.js +0 -1
- package/dist/esm/nativeSheet.native.js.map +1 -1
- package/dist/esm/useSheetOpenState.js +2 -2
- package/dist/esm/useSheetOpenState.js.map +1 -1
- package/dist/esm/useSheetOpenState.mjs +2 -2
- package/dist/esm/useSheetOpenState.mjs.map +1 -1
- package/dist/esm/useSheetOpenState.native.js +3 -2
- package/dist/esm/useSheetOpenState.native.js.map +1 -1
- package/dist/esm/useSheetProviderProps.js +23 -13
- package/dist/esm/useSheetProviderProps.js.map +1 -1
- package/dist/esm/useSheetProviderProps.mjs +22 -11
- package/dist/esm/useSheetProviderProps.mjs.map +1 -1
- package/dist/esm/useSheetProviderProps.native.js +24 -11
- package/dist/esm/useSheetProviderProps.native.js.map +1 -1
- package/dist/jsx/SheetImplementationCustom.js +51 -60
- package/dist/jsx/SheetImplementationCustom.js.map +1 -1
- package/dist/jsx/SheetImplementationCustom.mjs +9 -13
- package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
- package/dist/jsx/SheetImplementationCustom.native.js +11 -13
- package/dist/jsx/SheetImplementationCustom.native.js.map +2 -2
- package/dist/jsx/SheetScrollView.js +32 -11
- package/dist/jsx/SheetScrollView.js.map +1 -1
- package/dist/jsx/SheetScrollView.mjs +26 -10
- package/dist/jsx/SheetScrollView.mjs.map +1 -1
- package/dist/jsx/SheetScrollView.native.js +34 -11
- package/dist/jsx/SheetScrollView.native.js.map +2 -2
- package/dist/jsx/createSheet.js +7 -1
- package/dist/jsx/createSheet.js.map +1 -1
- package/dist/jsx/createSheet.mjs +1 -1
- package/dist/jsx/createSheet.mjs.map +1 -1
- package/dist/jsx/createSheet.native.js +1 -1
- package/dist/jsx/createSheet.native.js.map +1 -1
- package/dist/jsx/nativeSheet.js +0 -1
- package/dist/jsx/nativeSheet.js.map +1 -1
- package/dist/jsx/nativeSheet.mjs +0 -1
- package/dist/jsx/nativeSheet.mjs.map +1 -1
- package/dist/jsx/nativeSheet.native.js +0 -1
- package/dist/jsx/nativeSheet.native.js.map +2 -2
- package/dist/jsx/useSheetOpenState.js +2 -2
- package/dist/jsx/useSheetOpenState.js.map +1 -1
- package/dist/jsx/useSheetOpenState.mjs +2 -2
- package/dist/jsx/useSheetOpenState.mjs.map +1 -1
- package/dist/jsx/useSheetOpenState.native.js +2 -2
- package/dist/jsx/useSheetOpenState.native.js.map +2 -2
- package/dist/jsx/useSheetProviderProps.js +23 -13
- package/dist/jsx/useSheetProviderProps.js.map +1 -1
- package/dist/jsx/useSheetProviderProps.mjs +22 -11
- package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
- package/dist/jsx/useSheetProviderProps.native.js +15 -3
- package/dist/jsx/useSheetProviderProps.native.js.map +2 -2
- package/package.json +19 -19
- package/src/SheetImplementationCustom.tsx +21 -16
- package/src/SheetScrollView.tsx +56 -16
- package/src/createSheet.tsx +7 -1
- package/src/nativeSheet.tsx +1 -6
- package/src/types.tsx +25 -0
- package/src/useSheetOpenState.tsx +5 -2
- package/src/useSheetProviderProps.tsx +30 -12
- package/types/Sheet.d.ts +1 -0
- package/types/Sheet.d.ts.map +1 -1
- package/types/SheetContext.d.ts +0 -1
- package/types/SheetContext.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 +1 -0
- package/types/createSheet.d.ts.map +1 -1
- package/types/nativeSheet.d.ts.map +1 -1
- package/types/types.d.ts +20 -0
- package/types/types.d.ts.map +1 -1
- package/types/useSheetOpenState.d.ts.map +1 -1
- package/types/useSheetProviderProps.d.ts +0 -1
- package/types/useSheetProviderProps.d.ts.map +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/nativeSheet.tsx"],
|
|
4
|
-
"mappings": ";AAAA,SAASA,cAAc;AAEvB,SAASC,WAAWC,cAAc;AAClC,SAASC,YAAY;AACrB,SAASC,qBAAqB;AAE9B,SAASC,yBAAyB;AAClC,SAASC,6BAA6B;AAMtC,IAAMC,eAAmF;EACvFC,KAAK;AACP;AAEO,SAASC,eAAeC,UAA8B;AAC3D,SAAOH,aAAaG,QAAAA;AACtB;AAEO,SAASC,iBACdD,UACAE,YAAmE;AAEnE,MAAM,EAAEC,gBAAgBC,0BAAyB,IAAKF;AAEtD,EAAIF,aAAa,UACfH,aAAaG,QAAAA,IAAY,SAACK,OAAAA;AACxB,QAAMC,QAAQX,kBAAkBU,KAAAA,GAC1BE,gBAAgBX,sBAAsBS,OAAOC,KAAAA,GAI7C,EAAEE,MAAMC,QAAO,IAAKH,OACpBI,MAAMlB,OAGTmB,MAAAA;AAEHpB,cAAU,WAAA;AACR,UAAIiB,MAAM;YACRE;SAAAA,eAAAA,IAAIE,aAAO,QAAXF,iBAAAA,UAAAA,aAAaG,aAAY;MAC3B,OAAO;YACLH;SAAAA,gBAAAA,IAAIE,aAAO,QAAXF,kBAAAA,UAAAA,cAAaI,aAAY;MAC3B;IACF,GAAG;MAACN;KAAK;AAET,aAASO,gBAAgBC,MAAa;UACpCX;OAAAA,sBAAAA,MAAMY,kBAAY,QAAlBZ,wBAAAA,UAAAA,oBAAAA,KAAAA,OAAqBG,IAAAA,GACrBC,QAAQO,IAAAA;IACV;AAQA,WACE,qBAAA,WAAA;gBACE,sBAACtB,eAAAA;QACCwB,
|
|
5
|
-
"names": ["YStack", "useEffect", "useRef", "View", "SheetProvider", "useSheetOpenState", "useSheetProviderProps", "nativeSheets", "ios", "getNativeSheet", "platform", "setupNativeSheet", "RNIOSModal", "ModalSheetView", "ModalSheetViewMainContent", "props", "state", "providerProps", "open", "setOpen", "ref", "undefined", "current", "presentModal", "dismissModal", "setOpenInternal", "next", "onOpenChange", "
|
|
4
|
+
"mappings": ";AAAA,SAASA,cAAc;AAEvB,SAASC,WAAWC,cAAc;AAClC,SAASC,YAAY;AACrB,SAASC,qBAAqB;AAE9B,SAASC,yBAAyB;AAClC,SAASC,6BAA6B;AAMtC,IAAMC,eAAmF;EACvFC,KAAK;AACP;AAEO,SAASC,eAAeC,UAA8B;AAC3D,SAAOH,aAAaG,QAAAA;AACtB;AAEO,SAASC,iBACdD,UACAE,YAAmE;AAEnE,MAAM,EAAEC,gBAAgBC,0BAAyB,IAAKF;AAEtD,EAAIF,aAAa,UACfH,aAAaG,QAAAA,IAAY,SAACK,OAAAA;AACxB,QAAMC,QAAQX,kBAAkBU,KAAAA,GAC1BE,gBAAgBX,sBAAsBS,OAAOC,KAAAA,GAI7C,EAAEE,MAAMC,QAAO,IAAKH,OACpBI,MAAMlB,OAGTmB,MAAAA;AAEHpB,cAAU,WAAA;AACR,UAAIiB,MAAM;YACRE;SAAAA,eAAAA,IAAIE,aAAO,QAAXF,iBAAAA,UAAAA,aAAaG,aAAY;MAC3B,OAAO;YACLH;SAAAA,gBAAAA,IAAIE,aAAO,QAAXF,kBAAAA,UAAAA,cAAaI,aAAY;MAC3B;IACF,GAAG;MAACN;KAAK;AAET,aAASO,gBAAgBC,MAAa;UACpCX;OAAAA,sBAAAA,MAAMY,kBAAY,QAAlBZ,wBAAAA,UAAAA,oBAAAA,KAAAA,OAAqBG,IAAAA,GACrBC,QAAQO,IAAAA;IACV;AAQA,WACE,qBAAA,WAAA;gBACE,sBAACtB,eAAAA;QACCwB,kBAAkBC;QACjB,GAAGZ;QACJa,eAAa;;UAEb,qBAACjB,gBAAAA;YAAeO;YAAUW,mBAAmB,WAAA;qBAAMN,gBAAgB,EAAA;;sBACjE,qBAACX,2BAAAA;wBACC,qBAACX,MAAAA;gBAAK6B,OAAO;kBAAEC,MAAM;gBAAE;0BAAIlB,MAAMmB;;;;;;UAMrC,qBAAClC,QAAAA;YACCmC,UAAS;YACTC,SAAS;YACTC,eAAc;YACdC,OAAO;YACPC,QAAQ;sBAEPxB,MAAMmB;;;;;EAKjB;AAEJ;AAEA,IAAML,UAAU,WAAA;AAEhB;",
|
|
5
|
+
"names": ["YStack", "useEffect", "useRef", "View", "SheetProvider", "useSheetOpenState", "useSheetProviderProps", "nativeSheets", "ios", "getNativeSheet", "platform", "setupNativeSheet", "RNIOSModal", "ModalSheetView", "ModalSheetViewMainContent", "props", "state", "providerProps", "open", "setOpen", "ref", "undefined", "current", "presentModal", "dismissModal", "setOpenInternal", "next", "onOpenChange", "setHasScrollView", "emptyFn", "onlyShowFrame", "onModalDidDismiss", "style", "flex", "children", "position", "opacity", "pointerEvents", "width", "height"]
|
|
6
6
|
}
|
|
@@ -3,11 +3,11 @@ import { useSheetController } from "./useSheetController";
|
|
|
3
3
|
const useSheetOpenState = (props) => {
|
|
4
4
|
const { isHidden, controller } = useSheetController(), onOpenChangeInternal = (val) => {
|
|
5
5
|
controller?.onOpenChange?.(val), props.onOpenChange?.(val);
|
|
6
|
-
}, propVal = controller?.open ?? props.open, [open, setOpen] = useControllableState({
|
|
6
|
+
}, propVal = props.preferAdaptParentOpenState ? controller?.open ?? props.open : props.open ?? controller?.open, [open, setOpen] = useControllableState({
|
|
7
7
|
prop: propVal,
|
|
8
8
|
defaultProp: props.defaultOpen ?? !1,
|
|
9
9
|
onChange: onOpenChangeInternal,
|
|
10
|
-
strategy: "
|
|
10
|
+
strategy: "most-recent-wins"
|
|
11
11
|
});
|
|
12
12
|
return {
|
|
13
13
|
open,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/useSheetOpenState.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,4BAA4B;AAGrC,SAAS,0BAA0B;AAE5B,MAAM,oBAAoB,CAAC,UAAsB;AACtD,QAAM,EAAE,UAAU,WAAW,IAAI,mBAAmB,GAE9C,uBAAuB,CAAC,QAAiB;AAC7C,gBAAY,eAAe,GAAG,GAC9B,MAAM,eAAe,GAAG;AAAA,EAC1B,GAEM,UAAU,YAAY,QAAQ,MAAM,
|
|
4
|
+
"mappings": "AAAA,SAAS,4BAA4B;AAGrC,SAAS,0BAA0B;AAE5B,MAAM,oBAAoB,CAAC,UAAsB;AACtD,QAAM,EAAE,UAAU,WAAW,IAAI,mBAAmB,GAE9C,uBAAuB,CAAC,QAAiB;AAC7C,gBAAY,eAAe,GAAG,GAC9B,MAAM,eAAe,GAAG;AAAA,EAC1B,GAEM,UAAU,MAAM,6BACjB,YAAY,QAAQ,MAAM,OAC1B,MAAM,QAAQ,YAAY,MAEzB,CAAC,MAAM,OAAO,IAAI,qBAAqB;AAAA,IAC3C,MAAM;AAAA,IACN,aAAa,MAAM,eAAe;AAAA,IAClC,UAAU;AAAA,IACV,UAAU;AAAA,EACZ,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -8,12 +8,12 @@ const useSheetOpenState = props => {
|
|
|
8
8
|
onOpenChangeInternal = val => {
|
|
9
9
|
controller?.onOpenChange?.(val), props.onOpenChange?.(val);
|
|
10
10
|
},
|
|
11
|
-
propVal = controller?.open ?? props.open,
|
|
11
|
+
propVal = props.preferAdaptParentOpenState ? controller?.open ?? props.open : props.open ?? controller?.open,
|
|
12
12
|
[open, setOpen] = useControllableState({
|
|
13
13
|
prop: propVal,
|
|
14
14
|
defaultProp: props.defaultOpen ?? !1,
|
|
15
15
|
onChange: onOpenChangeInternal,
|
|
16
|
-
strategy: "
|
|
16
|
+
strategy: "most-recent-wins"
|
|
17
17
|
});
|
|
18
18
|
return {
|
|
19
19
|
open,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useControllableState","useSheetController","useSheetOpenState","props","isHidden","controller","onOpenChangeInternal","val","onOpenChange","propVal","open","setOpen","prop","defaultProp","defaultOpen","onChange","strategy"],"sources":["../../src/useSheetOpenState.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,oBAAA,QAA4B;AAGrC,SAASC,kBAAA,QAA0B;AAE5B,MAAMC,iBAAA,GAAqBC,KAAA,IAAsB;EACtD,MAAM;MAAEC,QAAA;MAAUC;IAAW,IAAIJ,kBAAA,CAAmB;IAE9CK,oBAAA,GAAwBC,GAAA,IAAiB;MAC7CF,UAAA,EAAYG,YAAA,GAAeD,GAAG,GAC9BJ,KAAA,CAAMK,YAAA,GAAeD,GAAG;IAC1B;IAEME,OAAA,
|
|
1
|
+
{"version":3,"names":["useControllableState","useSheetController","useSheetOpenState","props","isHidden","controller","onOpenChangeInternal","val","onOpenChange","propVal","preferAdaptParentOpenState","open","setOpen","prop","defaultProp","defaultOpen","onChange","strategy"],"sources":["../../src/useSheetOpenState.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,oBAAA,QAA4B;AAGrC,SAASC,kBAAA,QAA0B;AAE5B,MAAMC,iBAAA,GAAqBC,KAAA,IAAsB;EACtD,MAAM;MAAEC,QAAA;MAAUC;IAAW,IAAIJ,kBAAA,CAAmB;IAE9CK,oBAAA,GAAwBC,GAAA,IAAiB;MAC7CF,UAAA,EAAYG,YAAA,GAAeD,GAAG,GAC9BJ,KAAA,CAAMK,YAAA,GAAeD,GAAG;IAC1B;IAEME,OAAA,GAAUN,KAAA,CAAMO,0BAAA,GACjBL,UAAA,EAAYM,IAAA,IAAQR,KAAA,CAAMQ,IAAA,GAC1BR,KAAA,CAAMQ,IAAA,IAAQN,UAAA,EAAYM,IAAA;IAEzB,CAACA,IAAA,EAAMC,OAAO,IAAIZ,oBAAA,CAAqB;MAC3Ca,IAAA,EAAMJ,OAAA;MACNK,WAAA,EAAaX,KAAA,CAAMY,WAAA,IAAe;MAClCC,QAAA,EAAUV,oBAAA;MACVW,QAAA,EAAU;IACZ,CAAC;EAED,OAAO;IACLN,IAAA;IACAC,OAAA;IACAR,QAAA;IACAC;EACF;AACF","ignoreList":[]}
|
|
@@ -4,11 +4,11 @@ var useSheetOpenState = function(props) {
|
|
|
4
4
|
var { isHidden, controller } = useSheetController(), onOpenChangeInternal = function(val) {
|
|
5
5
|
var _controller_onOpenChange, _props_onOpenChange;
|
|
6
6
|
controller == null || (_controller_onOpenChange = controller.onOpenChange) === null || _controller_onOpenChange === void 0 || _controller_onOpenChange.call(controller, val), (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 || _props_onOpenChange.call(props, val);
|
|
7
|
-
}, _controller_open, propVal = (_controller_open = controller == null ? void 0 : controller.open) !== null && _controller_open !== void 0 ? _controller_open : props.open, _props_defaultOpen, [open, setOpen] = useControllableState({
|
|
7
|
+
}, _controller_open, _props_open, propVal = props.preferAdaptParentOpenState ? (_controller_open = controller == null ? void 0 : controller.open) !== null && _controller_open !== void 0 ? _controller_open : props.open : (_props_open = props.open) !== null && _props_open !== void 0 ? _props_open : controller == null ? void 0 : controller.open, _props_defaultOpen, [open, setOpen] = useControllableState({
|
|
8
8
|
prop: propVal,
|
|
9
9
|
defaultProp: (_props_defaultOpen = props.defaultOpen) !== null && _props_defaultOpen !== void 0 ? _props_defaultOpen : !1,
|
|
10
10
|
onChange: onOpenChangeInternal,
|
|
11
|
-
strategy: "
|
|
11
|
+
strategy: "most-recent-wins"
|
|
12
12
|
});
|
|
13
13
|
return {
|
|
14
14
|
open,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/useSheetOpenState.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAASA,4BAA4B;AAGrC,SAASC,0BAA0B;AAE5B,IAAMC,oBAAoB,SAACC,OAAAA;AAChC,MAAM,EAAEC,UAAUC,WAAU,IAAKJ,mBAAAA,GAE3BK,uBAAuB,SAACC,KAAAA;QAC5BF,0BACAF;AADAE,kBAAAA,SAAAA,2BAAAA,WAAYG,kBAAY,QAAxBH,6BAAAA,UAAAA,yBAAAA,KAAAA,YAA2BE,GAAAA,IAC3BJ,sBAAAA,MAAMK,kBAAY,QAAlBL,wBAAAA,UAAAA,oBAAAA,KAAAA,OAAqBI,GAAAA;EACvB,
|
|
5
|
-
"names": ["useControllableState", "useSheetController", "useSheetOpenState", "props", "isHidden", "controller", "onOpenChangeInternal", "val", "onOpenChange", "propVal", "open", "setOpen", "prop", "defaultProp", "defaultOpen", "onChange", "strategy"]
|
|
4
|
+
"mappings": "AAAA,SAASA,4BAA4B;AAGrC,SAASC,0BAA0B;AAE5B,IAAMC,oBAAoB,SAACC,OAAAA;AAChC,MAAM,EAAEC,UAAUC,WAAU,IAAKJ,mBAAAA,GAE3BK,uBAAuB,SAACC,KAAAA;QAC5BF,0BACAF;AADAE,kBAAAA,SAAAA,2BAAAA,WAAYG,kBAAY,QAAxBH,6BAAAA,UAAAA,yBAAAA,KAAAA,YAA2BE,GAAAA,IAC3BJ,sBAAAA,MAAMK,kBAAY,QAAlBL,wBAAAA,UAAAA,oBAAAA,KAAAA,OAAqBI,GAAAA;EACvB,GAGKF,kBACAF,aAFCM,UAAUN,MAAMO,8BACjBL,mBAAAA,cAAAA,OAAAA,SAAAA,WAAYM,UAAI,QAAhBN,qBAAAA,SAAAA,mBAAoBF,MAAMQ,QAC1BR,cAAAA,MAAMQ,UAAI,QAAVR,gBAAAA,SAAAA,cAAcE,cAAAA,OAAAA,SAAAA,WAAYM,MAIhBR,oBAFT,CAACQ,MAAMC,OAAAA,IAAWZ,qBAAqB;IAC3Ca,MAAMJ;IACNK,cAAaX,qBAAAA,MAAMY,iBAAW,QAAjBZ,uBAAAA,SAAAA,qBAAqB;IAClCa,UAAUV;IACVW,UAAU;EACZ,CAAA;AAEA,SAAO;IACLN;IACAC;IACAR;IACAC;EACF;AACF;",
|
|
5
|
+
"names": ["useControllableState", "useSheetController", "useSheetOpenState", "props", "isHidden", "controller", "onOpenChangeInternal", "val", "onOpenChange", "propVal", "preferAdaptParentOpenState", "open", "setOpen", "prop", "defaultProp", "defaultOpen", "onChange", "strategy"]
|
|
6
6
|
}
|
|
@@ -10,7 +10,7 @@ function useSheetProviderProps(props, state, options = {}) {
|
|
|
10
10
|
prop: props.position,
|
|
11
11
|
defaultProp: props.defaultPosition || (state.open ? 0 : -1),
|
|
12
12
|
onChange: props.onPositionChange,
|
|
13
|
-
strategy: "
|
|
13
|
+
strategy: "most-recent-wins"
|
|
14
14
|
}), position = state.open === !1 ? -1 : position_, { open } = state, setPosition = React.useCallback(
|
|
15
15
|
(next) => {
|
|
16
16
|
props.dismissOnSnapToBottom && next === snapPoints.length - 1 ? state.setOpen(!1) : setPositionImmediate(next);
|
|
@@ -48,18 +48,28 @@ function useSheetProviderProps(props, state, options = {}) {
|
|
|
48
48
|
throw new Error(
|
|
49
49
|
process.env.NODE_ENV === "production" ? "\u274C 008" : "Must set animations in tamagui.config.ts"
|
|
50
50
|
);
|
|
51
|
-
const scrollBridge = useConstant(() =>
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
51
|
+
const scrollBridge = useConstant(() => {
|
|
52
|
+
const parentDragListeners = /* @__PURE__ */ new Set(), bridge = {
|
|
53
|
+
enabled: !1,
|
|
54
|
+
y: 0,
|
|
55
|
+
paneY: 0,
|
|
56
|
+
paneMinY: 0,
|
|
57
|
+
scrollStartY: -1,
|
|
58
|
+
drag: () => {
|
|
59
|
+
},
|
|
60
|
+
release: () => {
|
|
61
|
+
},
|
|
62
|
+
scrollLock: !1,
|
|
63
|
+
isParentDragging: !1,
|
|
64
|
+
onParentDragging: (cb) => (parentDragListeners.add(cb), () => {
|
|
65
|
+
parentDragListeners.delete(cb);
|
|
66
|
+
}),
|
|
67
|
+
setParentDragging: (val) => {
|
|
68
|
+
val !== bridge.isParentDragging && (bridge.isParentDragging = val, parentDragListeners.forEach((cb) => cb(val)));
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
return bridge;
|
|
72
|
+
}), removeScrollEnabled = props.forceRemoveScrollEnabled ?? (open && props.modal), maxSnapPoint = snapPoints[0];
|
|
63
73
|
return {
|
|
64
74
|
screenSize: snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint == "number" ? maxSnapPoint : 100) / 100) : maxContentSize,
|
|
65
75
|
maxSnapPoint,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/useSheetProviderProps.tsx"],
|
|
4
|
-
"mappings": "AAAA,OAAO,WAAW;AAElB,SAAS,wBAAwB;AACjC,SAAS,mBAAmB;AAC5B,SAAS,4BAA4B;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -15,7 +15,7 @@ function useSheetProviderProps(props, state, options = {}) {
|
|
|
15
15
|
prop: props.position,
|
|
16
16
|
defaultProp: props.defaultPosition || (state.open ? 0 : -1),
|
|
17
17
|
onChange: props.onPositionChange,
|
|
18
|
-
strategy: "
|
|
18
|
+
strategy: "most-recent-wins"
|
|
19
19
|
}),
|
|
20
20
|
position = state.open === !1 ? -1 : position_,
|
|
21
21
|
{
|
|
@@ -43,16 +43,27 @@ function useSheetProviderProps(props, state, options = {}) {
|
|
|
43
43
|
animationDriver
|
|
44
44
|
} = useConfiguration();
|
|
45
45
|
if (!animationDriver) throw new Error(process.env.NODE_ENV === "production" ? "\u274C 008" : "Must set animations in tamagui.config.ts");
|
|
46
|
-
const scrollBridge = useConstant(() =>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
46
|
+
const scrollBridge = useConstant(() => {
|
|
47
|
+
const parentDragListeners = /* @__PURE__ */new Set(),
|
|
48
|
+
bridge = {
|
|
49
|
+
enabled: !1,
|
|
50
|
+
y: 0,
|
|
51
|
+
paneY: 0,
|
|
52
|
+
paneMinY: 0,
|
|
53
|
+
scrollStartY: -1,
|
|
54
|
+
drag: () => {},
|
|
55
|
+
release: () => {},
|
|
56
|
+
scrollLock: !1,
|
|
57
|
+
isParentDragging: !1,
|
|
58
|
+
onParentDragging: cb => (parentDragListeners.add(cb), () => {
|
|
59
|
+
parentDragListeners.delete(cb);
|
|
60
|
+
}),
|
|
61
|
+
setParentDragging: val => {
|
|
62
|
+
val !== bridge.isParentDragging && (bridge.isParentDragging = val, parentDragListeners.forEach(cb => cb(val)));
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
return bridge;
|
|
66
|
+
}),
|
|
56
67
|
removeScrollEnabled = props.forceRemoveScrollEnabled ?? (open && props.modal),
|
|
57
68
|
maxSnapPoint = snapPoints[0];
|
|
58
69
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useConfiguration","useConstant","useControllableState","useSheetProviderProps","props","state","options","handleRef","useRef","contentRef","frameSize","setFrameSize","useState","maxContentSize","setMaxContentSize","snapPointsMode","snapPointsProp","snapPoints","hasFit","useMemo","dismissOnSnapToBottom","JSON","stringify","position_","setPositionImmediate","prop","position","defaultProp","defaultPosition","open","onChange","onPositionChange","strategy","setPosition","useCallback","next","length","setOpen","process","env","NODE_ENV","some","p","endsWith","n","Number","slice","console","warn","indexOf","shouldSetPositionOpen","useEffect","animationDriver","Error","scrollBridge","enabled","y","paneY","paneMinY","scrollStartY","drag","release","scrollLock","removeScrollEnabled","forceRemoveScrollEnabled","modal","maxSnapPoint","screenSize","hidden","isHidden","dismissOnOverlayPress","onOverlayComponent","scope","__scopeSheet","onlyShowFrame"],"sources":["../../src/useSheetProviderProps.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAElB,SAASC,gBAAA,QAAwB;AACjC,SAASC,WAAA,QAAmB;AAC5B,SAASC,oBAAA,QAA4B;
|
|
1
|
+
{"version":3,"names":["React","useConfiguration","useConstant","useControllableState","useSheetProviderProps","props","state","options","handleRef","useRef","contentRef","frameSize","setFrameSize","useState","maxContentSize","setMaxContentSize","snapPointsMode","snapPointsProp","snapPoints","hasFit","useMemo","dismissOnSnapToBottom","JSON","stringify","position_","setPositionImmediate","prop","position","defaultProp","defaultPosition","open","onChange","onPositionChange","strategy","setPosition","useCallback","next","length","setOpen","process","env","NODE_ENV","some","p","endsWith","n","Number","slice","console","warn","indexOf","shouldSetPositionOpen","useEffect","animationDriver","Error","scrollBridge","parentDragListeners","Set","bridge","enabled","y","paneY","paneMinY","scrollStartY","drag","release","scrollLock","isParentDragging","onParentDragging","cb","add","delete","setParentDragging","val","forEach","removeScrollEnabled","forceRemoveScrollEnabled","modal","maxSnapPoint","screenSize","hidden","isHidden","dismissOnOverlayPress","onOverlayComponent","scope","__scopeSheet","onlyShowFrame"],"sources":["../../src/useSheetProviderProps.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -21,7 +21,7 @@ function useSheetProviderProps(props, state) {
|
|
|
21
21
|
prop: props.position,
|
|
22
22
|
defaultProp: props.defaultPosition || (state.open ? 0 : -1),
|
|
23
23
|
onChange: props.onPositionChange,
|
|
24
|
-
strategy: "
|
|
24
|
+
strategy: "most-recent-wins"
|
|
25
25
|
}), position = state.open === !1 ? -1 : position_, { open } = state, setPosition = React.useCallback(function(next) {
|
|
26
26
|
props.dismissOnSnapToBottom && next === snapPoints.length - 1 ? state.setOpen(!1) : setPositionImmediate(next);
|
|
27
27
|
}, [
|
|
@@ -57,7 +57,7 @@ function useSheetProviderProps(props, state) {
|
|
|
57
57
|
if (!animationDriver)
|
|
58
58
|
throw new Error(process.env.NODE_ENV === "production" ? "\u274C 008" : "Must set animations in tamagui.config.ts");
|
|
59
59
|
var scrollBridge = useConstant(function() {
|
|
60
|
-
|
|
60
|
+
var parentDragListeners = /* @__PURE__ */ new Set(), bridge = {
|
|
61
61
|
enabled: !1,
|
|
62
62
|
y: 0,
|
|
63
63
|
paneY: 0,
|
|
@@ -67,8 +67,20 @@ function useSheetProviderProps(props, state) {
|
|
|
67
67
|
},
|
|
68
68
|
release: function() {
|
|
69
69
|
},
|
|
70
|
-
scrollLock: !1
|
|
70
|
+
scrollLock: !1,
|
|
71
|
+
isParentDragging: !1,
|
|
72
|
+
onParentDragging: function(cb) {
|
|
73
|
+
return parentDragListeners.add(cb), function() {
|
|
74
|
+
parentDragListeners.delete(cb);
|
|
75
|
+
};
|
|
76
|
+
},
|
|
77
|
+
setParentDragging: function(val) {
|
|
78
|
+
val !== bridge.isParentDragging && (bridge.isParentDragging = val, parentDragListeners.forEach(function(cb) {
|
|
79
|
+
return cb(val);
|
|
80
|
+
}));
|
|
81
|
+
}
|
|
71
82
|
};
|
|
83
|
+
return bridge;
|
|
72
84
|
}), _props_forceRemoveScrollEnabled, removeScrollEnabled = (_props_forceRemoveScrollEnabled = props.forceRemoveScrollEnabled) !== null && _props_forceRemoveScrollEnabled !== void 0 ? _props_forceRemoveScrollEnabled : open && props.modal, maxSnapPoint = snapPoints[0], screenSize = snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint == "number" ? maxSnapPoint : 100) / 100) : maxContentSize, _props_dismissOnOverlayPress, _props_dismissOnSnapToBottom, providerProps = {
|
|
73
85
|
screenSize,
|
|
74
86
|
maxSnapPoint,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/useSheetProviderProps.tsx"],
|
|
4
|
-
"mappings": "AAAA,OAAOA,WAAW;AAElB,SAASC,wBAAwB;AACjC,SAASC,mBAAmB;AAC5B,SAASC,4BAA4B;
|
|
5
|
-
"names": ["React", "useConfiguration", "useConstant", "useControllableState", "useSheetProviderProps", "props", "state", "options", "handleRef", "useRef", "contentRef", "frameSize", "setFrameSize", "useState", "maxContentSize", "setMaxContentSize", "snapPointsMode", "snapPointsProp", "snapPoints", "hasFit", "useMemo", "dismissOnSnapToBottom", "JSON", "stringify", "position_", "setPositionImmediate", "prop", "position", "defaultProp", "defaultPosition", "open", "onChange", "onPositionChange", "strategy", "setPosition", "useCallback", "next", "length", "setOpen", "process", "env", "NODE_ENV", "some", "p", "endsWith", "n", "Number", "slice", "console", "warn", "indexOf", "shouldSetPositionOpen", "useEffect", "animationDriver", "Error", "scrollBridge", "enabled", "y", "paneY", "paneMinY", "scrollStartY", "drag", "release", "scrollLock", "removeScrollEnabled", "forceRemoveScrollEnabled", "modal", "maxSnapPoint", "screenSize", "providerProps", "hidden", "isHidden", "dismissOnOverlayPress", "onOverlayComponent", "scope", "__scopeSheet", "onlyShowFrame"]
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["React", "useConfiguration", "useConstant", "useControllableState", "useSheetProviderProps", "props", "state", "options", "handleRef", "useRef", "contentRef", "frameSize", "setFrameSize", "useState", "maxContentSize", "setMaxContentSize", "snapPointsMode", "snapPointsProp", "snapPoints", "hasFit", "useMemo", "dismissOnSnapToBottom", "JSON", "stringify", "position_", "setPositionImmediate", "prop", "position", "defaultProp", "defaultPosition", "open", "onChange", "onPositionChange", "strategy", "setPosition", "useCallback", "next", "length", "setOpen", "process", "env", "NODE_ENV", "some", "p", "endsWith", "n", "Number", "slice", "console", "warn", "indexOf", "shouldSetPositionOpen", "useEffect", "animationDriver", "Error", "scrollBridge", "parentDragListeners", "Set", "bridge", "enabled", "y", "paneY", "paneMinY", "scrollStartY", "drag", "release", "scrollLock", "isParentDragging", "onParentDragging", "cb", "add", "delete", "setParentDragging", "val", "forEach", "removeScrollEnabled", "forceRemoveScrollEnabled", "modal", "maxSnapPoint", "screenSize", "providerProps", "hidden", "isHidden", "dismissOnOverlayPress", "onOverlayComponent", "scope", "__scopeSheet", "onlyShowFrame"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/sheet",
|
|
3
|
-
"version": "1.130.
|
|
3
|
+
"version": "1.130.3",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"*.css"
|
|
6
6
|
],
|
|
@@ -37,29 +37,29 @@
|
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@tamagui/adapt": "1.130.
|
|
41
|
-
"@tamagui/animate-presence": "1.130.
|
|
42
|
-
"@tamagui/animations-react-native": "1.130.
|
|
43
|
-
"@tamagui/compose-refs": "1.130.
|
|
44
|
-
"@tamagui/constants": "1.130.
|
|
45
|
-
"@tamagui/core": "1.130.
|
|
46
|
-
"@tamagui/create-context": "1.130.
|
|
47
|
-
"@tamagui/helpers": "1.130.
|
|
48
|
-
"@tamagui/portal": "1.130.
|
|
49
|
-
"@tamagui/remove-scroll": "1.130.
|
|
50
|
-
"@tamagui/scroll-view": "1.130.
|
|
51
|
-
"@tamagui/stacks": "1.130.
|
|
52
|
-
"@tamagui/use-constant": "1.130.
|
|
53
|
-
"@tamagui/use-controllable-state": "1.130.
|
|
54
|
-
"@tamagui/use-did-finish-ssr": "1.130.
|
|
55
|
-
"@tamagui/use-keyboard-visible": "1.130.
|
|
56
|
-
"@tamagui/z-index-stack": "1.130.
|
|
40
|
+
"@tamagui/adapt": "1.130.3",
|
|
41
|
+
"@tamagui/animate-presence": "1.130.3",
|
|
42
|
+
"@tamagui/animations-react-native": "1.130.3",
|
|
43
|
+
"@tamagui/compose-refs": "1.130.3",
|
|
44
|
+
"@tamagui/constants": "1.130.3",
|
|
45
|
+
"@tamagui/core": "1.130.3",
|
|
46
|
+
"@tamagui/create-context": "1.130.3",
|
|
47
|
+
"@tamagui/helpers": "1.130.3",
|
|
48
|
+
"@tamagui/portal": "1.130.3",
|
|
49
|
+
"@tamagui/remove-scroll": "1.130.3",
|
|
50
|
+
"@tamagui/scroll-view": "1.130.3",
|
|
51
|
+
"@tamagui/stacks": "1.130.3",
|
|
52
|
+
"@tamagui/use-constant": "1.130.3",
|
|
53
|
+
"@tamagui/use-controllable-state": "1.130.3",
|
|
54
|
+
"@tamagui/use-did-finish-ssr": "1.130.3",
|
|
55
|
+
"@tamagui/use-keyboard-visible": "1.130.3",
|
|
56
|
+
"@tamagui/z-index-stack": "1.130.3"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
59
|
"react": "*"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@tamagui/build": "1.130.
|
|
62
|
+
"@tamagui/build": "1.130.3",
|
|
63
63
|
"react": "*"
|
|
64
64
|
},
|
|
65
65
|
"publishConfig": {
|
|
@@ -239,11 +239,6 @@ export const SheetImplementationCustom = React.forwardRef<View, SheetProps>(
|
|
|
239
239
|
const disableDrag = props.disableDrag ?? controller?.disableDrag
|
|
240
240
|
const themeName = useThemeName()
|
|
241
241
|
const [isDragging, setIsDragging] = React.useState(false)
|
|
242
|
-
const scrollEnabled = useRef(true)
|
|
243
|
-
|
|
244
|
-
const setScrollEnabled = React.useCallback((val: boolean) => {
|
|
245
|
-
scrollEnabled.current = val
|
|
246
|
-
}, [])
|
|
247
242
|
|
|
248
243
|
const panResponder = React.useMemo(() => {
|
|
249
244
|
if (disableDrag) return
|
|
@@ -256,6 +251,7 @@ export const SheetImplementationCustom = React.forwardRef<View, SheetProps>(
|
|
|
256
251
|
|
|
257
252
|
function setPanning(val: boolean) {
|
|
258
253
|
setIsDragging(val)
|
|
254
|
+
scrollBridge.setParentDragging(false)
|
|
259
255
|
|
|
260
256
|
// make unselectable:
|
|
261
257
|
if (isClient) {
|
|
@@ -301,8 +297,6 @@ export const SheetImplementationCustom = React.forwardRef<View, SheetProps>(
|
|
|
301
297
|
// have to call both because state may not change but need to snap back
|
|
302
298
|
setPosition(closestPoint)
|
|
303
299
|
animateTo(closestPoint)
|
|
304
|
-
|
|
305
|
-
setScrollEnabled(closestPoint === 0)
|
|
306
300
|
}
|
|
307
301
|
|
|
308
302
|
const finish = (_e: GestureResponderEvent, state: PanResponderGestureState) => {
|
|
@@ -320,7 +314,7 @@ export const SheetImplementationCustom = React.forwardRef<View, SheetProps>(
|
|
|
320
314
|
): boolean => {
|
|
321
315
|
function getShouldSet() {
|
|
322
316
|
// if dragging handle always allow:
|
|
323
|
-
if (e.target === providerProps.handleRef.current
|
|
317
|
+
if (e.target === providerProps.handleRef.current) {
|
|
324
318
|
return true
|
|
325
319
|
}
|
|
326
320
|
|
|
@@ -345,15 +339,21 @@ export const SheetImplementationCustom = React.forwardRef<View, SheetProps>(
|
|
|
345
339
|
return false
|
|
346
340
|
}
|
|
347
341
|
}
|
|
342
|
+
|
|
348
343
|
// we could do some detection of other touchables and cancel here..
|
|
349
|
-
return Math.abs(dy) >
|
|
344
|
+
return Math.abs(dy) > 5
|
|
350
345
|
}
|
|
351
346
|
|
|
352
|
-
|
|
347
|
+
const granted = getShouldSet()
|
|
348
|
+
|
|
349
|
+
if (granted) {
|
|
350
|
+
scrollBridge.setParentDragging(true)
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
return granted
|
|
353
354
|
}
|
|
354
355
|
|
|
355
356
|
const grant = () => {
|
|
356
|
-
setScrollEnabled(false)
|
|
357
357
|
setPanning(true)
|
|
358
358
|
stopSpring()
|
|
359
359
|
startY = at.current
|
|
@@ -378,6 +378,15 @@ export const SheetImplementationCustom = React.forwardRef<View, SheetProps>(
|
|
|
378
378
|
onPanResponderMove: (_e, { dy }) => {
|
|
379
379
|
const toFull = dy + startY
|
|
380
380
|
const to = resisted(toFull, minY)
|
|
381
|
+
|
|
382
|
+
// handles the case where you hand off back and forth more than once
|
|
383
|
+
const isAtTop = to <= minY
|
|
384
|
+
if (isAtTop) {
|
|
385
|
+
scrollBridge.setParentDragging(false)
|
|
386
|
+
} else {
|
|
387
|
+
scrollBridge.setParentDragging(true)
|
|
388
|
+
}
|
|
389
|
+
|
|
381
390
|
animatedNumber.setValue(to, { type: 'direct' })
|
|
382
391
|
},
|
|
383
392
|
onPanResponderEnd: finish,
|
|
@@ -483,11 +492,7 @@ export const SheetImplementationCustom = React.forwardRef<View, SheetProps>(
|
|
|
483
492
|
|
|
484
493
|
let contents = (
|
|
485
494
|
<ParentSheetContext.Provider value={nextParentContext}>
|
|
486
|
-
<SheetProvider
|
|
487
|
-
{...providerProps}
|
|
488
|
-
scrollEnabled={scrollEnabled.current}
|
|
489
|
-
setHasScrollView={setHasScrollView}
|
|
490
|
-
>
|
|
495
|
+
<SheetProvider {...providerProps} setHasScrollView={setHasScrollView}>
|
|
491
496
|
<AnimatePresence custom={{ open }}>
|
|
492
497
|
{shouldHideParentSheet || !open ? null : overlayComponent}
|
|
493
498
|
</AnimatePresence>
|
package/src/SheetScrollView.tsx
CHANGED
|
@@ -31,7 +31,7 @@ export const SheetScrollView = React.forwardRef<
|
|
|
31
31
|
ref
|
|
32
32
|
) => {
|
|
33
33
|
const context = useSheetContext(SHEET_SCROLL_VIEW_NAME, __scopeSheet)
|
|
34
|
-
const { scrollBridge,
|
|
34
|
+
const { scrollBridge, setHasScrollView } = context
|
|
35
35
|
const [scrollEnabled, setScrollEnabled_] = useControllableState({
|
|
36
36
|
prop: scrollEnabledProp,
|
|
37
37
|
defaultProp: true,
|
|
@@ -55,7 +55,7 @@ export const SheetScrollView = React.forwardRef<
|
|
|
55
55
|
dragAt: 0,
|
|
56
56
|
dys: [] as number[], // store a few recent dys to get velocity on release
|
|
57
57
|
isScrolling: false,
|
|
58
|
-
|
|
58
|
+
isDraggingScrollArea: false,
|
|
59
59
|
})
|
|
60
60
|
|
|
61
61
|
useEffect(() => {
|
|
@@ -66,10 +66,10 @@ export const SheetScrollView = React.forwardRef<
|
|
|
66
66
|
}, [])
|
|
67
67
|
|
|
68
68
|
const release = () => {
|
|
69
|
-
if (!state.current.
|
|
69
|
+
if (!state.current.isDraggingScrollArea) {
|
|
70
70
|
return
|
|
71
71
|
}
|
|
72
|
-
state.current.
|
|
72
|
+
state.current.isDraggingScrollArea = false
|
|
73
73
|
scrollBridge.scrollStartY = -1
|
|
74
74
|
scrollBridge.scrollLock = false
|
|
75
75
|
state.current.isScrolling = false
|
|
@@ -88,8 +88,46 @@ export const SheetScrollView = React.forwardRef<
|
|
|
88
88
|
})
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
const scrollable = scrollEnabled
|
|
92
|
+
|
|
93
|
+
useEffect(() => {
|
|
94
|
+
if (typeof window === 'undefined') return
|
|
95
|
+
if (!scrollRef.current) return
|
|
96
|
+
|
|
97
|
+
const controller = new AbortController()
|
|
98
|
+
|
|
99
|
+
const node = scrollRef.current.getScrollableNode() as HTMLElement
|
|
100
|
+
|
|
101
|
+
// this is unfortuantely the only way to prevent a scroll once a scroll already started
|
|
102
|
+
// we just keep setting it back to the last value - it should only ever be 0 as this only
|
|
103
|
+
// ever runs when you scroll down, then back to top and start dragging, then back to scroll
|
|
104
|
+
node.addEventListener(
|
|
105
|
+
'touchmove',
|
|
106
|
+
(e) => {
|
|
107
|
+
if (scrollBridge.isParentDragging) {
|
|
108
|
+
node.scrollTo({
|
|
109
|
+
top: scrollBridge.y,
|
|
110
|
+
behavior: 'instant',
|
|
111
|
+
})
|
|
112
|
+
// can't preventdefault its not cancellable
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
signal: controller.signal,
|
|
117
|
+
passive: false,
|
|
118
|
+
}
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
const disposeBridgeListen = scrollBridge.onParentDragging((val) => {
|
|
122
|
+
if (val) {
|
|
123
|
+
}
|
|
124
|
+
})
|
|
125
|
+
|
|
126
|
+
return () => {
|
|
127
|
+
disposeBridgeListen()
|
|
128
|
+
controller.abort()
|
|
129
|
+
}
|
|
130
|
+
}, [])
|
|
93
131
|
|
|
94
132
|
return (
|
|
95
133
|
<ScrollView
|
|
@@ -105,6 +143,7 @@ export const SheetScrollView = React.forwardRef<
|
|
|
105
143
|
onScroll={(e) => {
|
|
106
144
|
const { y } = e.nativeEvent.contentOffset
|
|
107
145
|
scrollBridge.y = y
|
|
146
|
+
|
|
108
147
|
if (isWeb) {
|
|
109
148
|
scrollBridge.scrollLock = y > 0
|
|
110
149
|
}
|
|
@@ -125,7 +164,7 @@ export const SheetScrollView = React.forwardRef<
|
|
|
125
164
|
}}
|
|
126
165
|
onStartShouldSetResponder={() => {
|
|
127
166
|
scrollBridge.scrollStartY = -1
|
|
128
|
-
state.current.
|
|
167
|
+
state.current.isDraggingScrollArea = true
|
|
129
168
|
return scrollable
|
|
130
169
|
}}
|
|
131
170
|
// setting to false while onResponderMove is disabled
|
|
@@ -140,14 +179,11 @@ export const SheetScrollView = React.forwardRef<
|
|
|
140
179
|
if (isWeb) {
|
|
141
180
|
const { pageY } = e.nativeEvent
|
|
142
181
|
|
|
143
|
-
if (state.current.isScrolling) {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
if (scrollBridge.scrollStartY === -1) {
|
|
149
|
-
scrollBridge.scrollStartY = pageY
|
|
150
|
-
state.current.lastPageY = pageY
|
|
182
|
+
if (!state.current.isScrolling) {
|
|
183
|
+
if (scrollBridge.scrollStartY === -1) {
|
|
184
|
+
scrollBridge.scrollStartY = pageY
|
|
185
|
+
state.current.lastPageY = pageY
|
|
186
|
+
}
|
|
151
187
|
}
|
|
152
188
|
|
|
153
189
|
const dragAt = pageY - scrollBridge.scrollStartY
|
|
@@ -158,13 +194,17 @@ export const SheetScrollView = React.forwardRef<
|
|
|
158
194
|
|
|
159
195
|
const shouldScrollLock = (dy === 0 || isDraggingUp) && isPaneAtTop
|
|
160
196
|
|
|
161
|
-
if (shouldScrollLock) {
|
|
197
|
+
if (shouldScrollLock && !state.current.isScrolling) {
|
|
162
198
|
state.current.isScrolling = true
|
|
163
199
|
scrollBridge.scrollLock = true
|
|
164
200
|
setScrollEnabled(true)
|
|
165
201
|
return
|
|
166
202
|
}
|
|
167
203
|
|
|
204
|
+
if (scrollBridge.y >= 0) {
|
|
205
|
+
return
|
|
206
|
+
}
|
|
207
|
+
|
|
168
208
|
setScrollEnabled(false)
|
|
169
209
|
scrollBridge.drag(dragAt)
|
|
170
210
|
state.current.dragAt = dragAt
|
package/src/createSheet.tsx
CHANGED
|
@@ -148,7 +148,13 @@ export function createSheet<
|
|
|
148
148
|
forwardedRef
|
|
149
149
|
) => {
|
|
150
150
|
const context = useSheetContext(SHEET_NAME, __scopeSheet)
|
|
151
|
-
const {
|
|
151
|
+
const {
|
|
152
|
+
hasFit,
|
|
153
|
+
removeScrollEnabled = true,
|
|
154
|
+
frameSize,
|
|
155
|
+
contentRef,
|
|
156
|
+
open,
|
|
157
|
+
} = context
|
|
152
158
|
const composedContentRef = useComposedRefs(forwardedRef, contentRef)
|
|
153
159
|
const offscreenSize = useSheetOffscreenSize(context)
|
|
154
160
|
|
package/src/nativeSheet.tsx
CHANGED
|
@@ -59,12 +59,7 @@ export function setupNativeSheet(
|
|
|
59
59
|
|
|
60
60
|
return (
|
|
61
61
|
<>
|
|
62
|
-
<SheetProvider
|
|
63
|
-
scrollEnabled
|
|
64
|
-
setHasScrollView={emptyFn}
|
|
65
|
-
{...providerProps}
|
|
66
|
-
onlyShowFrame
|
|
67
|
-
>
|
|
62
|
+
<SheetProvider setHasScrollView={emptyFn} {...providerProps} onlyShowFrame>
|
|
68
63
|
<ModalSheetView ref={ref} onModalDidDismiss={() => setOpenInternal(false)}>
|
|
69
64
|
<ModalSheetViewMainContent>
|
|
70
65
|
<View style={{ flex: 1 }}>{props.children}</View>
|