@tamagui/sheet 1.27.3 → 1.28.1
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/createSheet.js +3 -1
- package/dist/cjs/createSheet.js.map +1 -1
- package/dist/cjs/useSheetChildren.js +80 -0
- package/dist/cjs/useSheetChildren.js.map +6 -0
- package/dist/cjs/useSheetSnapPoints.js +77 -0
- package/dist/cjs/useSheetSnapPoints.js.map +6 -0
- package/dist/esm/createSheet.js +3 -1
- package/dist/esm/createSheet.js.map +1 -1
- package/dist/esm/useSheetChildren.js +46 -0
- package/dist/esm/useSheetChildren.js.map +6 -0
- package/dist/esm/useSheetSnapPoints.js +53 -0
- package/dist/esm/useSheetSnapPoints.js.map +6 -0
- package/dist/jsx/createSheet.js +3 -1
- package/dist/jsx/createSheet.js.map +1 -1
- package/dist/jsx/createSheet.mjs +3 -1
- package/dist/jsx/createSheet.mjs.map +1 -1
- package/dist/jsx/useSheetChildren.js +45 -0
- package/dist/jsx/useSheetChildren.js.map +6 -0
- package/dist/jsx/useSheetChildren.mjs +45 -0
- package/dist/jsx/useSheetChildren.mjs.map +6 -0
- package/dist/jsx/useSheetSnapPoints.js +53 -0
- package/dist/jsx/useSheetSnapPoints.js.map +6 -0
- package/dist/jsx/useSheetSnapPoints.mjs +53 -0
- package/dist/jsx/useSheetSnapPoints.mjs.map +6 -0
- package/package.json +13 -13
- package/src/createSheet.tsx +5 -2
- package/types/createSheet.d.ts.map +1 -1
package/dist/cjs/createSheet.js
CHANGED
|
@@ -90,6 +90,7 @@ function createSheet({ Handle, Frame, Overlay }) {
|
|
|
90
90
|
return null;
|
|
91
91
|
}
|
|
92
92
|
);
|
|
93
|
+
const SHEET_COVER_NAME = `${import_constants.SHEET_NAME}Cover`;
|
|
93
94
|
const SheetFrame = Frame.extractable(
|
|
94
95
|
(0, import_react.forwardRef)(
|
|
95
96
|
({
|
|
@@ -114,10 +115,11 @@ function createSheet({ Handle, Frame, Overlay }) {
|
|
|
114
115
|
!props.disableHideBottomOverflow && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
115
116
|
Frame,
|
|
116
117
|
{
|
|
118
|
+
componentName: SHEET_COVER_NAME,
|
|
117
119
|
...props,
|
|
118
120
|
children: null,
|
|
119
121
|
position: "absolute",
|
|
120
|
-
bottom:
|
|
122
|
+
bottom: -20,
|
|
121
123
|
maxHeight: 300,
|
|
122
124
|
left: 0,
|
|
123
125
|
right: 0,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createSheet.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiDQ;AAjDR,0BAAgC;AAChC,kBAOO;AACP,2BAA6B;AAC7B,mBAMO;AACP,0BAA+B;AAE/B,uBAAkE;AAClE,yBAA+B;AAC/B,0BAAgC;AAChC,uCAA0C;AAC1C,6BAAgC;AAEhC,gCAAmC;AAc5B,SAAS,YAAY,EAAE,QAAQ,OAAO,QAAQ,GAAqB;AACxE,QAAM,cAAc,OAAO;AAAA,IACzB,CAAC,EAAE,cAAc,GAAG,MAAM,MAAiD;AACzE,YAAM,cAAU,qCAAgB,oCAAmB,YAAY;AAE/D,UAAI,QAAQ,eAAe;AACzB,eAAO;AAAA,MACT;AAEA,aACE;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,MAAM;AAEb,kBAAM,MACJ,QAAQ,WAAW,UAAU,QAAQ,wBAAwB,KAAK;AACpE,kBAAM,WAAW,QAAQ,WAAW,KAAK;AACzC,oBAAQ,YAAY,OAAO;AAAA,UAC7B;AAAA,UACA,MAAM,QAAQ;AAAA,UACb,GAAG;AAAA;AAAA,MACN;AAAA,IAEJ;AAAA,EACF;AAMA,QAAM,eAAe,QAAQ;AAAA,IAC3B,CAAC,YAAwD;AACvD,YAAM,EAAE,cAAc,GAAG,MAAM,IAAI;AACnC,YAAM,cAAU,qCAAgB,qCAAoB,YAAY;AAKhE,YAAM,cAAU;AAAA,QACd,MACE;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,QAAQ,QAAQ,CAAC,QAAQ;AAAA,YAC9B,GAAG;AAAA,YACJ,aAAS;AAAA,cACP,MAAM;AAAA,cACN,QAAQ,wBACJ,MAAM;AACJ,wBAAQ,QAAQ,KAAK;AAAA,cACvB,IACA;AAAA,YACN;AAAA;AAAA,QACF;AAAA,QAEF;AAAA,UACE,QAAQ;AAAA,UACR;AAAA,UACA,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,QAAQ;AAAA,QACV;AAAA,MACF;AAEA,wCAAgB,MAAM;AApG5B;AAqGQ,sBAAQ,uBAAR,iCAA6B;AAAA,MAC/B,GAAG,CAAC,OAAO,CAAC;AAEZ,UAAI,QAAQ,eAAe;AACzB,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AAMA,QAAM,aAAa,MAAM;AAAA,QACvB;AAAA,MACE,CACE;AAAA,QACE;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACL,GAKA,iBACG;AACH,cAAM,cAAU,qCAAgB,6BAAY,YAAY;AACxD,cAAM,yBAAqB,qCAAgB,cAAc,QAAQ,UAAU;AAE3E,eACE,4EACE;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,cAAY;AAAA,cACZ,SAAS,QAAQ;AAAA,cACjB,gBAAc;AAAA,cACd,QAAQ,CAAC,QAAQ,UAAU;AAAA,cAE3B,iBAAiB;AAAA,cAEjB,sDAAC,SAAM,KAAK,oBAAqB,GAAG,OACjC,UACH;AAAA;AAAA,UACF;AAAA,UAGC,CAAC,MAAM,6BACN;AAAA,YAAC;AAAA;AAAA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["Sheet"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var useSheetChildren_exports = {};
|
|
30
|
+
__export(useSheetChildren_exports, {
|
|
31
|
+
useSheetChildren: () => useSheetChildren
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(useSheetChildren_exports);
|
|
34
|
+
var import_react = __toESM(require("react"));
|
|
35
|
+
function useSheetChildren(childrenProp) {
|
|
36
|
+
let handleComponent = null;
|
|
37
|
+
let overlayComponent = null;
|
|
38
|
+
let frameComponent = null;
|
|
39
|
+
import_react.default.Children.forEach(childrenProp, (child) => {
|
|
40
|
+
var _a, _b;
|
|
41
|
+
if ((0, import_react.isValidElement)(child)) {
|
|
42
|
+
const name = (_b = (_a = child.type) == null ? void 0 : _a["staticConfig"]) == null ? void 0 : _b.componentName;
|
|
43
|
+
switch (name) {
|
|
44
|
+
case "SheetHandle":
|
|
45
|
+
handleComponent = child;
|
|
46
|
+
break;
|
|
47
|
+
case "Sheet":
|
|
48
|
+
frameComponent = child;
|
|
49
|
+
break;
|
|
50
|
+
case "SheetOverlay":
|
|
51
|
+
overlayComponent = child;
|
|
52
|
+
break;
|
|
53
|
+
default:
|
|
54
|
+
console.warn("Warning: passed invalid child to Sheet", child);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
let bottomCoverComponent = null;
|
|
59
|
+
if (frameComponent) {
|
|
60
|
+
bottomCoverComponent = import_react.default.cloneElement(frameComponent, {
|
|
61
|
+
children: null,
|
|
62
|
+
position: "absolute",
|
|
63
|
+
bottom: -100,
|
|
64
|
+
height: 110,
|
|
65
|
+
left: 0,
|
|
66
|
+
right: 0
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
handleComponent,
|
|
71
|
+
overlayComponent,
|
|
72
|
+
frameComponent,
|
|
73
|
+
bottomCoverComponent
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
77
|
+
0 && (module.exports = {
|
|
78
|
+
useSheetChildren
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=useSheetChildren.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useSheetChildren.tsx"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsC;AAE/B,SAAS,iBAAiB,cAAmB;AAClD,MAAI,kBAA6C;AACjD,MAAI,mBAA8C;AAClD,MAAI,iBAA4C;AAGhD,eAAAA,QAAM,SAAS,QAAQ,cAAc,CAAC,UAAU;AARlD;AASI,YAAI,6BAAe,KAAK,GAAG;AACzB,YAAM,QAAO,iBAAM,SAAN,mBAAa,oBAAb,mBAA8B;AAC3C,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,4BAAkB;AAClB;AAAA,QACF,KAAK;AACH,2BAAiB;AACjB;AAAA,QACF,KAAK;AACH,6BAAmB;AACnB;AAAA,QACF;AACE,kBAAQ,KAAK,0CAA0C,KAAK;AAAA,MAChE;AAAA,IACF;AAAA,EACF,CAAC;AAED,MAAI,uBAA4B;AAEhC,MAAI,gBAAgB;AAClB,2BAAuB,aAAAA,QAAM,aAAa,gBAAgB;AAAA,MACxD,UAAU;AAAA,MACV,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
|
|
5
|
+
"names": ["React"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var useSheetSnapPoints_exports = {};
|
|
20
|
+
__export(useSheetSnapPoints_exports, {
|
|
21
|
+
useSheetSnapPoints: () => useSheetSnapPoints
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(useSheetSnapPoints_exports);
|
|
24
|
+
var import_react = require("react");
|
|
25
|
+
const useSheetSnapPoints = ({
|
|
26
|
+
position,
|
|
27
|
+
setPosition,
|
|
28
|
+
dismissOnSnapToBottom,
|
|
29
|
+
snapPoints,
|
|
30
|
+
setPositionImmediate,
|
|
31
|
+
open,
|
|
32
|
+
frameSize
|
|
33
|
+
}) => {
|
|
34
|
+
if (process.env.NODE_ENV === "development") {
|
|
35
|
+
if (snapPoints.some((p) => p < 0 || p > 100)) {
|
|
36
|
+
console.warn(
|
|
37
|
+
"\u26A0\uFE0F Invalid snapPoint given, snapPoints must be between 0 and 100, equal to percent height of frame"
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (open && dismissOnSnapToBottom && position === snapPoints.length - 1) {
|
|
42
|
+
setPositionImmediate(0);
|
|
43
|
+
}
|
|
44
|
+
const shouldSetPositionOpen = open && position < 0;
|
|
45
|
+
(0, import_react.useEffect)(() => {
|
|
46
|
+
if (shouldSetPositionOpen) {
|
|
47
|
+
setPosition(0);
|
|
48
|
+
}
|
|
49
|
+
}, [setPosition, shouldSetPositionOpen]);
|
|
50
|
+
const maxSnapPoint = snapPoints.reduce((prev, cur) => Math.max(prev, cur));
|
|
51
|
+
const screenSize = frameSize / (maxSnapPoint / 100);
|
|
52
|
+
const positions = (0, import_react.useMemo)(
|
|
53
|
+
() => snapPoints.map((point) => getPercentSize(point, screenSize)),
|
|
54
|
+
[frameSize, snapPoints]
|
|
55
|
+
);
|
|
56
|
+
return {
|
|
57
|
+
positions,
|
|
58
|
+
maxSnapPoint,
|
|
59
|
+
screenSize
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
function getPercentSize(point, screenSize) {
|
|
63
|
+
if (!screenSize)
|
|
64
|
+
return 0;
|
|
65
|
+
if (point === void 0) {
|
|
66
|
+
console.warn("No snapPoint");
|
|
67
|
+
return 0;
|
|
68
|
+
}
|
|
69
|
+
const pct = point / 100;
|
|
70
|
+
const next = Math.round(screenSize - pct * screenSize);
|
|
71
|
+
return next;
|
|
72
|
+
}
|
|
73
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
74
|
+
0 && (module.exports = {
|
|
75
|
+
useSheetSnapPoints
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=useSheetSnapPoints.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useSheetSnapPoints.tsx"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAmC;AAI5B,MAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAyB;AACvB,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,WAAW,KAAK,CAAC,MAAM,IAAI,KAAK,IAAI,GAAG,GAAG;AAC5C,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,MAAI,QAAQ,yBAAyB,aAAa,WAAW,SAAS,GAAG;AACvE,yBAAqB,CAAC;AAAA,EACxB;AAGA,QAAM,wBAAwB,QAAQ,WAAW;AACjD,8BAAU,MAAM;AACd,QAAI,uBAAuB;AACzB,kBAAY,CAAC;AAAA,IACf;AAAA,EACF,GAAG,CAAC,aAAa,qBAAqB,CAAC;AAEvC,QAAM,eAAe,WAAW,OAAO,CAAC,MAAM,QAAQ,KAAK,IAAI,MAAM,GAAG,CAAC;AACzE,QAAM,aAAa,aAAa,eAAe;AAE/C,QAAM,gBAAY;AAAA,IAChB,MAAM,WAAW,IAAI,CAAC,UAAU,eAAe,OAAO,UAAU,CAAC;AAAA,IACjE,CAAC,WAAW,UAAU;AAAA,EACxB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,eAAe,OAAgB,YAAqB;AAC3D,MAAI,CAAC;AAAY,WAAO;AACxB,MAAI,UAAU,QAAW;AACvB,YAAQ,KAAK,cAAc;AAC3B,WAAO;AAAA,EACT;AACA,QAAM,MAAM,QAAQ;AACpB,QAAM,OAAO,KAAK,MAAM,aAAa,MAAM,UAAU;AAErD,SAAO;AACT;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/esm/createSheet.js
CHANGED
|
@@ -75,6 +75,7 @@ function createSheet({ Handle, Frame, Overlay }) {
|
|
|
75
75
|
return null;
|
|
76
76
|
}
|
|
77
77
|
);
|
|
78
|
+
const SHEET_COVER_NAME = `${SHEET_NAME}Cover`;
|
|
78
79
|
const SheetFrame = Frame.extractable(
|
|
79
80
|
forwardRef(
|
|
80
81
|
({
|
|
@@ -99,10 +100,11 @@ function createSheet({ Handle, Frame, Overlay }) {
|
|
|
99
100
|
!props.disableHideBottomOverflow && /* @__PURE__ */ jsx(
|
|
100
101
|
Frame,
|
|
101
102
|
{
|
|
103
|
+
componentName: SHEET_COVER_NAME,
|
|
102
104
|
...props,
|
|
103
105
|
children: null,
|
|
104
106
|
position: "absolute",
|
|
105
|
-
bottom:
|
|
107
|
+
bottom: -20,
|
|
106
108
|
maxHeight: 300,
|
|
107
109
|
left: 0,
|
|
108
110
|
right: 0,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createSheet.tsx"],
|
|
4
|
-
"mappings": "AAiDQ,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["Sheet"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React, { isValidElement } from "react";
|
|
2
|
+
function useSheetChildren(childrenProp) {
|
|
3
|
+
let handleComponent = null;
|
|
4
|
+
let overlayComponent = null;
|
|
5
|
+
let frameComponent = null;
|
|
6
|
+
React.Children.forEach(childrenProp, (child) => {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
if (isValidElement(child)) {
|
|
9
|
+
const name = (_b = (_a = child.type) == null ? void 0 : _a["staticConfig"]) == null ? void 0 : _b.componentName;
|
|
10
|
+
switch (name) {
|
|
11
|
+
case "SheetHandle":
|
|
12
|
+
handleComponent = child;
|
|
13
|
+
break;
|
|
14
|
+
case "Sheet":
|
|
15
|
+
frameComponent = child;
|
|
16
|
+
break;
|
|
17
|
+
case "SheetOverlay":
|
|
18
|
+
overlayComponent = child;
|
|
19
|
+
break;
|
|
20
|
+
default:
|
|
21
|
+
console.warn("Warning: passed invalid child to Sheet", child);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
let bottomCoverComponent = null;
|
|
26
|
+
if (frameComponent) {
|
|
27
|
+
bottomCoverComponent = React.cloneElement(frameComponent, {
|
|
28
|
+
children: null,
|
|
29
|
+
position: "absolute",
|
|
30
|
+
bottom: -100,
|
|
31
|
+
height: 110,
|
|
32
|
+
left: 0,
|
|
33
|
+
right: 0
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
handleComponent,
|
|
38
|
+
overlayComponent,
|
|
39
|
+
frameComponent,
|
|
40
|
+
bottomCoverComponent
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
useSheetChildren
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=useSheetChildren.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useSheetChildren.tsx"],
|
|
4
|
+
"mappings": "AAAA,OAAO,SAAS,sBAAsB;AAE/B,SAAS,iBAAiB,cAAmB;AAClD,MAAI,kBAA6C;AACjD,MAAI,mBAA8C;AAClD,MAAI,iBAA4C;AAGhD,QAAM,SAAS,QAAQ,cAAc,CAAC,UAAU;AARlD;AASI,QAAI,eAAe,KAAK,GAAG;AACzB,YAAM,QAAO,iBAAM,SAAN,mBAAa,oBAAb,mBAA8B;AAC3C,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,4BAAkB;AAClB;AAAA,QACF,KAAK;AACH,2BAAiB;AACjB;AAAA,QACF,KAAK;AACH,6BAAmB;AACnB;AAAA,QACF;AACE,kBAAQ,KAAK,0CAA0C,KAAK;AAAA,MAChE;AAAA,IACF;AAAA,EACF,CAAC;AAED,MAAI,uBAA4B;AAEhC,MAAI,gBAAgB;AAClB,2BAAuB,MAAM,aAAa,gBAAgB;AAAA,MACxD,UAAU;AAAA,MACV,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { useEffect, useMemo } from "react";
|
|
2
|
+
const useSheetSnapPoints = ({
|
|
3
|
+
position,
|
|
4
|
+
setPosition,
|
|
5
|
+
dismissOnSnapToBottom,
|
|
6
|
+
snapPoints,
|
|
7
|
+
setPositionImmediate,
|
|
8
|
+
open,
|
|
9
|
+
frameSize
|
|
10
|
+
}) => {
|
|
11
|
+
if (process.env.NODE_ENV === "development") {
|
|
12
|
+
if (snapPoints.some((p) => p < 0 || p > 100)) {
|
|
13
|
+
console.warn(
|
|
14
|
+
"\u26A0\uFE0F Invalid snapPoint given, snapPoints must be between 0 and 100, equal to percent height of frame"
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (open && dismissOnSnapToBottom && position === snapPoints.length - 1) {
|
|
19
|
+
setPositionImmediate(0);
|
|
20
|
+
}
|
|
21
|
+
const shouldSetPositionOpen = open && position < 0;
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (shouldSetPositionOpen) {
|
|
24
|
+
setPosition(0);
|
|
25
|
+
}
|
|
26
|
+
}, [setPosition, shouldSetPositionOpen]);
|
|
27
|
+
const maxSnapPoint = snapPoints.reduce((prev, cur) => Math.max(prev, cur));
|
|
28
|
+
const screenSize = frameSize / (maxSnapPoint / 100);
|
|
29
|
+
const positions = useMemo(
|
|
30
|
+
() => snapPoints.map((point) => getPercentSize(point, screenSize)),
|
|
31
|
+
[frameSize, snapPoints]
|
|
32
|
+
);
|
|
33
|
+
return {
|
|
34
|
+
positions,
|
|
35
|
+
maxSnapPoint,
|
|
36
|
+
screenSize
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
function getPercentSize(point, screenSize) {
|
|
40
|
+
if (!screenSize)
|
|
41
|
+
return 0;
|
|
42
|
+
if (point === void 0) {
|
|
43
|
+
console.warn("No snapPoint");
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
const pct = point / 100;
|
|
47
|
+
const next = Math.round(screenSize - pct * screenSize);
|
|
48
|
+
return next;
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
useSheetSnapPoints
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=useSheetSnapPoints.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useSheetSnapPoints.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,WAAW,eAAe;AAI5B,MAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAyB;AACvB,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,WAAW,KAAK,CAAC,MAAM,IAAI,KAAK,IAAI,GAAG,GAAG;AAC5C,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,MAAI,QAAQ,yBAAyB,aAAa,WAAW,SAAS,GAAG;AACvE,yBAAqB,CAAC;AAAA,EACxB;AAGA,QAAM,wBAAwB,QAAQ,WAAW;AACjD,YAAU,MAAM;AACd,QAAI,uBAAuB;AACzB,kBAAY,CAAC;AAAA,IACf;AAAA,EACF,GAAG,CAAC,aAAa,qBAAqB,CAAC;AAEvC,QAAM,eAAe,WAAW,OAAO,CAAC,MAAM,QAAQ,KAAK,IAAI,MAAM,GAAG,CAAC;AACzE,QAAM,aAAa,aAAa,eAAe;AAE/C,QAAM,YAAY;AAAA,IAChB,MAAM,WAAW,IAAI,CAAC,UAAU,eAAe,OAAO,UAAU,CAAC;AAAA,IACjE,CAAC,WAAW,UAAU;AAAA,EACxB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,eAAe,OAAgB,YAAqB;AAC3D,MAAI,CAAC;AAAY,WAAO;AACxB,MAAI,UAAU,QAAW;AACvB,YAAQ,KAAK,cAAc;AAC3B,WAAO;AAAA,EACT;AACA,QAAM,MAAM,QAAQ;AACpB,QAAM,OAAO,KAAK,MAAM,aAAa,MAAM,UAAU;AAErD,SAAO;AACT;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/jsx/createSheet.js
CHANGED
|
@@ -67,6 +67,7 @@ function createSheet({ Handle, Frame, Overlay }) {
|
|
|
67
67
|
return null;
|
|
68
68
|
}
|
|
69
69
|
);
|
|
70
|
+
const SHEET_COVER_NAME = `${SHEET_NAME}Cover`;
|
|
70
71
|
const SheetFrame = Frame.extractable(
|
|
71
72
|
forwardRef(
|
|
72
73
|
({
|
|
@@ -88,10 +89,11 @@ function createSheet({ Handle, Frame, Overlay }) {
|
|
|
88
89
|
/* below frame hide when bouncing past 100% */
|
|
89
90
|
}
|
|
90
91
|
{!props.disableHideBottomOverflow && <Frame
|
|
92
|
+
componentName={SHEET_COVER_NAME}
|
|
91
93
|
{...props}
|
|
92
94
|
children={null}
|
|
93
95
|
position="absolute"
|
|
94
|
-
bottom={
|
|
96
|
+
bottom={-20}
|
|
95
97
|
maxHeight={300}
|
|
96
98
|
left={0}
|
|
97
99
|
right={0}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createSheet.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,uBAAuB;AAChC;AAAA,EAIE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAC7B;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,gBAAsB;AAE/B,SAAS,mBAAmB,YAAY,0BAA0B;AAClE,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,iCAAiC;AAC1C,SAAS,uBAAuB;AAEhC,SAAS,0BAA0B;AAc5B,SAAS,YAAY,EAAE,QAAQ,OAAO,QAAQ,GAAqB;AACxE,QAAM,cAAc,OAAO;AAAA,IACzB,CAAC,EAAE,cAAc,GAAG,MAAM,MAAiD;AACzE,YAAM,UAAU,gBAAgB,mBAAmB,YAAY;AAE/D,UAAI,QAAQ,eAAe;AACzB,eAAO;AAAA,MACT;AAEA,aACE,CAAC;AAAA,QACC,SAAS,MAAM;AAEb,gBAAM,MACJ,QAAQ,WAAW,UAAU,QAAQ,wBAAwB,KAAK;AACpE,gBAAM,WAAW,QAAQ,WAAW,KAAK;AACzC,kBAAQ,YAAY,OAAO;AAAA,QAC7B;AAAA,QACA,MAAM,QAAQ;AAAA,YACV;AAAA,MACN;AAAA,IAEJ;AAAA,EACF;AAMA,QAAM,eAAe,QAAQ;AAAA,IAC3B,CAAC,YAAwD;AACvD,YAAM,EAAE,cAAc,GAAG,MAAM,IAAI;AACnC,YAAM,UAAU,gBAAgB,oBAAoB,YAAY;AAKhE,YAAM,UAAU;AAAA,QACd,MACE,CAAC;AAAA,UACC,MAAM,QAAQ,QAAQ,CAAC,QAAQ;AAAA,cAC3B;AAAA,UACJ,SAAS;AAAA,YACP,MAAM;AAAA,YACN,QAAQ,wBACJ,MAAM;AACJ,sBAAQ,QAAQ,KAAK;AAAA,YACvB,IACA;AAAA,UACN;AAAA,QACF;AAAA,QAEF;AAAA,UACE,QAAQ;AAAA,UACR;AAAA,UACA,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,QAAQ;AAAA,QACV;AAAA,MACF;AAEA,sBAAgB,MAAM;AACpB,gBAAQ,qBAAqB,OAAO;AAAA,MACtC,GAAG,CAAC,OAAO,CAAC;AAEZ,UAAI,QAAQ,eAAe;AACzB,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AAMA,QAAM,aAAa,MAAM;AAAA,IACvB;AAAA,MACE,CACE;AAAA,QACE;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACL,GAKA,iBACG;AACH,cAAM,UAAU,gBAAgB,YAAY,YAAY;AACxD,cAAM,qBAAqB,gBAAgB,cAAc,QAAQ,UAAU;AAE3E,eACE;AAAA,UACE,CAAC;AAAA,YACC;AAAA,YACA,SAAS,QAAQ;AAAA,YACjB;AAAA,YACA,QAAQ,CAAC,QAAQ,UAAU;AAAA,YAE3B,iBAAiB;AAAA,WAEjB,CAAC,MAAM,KAAK,wBAAwB,QACjC,SACH,EAFC,MAGH,EAXC;AAAA;AAAA;AAAA;AAAA,WAcA,CAAC,MAAM,6BACN,CAAC;AAAA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["Sheet"]
|
|
6
6
|
}
|
package/dist/jsx/createSheet.mjs
CHANGED
|
@@ -67,6 +67,7 @@ function createSheet({ Handle, Frame, Overlay }) {
|
|
|
67
67
|
return null;
|
|
68
68
|
}
|
|
69
69
|
);
|
|
70
|
+
const SHEET_COVER_NAME = `${SHEET_NAME}Cover`;
|
|
70
71
|
const SheetFrame = Frame.extractable(
|
|
71
72
|
forwardRef(
|
|
72
73
|
({
|
|
@@ -88,10 +89,11 @@ function createSheet({ Handle, Frame, Overlay }) {
|
|
|
88
89
|
/* below frame hide when bouncing past 100% */
|
|
89
90
|
}
|
|
90
91
|
{!props.disableHideBottomOverflow && <Frame
|
|
92
|
+
componentName={SHEET_COVER_NAME}
|
|
91
93
|
{...props}
|
|
92
94
|
children={null}
|
|
93
95
|
position="absolute"
|
|
94
|
-
bottom={
|
|
96
|
+
bottom={-20}
|
|
95
97
|
maxHeight={300}
|
|
96
98
|
left={0}
|
|
97
99
|
right={0}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createSheet.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,uBAAuB;AAChC;AAAA,EAIE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAC7B;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,gBAAsB;AAE/B,SAAS,mBAAmB,YAAY,0BAA0B;AAClE,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,iCAAiC;AAC1C,SAAS,uBAAuB;AAEhC,SAAS,0BAA0B;AAc5B,SAAS,YAAY,EAAE,QAAQ,OAAO,QAAQ,GAAqB;AACxE,QAAM,cAAc,OAAO;AAAA,IACzB,CAAC,EAAE,cAAc,GAAG,MAAM,MAAiD;AACzE,YAAM,UAAU,gBAAgB,mBAAmB,YAAY;AAE/D,UAAI,QAAQ,eAAe;AACzB,eAAO;AAAA,MACT;AAEA,aACE,CAAC;AAAA,QACC,SAAS,MAAM;AAEb,gBAAM,MACJ,QAAQ,WAAW,UAAU,QAAQ,wBAAwB,KAAK;AACpE,gBAAM,WAAW,QAAQ,WAAW,KAAK;AACzC,kBAAQ,YAAY,OAAO;AAAA,QAC7B;AAAA,QACA,MAAM,QAAQ;AAAA,YACV;AAAA,MACN;AAAA,IAEJ;AAAA,EACF;AAMA,QAAM,eAAe,QAAQ;AAAA,IAC3B,CAAC,YAAwD;AACvD,YAAM,EAAE,cAAc,GAAG,MAAM,IAAI;AACnC,YAAM,UAAU,gBAAgB,oBAAoB,YAAY;AAKhE,YAAM,UAAU;AAAA,QACd,MACE,CAAC;AAAA,UACC,MAAM,QAAQ,QAAQ,CAAC,QAAQ;AAAA,cAC3B;AAAA,UACJ,SAAS;AAAA,YACP,MAAM;AAAA,YACN,QAAQ,wBACJ,MAAM;AACJ,sBAAQ,QAAQ,KAAK;AAAA,YACvB,IACA;AAAA,UACN;AAAA,QACF;AAAA,QAEF;AAAA,UACE,QAAQ;AAAA,UACR;AAAA,UACA,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,QAAQ;AAAA,QACV;AAAA,MACF;AAEA,sBAAgB,MAAM;AACpB,gBAAQ,qBAAqB,OAAO;AAAA,MACtC,GAAG,CAAC,OAAO,CAAC;AAEZ,UAAI,QAAQ,eAAe;AACzB,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AAMA,QAAM,aAAa,MAAM;AAAA,IACvB;AAAA,MACE,CACE;AAAA,QACE;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACL,GAKA,iBACG;AACH,cAAM,UAAU,gBAAgB,YAAY,YAAY;AACxD,cAAM,qBAAqB,gBAAgB,cAAc,QAAQ,UAAU;AAE3E,eACE;AAAA,UACE,CAAC;AAAA,YACC;AAAA,YACA,SAAS,QAAQ;AAAA,YACjB;AAAA,YACA,QAAQ,CAAC,QAAQ,UAAU;AAAA,YAE3B,iBAAiB;AAAA,WAEjB,CAAC,MAAM,KAAK,wBAAwB,QACjC,SACH,EAFC,MAGH,EAXC;AAAA;AAAA;AAAA;AAAA,WAcA,CAAC,MAAM,6BACN,CAAC;AAAA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["Sheet"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React, { isValidElement } from "react";
|
|
2
|
+
function useSheetChildren(childrenProp) {
|
|
3
|
+
let handleComponent = null;
|
|
4
|
+
let overlayComponent = null;
|
|
5
|
+
let frameComponent = null;
|
|
6
|
+
React.Children.forEach(childrenProp, (child) => {
|
|
7
|
+
if (isValidElement(child)) {
|
|
8
|
+
const name = child.type?.["staticConfig"]?.componentName;
|
|
9
|
+
switch (name) {
|
|
10
|
+
case "SheetHandle":
|
|
11
|
+
handleComponent = child;
|
|
12
|
+
break;
|
|
13
|
+
case "Sheet":
|
|
14
|
+
frameComponent = child;
|
|
15
|
+
break;
|
|
16
|
+
case "SheetOverlay":
|
|
17
|
+
overlayComponent = child;
|
|
18
|
+
break;
|
|
19
|
+
default:
|
|
20
|
+
console.warn("Warning: passed invalid child to Sheet", child);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
let bottomCoverComponent = null;
|
|
25
|
+
if (frameComponent) {
|
|
26
|
+
bottomCoverComponent = React.cloneElement(frameComponent, {
|
|
27
|
+
children: null,
|
|
28
|
+
position: "absolute",
|
|
29
|
+
bottom: -100,
|
|
30
|
+
height: 110,
|
|
31
|
+
left: 0,
|
|
32
|
+
right: 0
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
handleComponent,
|
|
37
|
+
overlayComponent,
|
|
38
|
+
frameComponent,
|
|
39
|
+
bottomCoverComponent
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
useSheetChildren
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=useSheetChildren.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useSheetChildren.tsx"],
|
|
4
|
+
"mappings": "AAAA,OAAO,SAAS,sBAAsB;AAE/B,SAAS,iBAAiB,cAAmB;AAClD,MAAI,kBAA6C;AACjD,MAAI,mBAA8C;AAClD,MAAI,iBAA4C;AAGhD,QAAM,SAAS,QAAQ,cAAc,CAAC,UAAU;AAC9C,QAAI,eAAe,KAAK,GAAG;AACzB,YAAM,OAAO,MAAM,OAAO,cAAc,GAAG;AAC3C,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,4BAAkB;AAClB;AAAA,QACF,KAAK;AACH,2BAAiB;AACjB;AAAA,QACF,KAAK;AACH,6BAAmB;AACnB;AAAA,QACF;AACE,kBAAQ,KAAK,0CAA0C,KAAK;AAAA,MAChE;AAAA,IACF;AAAA,EACF,CAAC;AAED,MAAI,uBAA4B;AAEhC,MAAI,gBAAgB;AAClB,2BAAuB,MAAM,aAAa,gBAAgB;AAAA,MACxD,UAAU;AAAA,MACV,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React, { isValidElement } from "react";
|
|
2
|
+
function useSheetChildren(childrenProp) {
|
|
3
|
+
let handleComponent = null;
|
|
4
|
+
let overlayComponent = null;
|
|
5
|
+
let frameComponent = null;
|
|
6
|
+
React.Children.forEach(childrenProp, (child) => {
|
|
7
|
+
if (isValidElement(child)) {
|
|
8
|
+
const name = child.type?.["staticConfig"]?.componentName;
|
|
9
|
+
switch (name) {
|
|
10
|
+
case "SheetHandle":
|
|
11
|
+
handleComponent = child;
|
|
12
|
+
break;
|
|
13
|
+
case "Sheet":
|
|
14
|
+
frameComponent = child;
|
|
15
|
+
break;
|
|
16
|
+
case "SheetOverlay":
|
|
17
|
+
overlayComponent = child;
|
|
18
|
+
break;
|
|
19
|
+
default:
|
|
20
|
+
console.warn("Warning: passed invalid child to Sheet", child);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
let bottomCoverComponent = null;
|
|
25
|
+
if (frameComponent) {
|
|
26
|
+
bottomCoverComponent = React.cloneElement(frameComponent, {
|
|
27
|
+
children: null,
|
|
28
|
+
position: "absolute",
|
|
29
|
+
bottom: -100,
|
|
30
|
+
height: 110,
|
|
31
|
+
left: 0,
|
|
32
|
+
right: 0
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
handleComponent,
|
|
37
|
+
overlayComponent,
|
|
38
|
+
frameComponent,
|
|
39
|
+
bottomCoverComponent
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
useSheetChildren
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=useSheetChildren.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useSheetChildren.tsx"],
|
|
4
|
+
"mappings": "AAAA,OAAO,SAAS,sBAAsB;AAE/B,SAAS,iBAAiB,cAAmB;AAClD,MAAI,kBAA6C;AACjD,MAAI,mBAA8C;AAClD,MAAI,iBAA4C;AAGhD,QAAM,SAAS,QAAQ,cAAc,CAAC,UAAU;AAC9C,QAAI,eAAe,KAAK,GAAG;AACzB,YAAM,OAAO,MAAM,OAAO,cAAc,GAAG;AAC3C,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,4BAAkB;AAClB;AAAA,QACF,KAAK;AACH,2BAAiB;AACjB;AAAA,QACF,KAAK;AACH,6BAAmB;AACnB;AAAA,QACF;AACE,kBAAQ,KAAK,0CAA0C,KAAK;AAAA,MAChE;AAAA,IACF;AAAA,EACF,CAAC;AAED,MAAI,uBAA4B;AAEhC,MAAI,gBAAgB;AAClB,2BAAuB,MAAM,aAAa,gBAAgB;AAAA,MACxD,UAAU;AAAA,MACV,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { useEffect, useMemo } from "react";
|
|
2
|
+
const useSheetSnapPoints = ({
|
|
3
|
+
position,
|
|
4
|
+
setPosition,
|
|
5
|
+
dismissOnSnapToBottom,
|
|
6
|
+
snapPoints,
|
|
7
|
+
setPositionImmediate,
|
|
8
|
+
open,
|
|
9
|
+
frameSize
|
|
10
|
+
}) => {
|
|
11
|
+
if (process.env.NODE_ENV === "development") {
|
|
12
|
+
if (snapPoints.some((p) => p < 0 || p > 100)) {
|
|
13
|
+
console.warn(
|
|
14
|
+
"\u26A0\uFE0F Invalid snapPoint given, snapPoints must be between 0 and 100, equal to percent height of frame"
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (open && dismissOnSnapToBottom && position === snapPoints.length - 1) {
|
|
19
|
+
setPositionImmediate(0);
|
|
20
|
+
}
|
|
21
|
+
const shouldSetPositionOpen = open && position < 0;
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (shouldSetPositionOpen) {
|
|
24
|
+
setPosition(0);
|
|
25
|
+
}
|
|
26
|
+
}, [setPosition, shouldSetPositionOpen]);
|
|
27
|
+
const maxSnapPoint = snapPoints.reduce((prev, cur) => Math.max(prev, cur));
|
|
28
|
+
const screenSize = frameSize / (maxSnapPoint / 100);
|
|
29
|
+
const positions = useMemo(
|
|
30
|
+
() => snapPoints.map((point) => getPercentSize(point, screenSize)),
|
|
31
|
+
[frameSize, snapPoints]
|
|
32
|
+
);
|
|
33
|
+
return {
|
|
34
|
+
positions,
|
|
35
|
+
maxSnapPoint,
|
|
36
|
+
screenSize
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
function getPercentSize(point, screenSize) {
|
|
40
|
+
if (!screenSize)
|
|
41
|
+
return 0;
|
|
42
|
+
if (point === void 0) {
|
|
43
|
+
console.warn("No snapPoint");
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
const pct = point / 100;
|
|
47
|
+
const next = Math.round(screenSize - pct * screenSize);
|
|
48
|
+
return next;
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
useSheetSnapPoints
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=useSheetSnapPoints.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useSheetSnapPoints.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,WAAW,eAAe;AAI5B,MAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAyB;AACvB,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,WAAW,KAAK,CAAC,MAAM,IAAI,KAAK,IAAI,GAAG,GAAG;AAC5C,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,MAAI,QAAQ,yBAAyB,aAAa,WAAW,SAAS,GAAG;AACvE,yBAAqB,CAAC;AAAA,EACxB;AAGA,QAAM,wBAAwB,QAAQ,WAAW;AACjD,YAAU,MAAM;AACd,QAAI,uBAAuB;AACzB,kBAAY,CAAC;AAAA,IACf;AAAA,EACF,GAAG,CAAC,aAAa,qBAAqB,CAAC;AAEvC,QAAM,eAAe,WAAW,OAAO,CAAC,MAAM,QAAQ,KAAK,IAAI,MAAM,GAAG,CAAC;AACzE,QAAM,aAAa,aAAa,eAAe;AAE/C,QAAM,YAAY;AAAA,IAChB,MAAM,WAAW,IAAI,CAAC,UAAU,eAAe,OAAO,UAAU,CAAC;AAAA,IACjE,CAAC,WAAW,UAAU;AAAA,EACxB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,eAAe,OAAgB,YAAqB;AAC3D,MAAI,CAAC;AAAY,WAAO;AACxB,MAAI,UAAU,QAAW;AACvB,YAAQ,KAAK,cAAc;AAC3B,WAAO;AAAA,EACT;AACA,QAAM,MAAM,QAAQ;AACpB,QAAM,OAAO,KAAK,MAAM,aAAa,MAAM,UAAU;AAErD,SAAO;AACT;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { useEffect, useMemo } from "react";
|
|
2
|
+
const useSheetSnapPoints = ({
|
|
3
|
+
position,
|
|
4
|
+
setPosition,
|
|
5
|
+
dismissOnSnapToBottom,
|
|
6
|
+
snapPoints,
|
|
7
|
+
setPositionImmediate,
|
|
8
|
+
open,
|
|
9
|
+
frameSize
|
|
10
|
+
}) => {
|
|
11
|
+
if (process.env.NODE_ENV === "development") {
|
|
12
|
+
if (snapPoints.some((p) => p < 0 || p > 100)) {
|
|
13
|
+
console.warn(
|
|
14
|
+
"\u26A0\uFE0F Invalid snapPoint given, snapPoints must be between 0 and 100, equal to percent height of frame"
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (open && dismissOnSnapToBottom && position === snapPoints.length - 1) {
|
|
19
|
+
setPositionImmediate(0);
|
|
20
|
+
}
|
|
21
|
+
const shouldSetPositionOpen = open && position < 0;
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (shouldSetPositionOpen) {
|
|
24
|
+
setPosition(0);
|
|
25
|
+
}
|
|
26
|
+
}, [setPosition, shouldSetPositionOpen]);
|
|
27
|
+
const maxSnapPoint = snapPoints.reduce((prev, cur) => Math.max(prev, cur));
|
|
28
|
+
const screenSize = frameSize / (maxSnapPoint / 100);
|
|
29
|
+
const positions = useMemo(
|
|
30
|
+
() => snapPoints.map((point) => getPercentSize(point, screenSize)),
|
|
31
|
+
[frameSize, snapPoints]
|
|
32
|
+
);
|
|
33
|
+
return {
|
|
34
|
+
positions,
|
|
35
|
+
maxSnapPoint,
|
|
36
|
+
screenSize
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
function getPercentSize(point, screenSize) {
|
|
40
|
+
if (!screenSize)
|
|
41
|
+
return 0;
|
|
42
|
+
if (point === void 0) {
|
|
43
|
+
console.warn("No snapPoint");
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
const pct = point / 100;
|
|
47
|
+
const next = Math.round(screenSize - pct * screenSize);
|
|
48
|
+
return next;
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
useSheetSnapPoints
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=useSheetSnapPoints.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/useSheetSnapPoints.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,WAAW,eAAe;AAI5B,MAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAyB;AACvB,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,WAAW,KAAK,CAAC,MAAM,IAAI,KAAK,IAAI,GAAG,GAAG;AAC5C,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,MAAI,QAAQ,yBAAyB,aAAa,WAAW,SAAS,GAAG;AACvE,yBAAqB,CAAC;AAAA,EACxB;AAGA,QAAM,wBAAwB,QAAQ,WAAW;AACjD,YAAU,MAAM;AACd,QAAI,uBAAuB;AACzB,kBAAY,CAAC;AAAA,IACf;AAAA,EACF,GAAG,CAAC,aAAa,qBAAqB,CAAC;AAEvC,QAAM,eAAe,WAAW,OAAO,CAAC,MAAM,QAAQ,KAAK,IAAI,MAAM,GAAG,CAAC;AACzE,QAAM,aAAa,aAAa,eAAe;AAE/C,QAAM,YAAY;AAAA,IAChB,MAAM,WAAW,IAAI,CAAC,UAAU,eAAe,OAAO,UAAU,CAAC;AAAA,IACjE,CAAC,WAAW,UAAU;AAAA,EACxB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,eAAe,OAAgB,YAAqB;AAC3D,MAAI,CAAC;AAAY,WAAO;AACxB,MAAI,UAAU,QAAW;AACvB,YAAQ,KAAK,cAAc;AAC3B,WAAO;AAAA,EACT;AACA,QAAM,MAAM,QAAQ;AACpB,QAAM,OAAO,KAAK,MAAM,aAAa,MAAM,UAAU;AAErD,SAAO;AACT;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/sheet",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.28.1",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"*.css"
|
|
6
6
|
],
|
|
@@ -31,24 +31,24 @@
|
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@tamagui/animations-react-native": "1.
|
|
35
|
-
"@tamagui/compose-refs": "1.
|
|
36
|
-
"@tamagui/core": "1.
|
|
37
|
-
"@tamagui/create-context": "1.
|
|
38
|
-
"@tamagui/portal": "1.
|
|
39
|
-
"@tamagui/remove-scroll": "1.
|
|
40
|
-
"@tamagui/scroll-view": "1.
|
|
41
|
-
"@tamagui/stacks": "1.
|
|
42
|
-
"@tamagui/use-constant": "1.
|
|
43
|
-
"@tamagui/use-controllable-state": "1.
|
|
44
|
-
"@tamagui/use-keyboard-visible": "1.
|
|
34
|
+
"@tamagui/animations-react-native": "1.28.1",
|
|
35
|
+
"@tamagui/compose-refs": "1.28.1",
|
|
36
|
+
"@tamagui/core": "1.28.1",
|
|
37
|
+
"@tamagui/create-context": "1.28.1",
|
|
38
|
+
"@tamagui/portal": "1.28.1",
|
|
39
|
+
"@tamagui/remove-scroll": "1.28.1",
|
|
40
|
+
"@tamagui/scroll-view": "1.28.1",
|
|
41
|
+
"@tamagui/stacks": "1.28.1",
|
|
42
|
+
"@tamagui/use-constant": "1.28.1",
|
|
43
|
+
"@tamagui/use-controllable-state": "1.28.1",
|
|
44
|
+
"@tamagui/use-keyboard-visible": "1.28.1"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"react": "*",
|
|
48
48
|
"react-native": "*"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@tamagui/build": "1.
|
|
51
|
+
"@tamagui/build": "1.28.1",
|
|
52
52
|
"react": "^18.2.0",
|
|
53
53
|
"react-native": "^0.71.7"
|
|
54
54
|
},
|
package/src/createSheet.tsx
CHANGED
|
@@ -114,6 +114,8 @@ export function createSheet({ Handle, Frame, Overlay }: CreateSheetProps) {
|
|
|
114
114
|
* Sheet
|
|
115
115
|
* -----------------------------------------------------------------------------------------------*/
|
|
116
116
|
|
|
117
|
+
const SHEET_COVER_NAME = `${SHEET_NAME}Cover`
|
|
118
|
+
|
|
117
119
|
const SheetFrame = Frame.extractable(
|
|
118
120
|
forwardRef(
|
|
119
121
|
(
|
|
@@ -146,13 +148,14 @@ export function createSheet({ Handle, Frame, Overlay }: CreateSheetProps) {
|
|
|
146
148
|
</Frame>
|
|
147
149
|
</RemoveScroll>
|
|
148
150
|
|
|
149
|
-
{/* below frame hide when bouncing past 100% */}
|
|
151
|
+
{/* below frame hide when bouncing past 100% */}
|
|
150
152
|
{!props.disableHideBottomOverflow && (
|
|
151
153
|
<Frame
|
|
154
|
+
componentName={SHEET_COVER_NAME}
|
|
152
155
|
{...props}
|
|
153
156
|
children={null}
|
|
154
157
|
position="absolute"
|
|
155
|
-
bottom={
|
|
158
|
+
bottom={-20}
|
|
156
159
|
maxHeight={300}
|
|
157
160
|
left={0}
|
|
158
161
|
right={0}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSheet.d.ts","sourceRoot":"","sources":["../src/createSheet.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,iCAAiC,EAIlC,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,iBAAiB,EACjB,aAAa,EAId,MAAM,OAAO,CAAA;AACd,OAAO,EAAY,IAAI,EAAE,MAAM,cAAc,CAAA;AAO7C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAGtD,KAAK,gBAAgB,GAAG;IACtB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,SAAS,GAAG,UAAU,GAAG,gBAAgB,CAAA;AAE9C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;IACrE,MAAM,EAAE,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;IACtE,OAAO,EAAE,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;CACxE,CAAA;AAED,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA8B1D,iBAAiB,SAAS,cAAc,CAAC,CAAC;6CA5BvB,iBAAiB,SAAS,aAAa,CAAC,CAAC;;;;;;;;;;;;;;uBA4B5D,iBAAiB,SAAS,cAAc,CAAC,CAAC;yCA5BvB,iBAAiB,SAAS,aAAa,CAAC,CAAC;;;;;;;;
|
|
1
|
+
{"version":3,"file":"createSheet.d.ts","sourceRoot":"","sources":["../src/createSheet.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,iCAAiC,EAIlC,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,iBAAiB,EACjB,aAAa,EAId,MAAM,OAAO,CAAA;AACd,OAAO,EAAY,IAAI,EAAE,MAAM,cAAc,CAAA;AAO7C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAGtD,KAAK,gBAAgB,GAAG;IACtB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,SAAS,GAAG,UAAU,GAAG,gBAAgB,CAAA;AAE9C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;IACrE,MAAM,EAAE,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;IACtE,OAAO,EAAE,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;CACxE,CAAA;AAED,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA8B1D,iBAAiB,SAAS,cAAc,CAAC,CAAC;6CA5BvB,iBAAiB,SAAS,aAAa,CAAC,CAAC;;;;;;;;;;;;;;uBA4B5D,iBAAiB,SAAS,cAAc,CAAC,CAAC;yCA5BvB,iBAAiB,SAAS,aAAa,CAAC,CAAC;;;;;;;;EA2KzE"}
|