UNPKG

@gravity-ui/uikit

Version:

Gravity UI base styling and components

35 lines (34 loc) 1.66 kB
'use client'; "use strict"; 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