UNPKG

dumi-theme-lobehub

Version:

dumi-theme-lobehub is a documentation site theme package designed for dumi2. It provides a more beautiful and user-friendly development and reading experience based on @lobehub/ui

57 lines 2.19 kB
var _templateObject; function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } import { Tabs } from '@lobehub/ui'; import { createStyles } from 'antd-style'; import { Link, history } from 'dumi'; import NavbarExtra from 'dumi/theme-default/slots/NavbarExtra'; import { memo } from 'react'; import { siteSelectors, useSiteStore } from "../../store"; import { jsx as _jsx } from "react/jsx-runtime"; import { Fragment as _Fragment } from "react/jsx-runtime"; import { jsxs as _jsxs } from "react/jsx-runtime"; var useStyles = createStyles(function (_ref) { var css = _ref.css, stylish = _ref.stylish; return { link: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n ", "\n "])), stylish.resetLinkColor) }; }); var Navbar = /*#__PURE__*/memo(function () { var _useStyles = useStyles(), styles = _useStyles.styles; var regLink = /^(\w+:)\/\/|^(mailto|tel):/; var nav = useSiteStore(function (s) { return s.navData; }); var activePath = useSiteStore(siteSelectors.activePath); return /*#__PURE__*/_jsxs(_Fragment, { children: [/*#__PURE__*/_jsx(Tabs, { activeKey: activePath, items: nav.map(function (item) { return { key: String(item.activePath || item.link), label: regLink.test(item.link || '') ? /*#__PURE__*/_jsx("a", { className: styles.link, href: item.link, rel: "noreferrer", target: "_blank", children: item.title }) : /*#__PURE__*/_jsx(Link, { className: styles.link, to: item.link, children: item.title }) }; }), onChange: function onChange(path) { var _nav$find; var url = (_nav$find = nav.find(function (i) { return i.activePath === path || i.link === path; })) === null || _nav$find === void 0 ? void 0 : _nav$find.link; if (!url || regLink.test(url)) return; history.push(url); } }), /*#__PURE__*/_jsx(NavbarExtra, {})] }); }); export default Navbar;