UNPKG

dumi-theme-antd-web3

Version:

Ant Design 5.0 官网风格类似的 dumi2 主题插件

93 lines (92 loc) 8.49 kB
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } import { css } from '@emotion/react'; import { Helmet, Outlet, useLocale, useLocation, useOutlet, useRouteMeta, useSiteData } from 'dumi'; import React, { useEffect, useContext, useMemo } from 'react'; import classNames from 'classnames'; import GlobalStyles from "../../common/GlobalStyles"; import useLocaleValue from "../../hooks/useLocaleValue"; import Footer from "dumi/theme/slots/Footer"; import Header from "dumi/theme/slots/Header"; import Contributors from "../../slots/Content/Contributors"; import Homepage from "../HomePageLayout"; import SidebarLayout from "../SidebarLayout"; import SiteContext from "dumi/theme/slots/SiteContext"; import "../../static/style"; import { jsx as ___EmotionJSX } from "@emotion/react"; var _ref = process.env.NODE_ENV === "production" ? { name: "11pfcjj", styles: "display:flex;flex-direction:column;min-height:100vh" } : { name: "rorlea-layoutWrap", styles: "display:flex;flex-direction:column;min-height:100vh;label:layoutWrap;", map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQm1CIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IEhlbG1ldCwgT3V0bGV0LCB1c2VMb2NhbGUsIHVzZUxvY2F0aW9uLCB1c2VPdXRsZXQsIHVzZVJvdXRlTWV0YSwgdXNlU2l0ZURhdGEgfSBmcm9tICdkdW1pJztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZUNvbnRleHQsIHVzZU1lbW8sIHR5cGUgRkMgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBHbG9iYWxTdHlsZXMgZnJvbSAnLi4vLi4vY29tbW9uL0dsb2JhbFN0eWxlcyc7XG5pbXBvcnQgdXNlTG9jYWxlVmFsdWUgZnJvbSAnLi4vLi4vaG9va3MvdXNlTG9jYWxlVmFsdWUnO1xuaW1wb3J0IEZvb3RlciBmcm9tICcuLi8uLi9zbG90cy9Gb290ZXInO1xuaW1wb3J0IEhlYWRlciBmcm9tICcuLi8uLi9zbG90cy9IZWFkZXInO1xuaW1wb3J0IENvbnRyaWJ1dG9ycyBmcm9tICcuLi8uLi9zbG90cy9Db250ZW50L0NvbnRyaWJ1dG9ycyc7XG5pbXBvcnQgSG9tZXBhZ2UgZnJvbSAnLi4vSG9tZVBhZ2VMYXlvdXQnO1xuaW1wb3J0IFNpZGViYXJMYXlvdXQgZnJvbSAnLi4vU2lkZWJhckxheW91dCc7XG5pbXBvcnQgU2l0ZUNvbnRleHQgZnJvbSAnLi4vLi4vc2xvdHMvU2l0ZUNvbnRleHQnO1xuaW1wb3J0ICcuLi8uLi9zdGF0aWMvc3R5bGUnO1xuXG5jb25zdCB1c2VTdHlsZXMgPSAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgbGF5b3V0V3JhcDogY3NzYFxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBgXG4gIH07XG59O1xuXG5jb25zdCBEb2NMYXlvdXQ6IEZDID0gKCkgPT4ge1xuICBjb25zdCBvdXRsZXQgPSB1c2VPdXRsZXQoKTtcbiAgY29uc3QgbG9jYWxlID0gdXNlTG9jYWxlKCk7XG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzKCk7XG4gIGNvbnN0IHJvdXRlTWV0YSA9IHVzZVJvdXRlTWV0YSgpO1xuICBjb25zdCB0aXRsZSA9IHVzZUxvY2FsZVZhbHVlKCd0aXRsZScpO1xuICBjb25zdCBkZXNjcmlwdGlvbiA9IHVzZUxvY2FsZVZhbHVlKCdkZXNjcmlwdGlvbicpO1xuICBjb25zdCB7IHBhdGhuYW1lLCBoYXNoIH0gPSBsb2NhdGlvbjtcbiAgY29uc3QgeyBsb2FkaW5nIH0gPSB1c2VTaXRlRGF0YSgpO1xuICBjb25zdCB7IGRpcmVjdGlvbiB9ID0gdXNlQ29udGV4dChTaXRlQ29udGV4dCk7XG5cbiAgY29uc3QgY29udGVudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIFsnJywgJy8nXS5zb21lKChwYXRoKSA9PiBwYXRoID09PSBwYXRobmFtZSkgfHxcbiAgICAgIFsnL2luZGV4J10uc29tZSgocGF0aCkgPT4gcGF0aG5hbWUuc3RhcnRzV2l0aChwYXRoKSlcbiAgICApIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICB7b3V0bGV0IHx8IDxIb21lcGFnZSAvPn1cbiAgICAgICAgICA8Rm9vdGVyIC8+XG4gICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gcm91dGVNZXRhLmZyb250bWF0dGVyPy5zaWRlYmFyID09PSBmYWxzZSA/IChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxPdXRsZXQgLz5cbiAgICAgIDwvZGl2PlxuICAgICkgOiAoXG4gICAgICA8U2lkZWJhckxheW91dD5cbiAgICAgICAgPE91dGxldCAvPlxuICAgICAgICA8Q29udHJpYnV0b3JzIGZpbGVuYW1lPXtyb3V0ZU1ldGEuZnJvbnRtYXR0ZXIuZmlsZW5hbWV9IC8+XG4gICAgICA8L1NpZGViYXJMYXlvdXQ+XG4gICAgKTtcbiAgfSwgW291dGxldCwgcGF0aG5hbWUsIHJvdXRlTWV0YV0pO1xuXG4gIC8vIGhhbmRsZSBoYXNoIGNoYW5nZSBvciB2aXNpdCBwYWdlIGhhc2ggZnJvbSBMaW5rIGNvbXBvbmVudCwgYW5kIGp1bXAgYWZ0ZXIgYXN5bmMgY2h1bmsgbG9hZGVkXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaWQgPSBoYXNoLnJlcGxhY2UoJyMnLCAnJyk7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkZWNvZGVVUklDb21wb25lbnQoaWQpKT8uc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICB9XG4gIH0sIFtsb2FkaW5nLCBoYXNoXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17c3R5bGVzLmxheW91dFdyYXB9PlxuICAgICAgPEhlbG1ldCBlbmNvZGVTcGVjaWFsQ2hhcmFjdGVycz17ZmFsc2V9PlxuICAgICAgICA8aHRtbFxuICAgICAgICAgIGxhbmc9e2xvY2FsZS5pZH1cbiAgICAgICAgICBkYXRhLWRpcmVjdGlvbj17ZGlyZWN0aW9ufVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhbJ2R1bWktdGhlbWUtYW50ZC1yb290JywgeyBydGw6IGRpcmVjdGlvbiA9PT0gJ3J0bCcgfV0pfVxuICAgICAgICAvPlxuICAgICAgICA8dGl0bGU+e2Ake3RpdGxlIHx8ICdkdW1pLXRoZW1lLWFudGQnfSR7ZGVzY3JpcHRpb24gPyBgLSR7ZGVzY3JpcHRpb259YCA6ICcnfWB9PC90aXRsZT5cbiAgICAgICAgPGxpbmtcbiAgICAgICAgICBzaXplcz1cIjE0NHgxNDRcIlxuICAgICAgICAgIGhyZWY9XCJodHRwczovL2d3LmFsaXBheW9iamVjdHMuY29tL3pvcy9hbnRmaW5jZG4vVW1WbnQzdDRUMC9hbnRkLnBuZ1wiXG4gICAgICAgIC8+XG4gICAgICAgIDxtZXRhIG5hbWU9XCJkZXNjcmlwdGlvblwiIGNvbnRlbnQ9e2Rlc2NyaXB0aW9ufSAvPlxuICAgICAgICA8bWV0YSBwcm9wZXJ0eT1cIm9nOnRpdGxlXCIgY29udGVudD17dGl0bGV9IC8+XG4gICAgICAgIDxtZXRhIHByb3BlcnR5PVwib2c6dHlwZVwiIGNvbnRlbnQ9XCJ3ZWJzaXRlXCIgLz5cbiAgICAgICAgPG1ldGFcbiAgICAgICAgICBwcm9wZXJ0eT1cIm9nOmltYWdlXCJcbiAgICAgICAgICBjb250ZW50PVwiaHR0cHM6Ly9ndy5hbGlwYXlvYmplY3RzLmNvbS96b3Mvcm1zcG9ydGFsL3JscFRMbGJNelROWXVaR0dDVllNLnBuZ1wiXG4gICAgICAgIC8+XG4gICAgICA8L0hlbG1ldD5cbiAgICAgIDxHbG9iYWxTdHlsZXMgLz5cbiAgICAgIDxIZWFkZXIgLz5cbiAgICAgIHtjb250ZW50fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRG9jTGF5b3V0O1xuIl19 */", toString: _EMOTION_STRINGIFIED_CSS_ERROR__ }; var useStyles = function useStyles() { return { layoutWrap: _ref }; }; var DocLayout = function DocLayout() { var outlet = useOutlet(); var locale = useLocale(); var location = useLocation(); var styles = useStyles(); var routeMeta = useRouteMeta(); var title = useLocaleValue('title'); var description = useLocaleValue('description'); var pathname = location.pathname, hash = location.hash; var _useSiteData = useSiteData(), loading = _useSiteData.loading; var _useContext = useContext(SiteContext), direction = _useContext.direction; var content = useMemo(function () { var _routeMeta$frontmatte; if (['', '/'].some(function (path) { return path === pathname; }) || ['/index'].some(function (path) { return pathname.startsWith(path); })) { return ___EmotionJSX(React.Fragment, null, outlet || ___EmotionJSX(Homepage, null), ___EmotionJSX(Footer, null)); } return ((_routeMeta$frontmatte = routeMeta.frontmatter) === null || _routeMeta$frontmatte === void 0 ? void 0 : _routeMeta$frontmatte.sidebar) === false ? ___EmotionJSX("div", null, ___EmotionJSX(Outlet, null)) : ___EmotionJSX(SidebarLayout, null, ___EmotionJSX(Outlet, null), ___EmotionJSX(Contributors, { filename: routeMeta.frontmatter.filename })); }, [outlet, pathname, routeMeta]); // handle hash change or visit page hash from Link component, and jump after async chunk loaded useEffect(function () { var id = hash.replace('#', ''); if (id) { var _document$getElementB; (_document$getElementB = document.getElementById(decodeURIComponent(id))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.scrollIntoView(); } }, [loading, hash]); return ___EmotionJSX("div", { css: styles.layoutWrap }, ___EmotionJSX(Helmet, { encodeSpecialCharacters: false }, ___EmotionJSX("html", { lang: locale.id, "data-direction": direction, className: classNames(['dumi-theme-antd-root', { rtl: direction === 'rtl' }]) }), ___EmotionJSX("title", null, "".concat(title || 'dumi-theme-antd').concat(description ? "-".concat(description) : '')), ___EmotionJSX("link", { sizes: "144x144", href: "https://gw.alipayobjects.com/zos/antfincdn/UmVnt3t4T0/antd.png" }), ___EmotionJSX("meta", { name: "description", content: description }), ___EmotionJSX("meta", { property: "og:title", content: title }), ___EmotionJSX("meta", { property: "og:type", content: "website" }), ___EmotionJSX("meta", { property: "og:image", content: "https://gw.alipayobjects.com/zos/rmsportal/rlpTLlbMzTNYuZGGCVYM.png" })), ___EmotionJSX(GlobalStyles, null), ___EmotionJSX(Header, null), content); }; export default DocLayout;