vite-pages-theme-basic
Version:
**This theme is deprecated. Please use vite-pages-theme-doc instead.**
59 lines • 3.38 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.renderNav = void 0;
const react_1 = __importDefault(require("react"));
const react_router_dom_1 = require("react-router-dom");
const next_1 = require("@alifd/next");
require("github-markdown-css/github-markdown.css");
const style_module_css_1 = __importDefault(require("./style.module.css"));
require("./global.css");
const search_1 = __importDefault(require("./search"));
const Layout = ({ sideMenuData, topNavs, logo, path, children, footer, pagesStaticData, topbarOperations, search, }) => {
const location = (0, react_router_dom_1.useLocation)();
return (react_1.default.createElement(next_1.ConfigProvider, { prefix: "vp-theme-" },
react_1.default.createElement(next_1.Shell, { className: style_module_css_1.default.layout },
react_1.default.createElement(next_1.Shell.Branding, null,
logo,
" "),
react_1.default.createElement(next_1.Shell.Action, null,
topbarOperations,
search && pagesStaticData && (react_1.default.createElement(search_1.default, { pagesStaticData: pagesStaticData })),
topNavs && (react_1.default.createElement(next_1.Nav, { direction: "hoz", embeddable: true, selectedKeys: "" }, renderNav(topNavs)))),
react_1.default.createElement(next_1.Shell.Navigation, { trigger: null },
react_1.default.createElement(next_1.Nav, { embeddable: true, selectedKeys: location.pathname }, renderNav(sideMenuData))),
react_1.default.createElement(next_1.Shell.Content, { className: style_module_css_1.default.content, key: path },
react_1.default.createElement(next_1.ConfigProvider, { prefix: "next-" },
react_1.default.createElement(react_1.default.Fragment, null, children))),
footer && react_1.default.createElement(next_1.Shell.Footer, null, footer))));
};
exports.default = Layout;
function renderNav(navs) {
return navs.map((item, idx) => {
if ('path' in item) {
return (react_1.default.createElement(next_1.Nav.Item, { key: item.path },
react_1.default.createElement(react_router_dom_1.Link, { to: (location) => {
if (location.search) {
// preserve query
return `${item.path}${location.search}`;
}
return item.path;
} }, item.text)));
}
if ('href' in item) {
return (react_1.default.createElement(next_1.Nav.Item, { key: item.href },
react_1.default.createElement("a", { href: item.href, target: "_blank" }, item.text)));
}
if ('group' in item) {
return (react_1.default.createElement(next_1.Nav.Group, { label: item.group, key: idx }, renderNav(item.children)));
}
if ('subNav' in item) {
return (react_1.default.createElement(next_1.Nav.SubNav, { label: item.subNav, key: idx }, renderNav(item.children)));
}
throw new Error(`unexpected nav`);
});
}
exports.renderNav = renderNav;
//# sourceMappingURL=index.js.map