brightyui
Version:
Brighty UI library
36 lines • 2.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var jsx_runtime_1 = require("react/jsx-runtime");
var react_1 = require("react");
var NavigationBar_module_scss_1 = tslib_1.__importDefault(require("../../../src/styles/NavigationBar.module.scss"));
var CloseIcon_1 = require("../../images/IconComponents/CloseIcon");
var Typography_1 = tslib_1.__importDefault(require("../Typography/Typography"));
var useOutsideClick_1 = tslib_1.__importDefault(require("../../hooks/useOutsideClick"));
var cnbuilder_1 = require("cnbuilder");
var NavigationBar = function (_a) {
var _b;
var title = _a.title, onClose = _a.onClose, open = _a.open, children = _a.children, noOverlay = _a.noOverlay;
var ref = (0, react_1.useRef)(null);
(0, useOutsideClick_1.default)([ref], onClose);
(0, react_1.useEffect)(function () {
var scrollY = window.scrollY;
if (open) {
document.body.style.position = 'fixed';
document.body.style.top = "-".concat(scrollY, "px");
}
else {
document.body.style.position = '';
document.body.style.top = '';
window.scrollTo(0, scrollY);
}
}, [open]);
if (!open) {
return null;
}
return ((0, jsx_runtime_1.jsx)("div", { className: (0, cnbuilder_1.cnb)(NavigationBar_module_scss_1.default.wrapper, (_b = {},
_b[NavigationBar_module_scss_1.default.wrapper__transparent] = noOverlay,
_b)), children: (0, jsx_runtime_1.jsxs)("div", { className: NavigationBar_module_scss_1.default.root, ref: ref, children: [(0, jsx_runtime_1.jsxs)("div", { className: NavigationBar_module_scss_1.default.top, children: [(0, jsx_runtime_1.jsx)(Typography_1.default, { children: title }), (0, jsx_runtime_1.jsx)("button", { className: NavigationBar_module_scss_1.default.closeButton, onClick: onClose, children: (0, jsx_runtime_1.jsx)(CloseIcon_1.CloseIcon, {}) })] }), (0, jsx_runtime_1.jsx)("div", { className: NavigationBar_module_scss_1.default.content, children: children })] }) }));
};
exports.default = NavigationBar;
//# sourceMappingURL=NavigationBar.js.map