UNPKG

@grandlinex/react-components

Version:
108 lines (107 loc) 5.53 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TabLayout = void 0; const react_1 = __importStar(require("react")); const FrameContext_1 = require("../context/FrameContext"); const Sidebar_1 = require("./Sidebar"); const Header_1 = require("./Header"); const Spinner_1 = __importDefault(require("../../../components/loading/Spinner")); const TabFrame_1 = require("./TabFrame"); const SidebarPanel_1 = require("./SidebarPanel"); const BlockingModal_1 = require("./BlockingModal"); const SpotlightModal_1 = require("./SpotlightModal"); const hooks_1 = require("../../../util/hooks"); const TabLayout = ({ header, init, preload, disableSideBar, tabRenderer, sideBar, tabs, globalRenderer, blockingModal, selectPanel, setPanel, panelRenderer, spotlightProps, spotlightOpen, hotKeys, }) => { const { tabsRight, tabsLeft, currentTabRight, currentTabLeft } = tabs; const tabRight = (0, react_1.useMemo)(() => { return tabsRight[currentTabRight]; }, [currentTabRight, tabsRight]); const rC = (0, react_1.useMemo)(() => { return new FrameContext_1.FrameContext({ mode: 'right', item: tabRight || null, classNameExtend: tabRight ? 'main-no--sidebar-half' : undefined, }); }, [tabRight]); const tabLeft = (0, react_1.useMemo)(() => { return tabsLeft[currentTabLeft]; }, [currentTabLeft, tabsLeft]); const lC = (0, react_1.useMemo)(() => { return new FrameContext_1.FrameContext({ mode: 'left', item: tabLeft || null, classNameExtend: tabRight ? 'main-no--sidebar-half' : undefined, }); }, [tabLeft, tabRight]); const [error, setError] = (0, react_1.useState)(false); (0, hooks_1.useKeyListener)(hotKeys || []); (0, react_1.useEffect)(() => { if (!error && !init) { preload(); } }, [error, init]); if (error) { return react_1.default.createElement("div", null, "Error loading translation"); } if (!init) { return (react_1.default.createElement("div", { className: "tab-layout--root" }, react_1.default.createElement(Header_1.Header, { tabs: { setCurrentTab: () => { }, addTab: () => { }, closeTab: () => { }, error: () => { }, moveTab: () => { }, tabsLeft: [], tabsRight: [], currentTabLeft: 0, currentTabRight: 0, }, prop: header }), react_1.default.createElement("div", { className: "main" }, react_1.default.createElement("div", { className: "row" }, react_1.default.createElement(Spinner_1.default, null))))); } return (react_1.default.createElement("div", { className: "tab-layout--root" }, blockingModal ? (react_1.default.createElement(BlockingModal_1.BlockingModal, { message: blockingModal.message, progress: blockingModal.progress })) : null, spotlightOpen && spotlightProps ? ( // eslint-disable-next-line react/jsx-props-no-spreading react_1.default.createElement(SpotlightModal_1.SpotlightModal, { ...spotlightProps })) : null, react_1.default.createElement(Header_1.Header, { tabs: tabs, prop: header }), panelRenderer ? (react_1.default.createElement(SidebarPanel_1.SidebarPanel, { c: { selectPanel, setPanel, panelRenderer, } })) : null, react_1.default.createElement("div", { className: "main--sidebar" }, disableSideBar || !sideBar ? null : (react_1.default.createElement(Sidebar_1.Sidebar, { botMenu: sideBar.botMenu, topMenu: sideBar.topMenu, onClickItem: sideBar.onClickItem }))), globalRenderer || (react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement(FrameContext_1.TabContext.Provider, { value: lC }, react_1.default.createElement(TabFrame_1.TabFrame, { tabRenderer: tabRenderer })), tabRight ? (react_1.default.createElement(FrameContext_1.TabContext.Provider, { value: rC }, react_1.default.createElement(TabFrame_1.TabFrame, { tabRenderer: tabRenderer }))) : null)))); }; exports.TabLayout = TabLayout;