@gravity-ui/uikit
Version:
Gravity UI base styling and components
35 lines (34 loc) • 1.66 kB
JavaScript
'use client';
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Sheet = void 0;
const tslib_1 = require("tslib");
const jsx_runtime_1 = require("react/jsx-runtime");
const React = tslib_1.__importStar(require("react"));
const react_1 = require("@floating-ui/react");
const Portal_1 = require("../Portal/Portal.js");
const SheetContent_1 = require("./SheetContent.js");
const constants_1 = require("./constants.js");
require("./Sheet.css");
const Sheet = ({ children, onClose, visible, id, title, className, contentClassName, swipeAreaClassName, allowHideOnContentScroll, hideTopBar, qa, }) => {
const [open, setOpen] = React.useState(visible);
const [prevVisible, setPrevVisible] = React.useState(visible);
if (!prevVisible && visible) {
setOpen(true);
}
if (visible !== prevVisible) {
setPrevVisible(visible);
}
const hideSheet = () => {
if (onClose) {
onClose();
}
setOpen(false);
};
if (!open) {
return null;
}
return ((0, jsx_runtime_1.jsx)(Portal_1.Portal, { children: (0, jsx_runtime_1.jsx)(react_1.FloatingOverlay, { "data-qa": qa, className: (0, constants_1.sheetBlock)(null, className), lockScroll: open, style: { overflow: undefined }, children: (0, jsx_runtime_1.jsx)(SheetContent_1.SheetContentContainer, { id: id, content: children, contentClassName: contentClassName, swipeAreaClassName: swipeAreaClassName, title: title, visible: visible, allowHideOnContentScroll: allowHideOnContentScroll, hideTopBar: hideTopBar, hideSheet: hideSheet }) }) }));
};
exports.Sheet = Sheet;
//# sourceMappingURL=Sheet.js.map