nice-ui
Version:
React design system, components, and utilities
42 lines (41 loc) • 1.74 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DocsPages = void 0;
const React = require("react");
const DocsMenu_1 = require("./DocsMenu");
const DocsRight_1 = require("./DocsRight");
const DocsRightIndex_1 = require("./DocsRightIndex");
const util_1 = require("./util");
const Space_1 = require("../../3-list-item/Space");
const TwoColumnLayout_1 = require("../TwoColumnLayout");
const Page_1 = require("../Page");
const constants_1 = require("../../constants");
const findPage = (page, steps) => {
if (!steps.length)
return page;
const [step, ...rest] = steps;
const child = page.children?.find((p) => p.slug === step);
if (!child)
return;
return findPage(child, rest);
};
const DocsPages = (props) => {
const { steps, page, top = constants_1.NiceUiSizes.TopNavHeight + constants_1.NiceUiSizes.TopNavHeight - 12 } = props;
const [, ...otherSteps] = steps;
// Preload in the background all children of the current page.
React.useEffect(() => {
util_1.pageutils.preloadChildren(page);
}, [page.to]);
let right = null;
if (!steps.length)
right = React.createElement(DocsRightIndex_1.default, { page: page });
else {
const innerPage = findPage(page, otherSteps);
if (innerPage)
right = React.createElement(DocsRight_1.default, { top: page, page: innerPage });
}
return (React.createElement(Page_1.Page, null,
React.createElement(Space_1.Space, { size: 3 }),
React.createElement(TwoColumnLayout_1.default, { sidebarTopPadding: 32, left: React.createElement(DocsMenu_1.default, { steps: steps, page: page }), top: top, right: right })));
};
exports.DocsPages = DocsPages;