dumi-theme-antd-web3
Version:
Ant Design 5.0 官网风格类似的 dumi2 主题插件
93 lines (92 loc) • 8.49 kB
JavaScript
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;