UNPKG

vite-pages-theme-basic

Version:

**This theme is deprecated. Please use vite-pages-theme-doc instead.**

59 lines 3.38 kB
"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