UNPKG

dumi-theme-nocobase

Version:
87 lines (86 loc) 7.96 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, useMemo } from 'react'; 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 Homepage from "../HomePageLayout"; import SidebarLayout from "../SidebarLayout"; import { jsx as ___EmotionJSX } from "@emotion/react"; var _ref = process.env.NODE_ENV === "production" ? { name: "zyllbl", styles: "display:flex;flex-direction:column;height:100vh" } : { name: "1dj3qmt-layoutWrap", styles: "display:flex;flex-direction:column;height:100vh;label:layoutWrap;", map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZbUIiLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgSGVsbWV0LCBPdXRsZXQsIHVzZUxvY2FsZSwgdXNlTG9jYXRpb24sIHVzZU91dGxldCwgdXNlUm91dGVNZXRhLCB1c2VTaXRlRGF0YSB9IGZyb20gJ2R1bWknO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdHlwZSBGQyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBHbG9iYWxTdHlsZXMgZnJvbSAnLi4vLi4vY29tbW9uL0dsb2JhbFN0eWxlcyc7XG5pbXBvcnQgdXNlTG9jYWxlVmFsdWUgZnJvbSAnLi4vLi4vaG9va3MvdXNlTG9jYWxlVmFsdWUnO1xuaW1wb3J0IEZvb3RlciBmcm9tICcuLi8uLi9zbG90cy9Gb290ZXInO1xuaW1wb3J0IEhlYWRlciBmcm9tICcuLi8uLi9zbG90cy9IZWFkZXInO1xuaW1wb3J0IEhvbWVwYWdlIGZyb20gJy4uL0hvbWVQYWdlTGF5b3V0JztcbmltcG9ydCBTaWRlYmFyTGF5b3V0IGZyb20gJy4uL1NpZGViYXJMYXlvdXQnO1xuXG5jb25zdCB1c2VTdHlsZXMgPSAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgbGF5b3V0V3JhcDogY3NzYFxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIGBcbiAgfTtcbn07XG5cbmNvbnN0IERvY0xheW91dDogRkMgPSAoKSA9PiB7XG4gIGNvbnN0IG91dGxldCA9IHVzZU91dGxldCgpO1xuICBjb25zdCBsb2NhbGUgPSB1c2VMb2NhbGUoKTtcbiAgY29uc3QgbG9jYXRpb24gPSB1c2VMb2NhdGlvbigpO1xuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMoKTtcbiAgY29uc3Qgcm91dGVNZXRhID0gdXNlUm91dGVNZXRhKCk7XG4gIGNvbnN0IHRpdGxlID0gdXNlTG9jYWxlVmFsdWUoJ3RpdGxlJyk7XG4gIGNvbnN0IGRlc2NyaXB0aW9uID0gdXNlTG9jYWxlVmFsdWUoJ2Rlc2NyaXB0aW9uJyk7XG4gIGNvbnN0IHsgcGF0aG5hbWUsIGhhc2ggfSA9IGxvY2F0aW9uO1xuICBjb25zdCB7IGxvYWRpbmcgfSA9IHVzZVNpdGVEYXRhKCk7XG4gIGNvbnN0IGlzNDA0SG9tZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gcGF0aG5hbWUuc3RhcnRzV2l0aCgnL2luZGV4JykgJiYgcm91dGVNZXRhLnRleHRzLmxlbmd0aCA9PT0gMCxcbiAgICBbcGF0aG5hbWUsIHJvdXRlTWV0YV1cbiAgKTtcbiAgY29uc3QgY29udGVudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIFsnJywgJy8nXS5zb21lKChwYXRoKSA9PiBwYXRoID09PSBwYXRobmFtZSkgfHxcbiAgICAgIFsnL2luZGV4J10uc29tZSgocGF0aCkgPT4gcGF0aG5hbWUuc3RhcnRzV2l0aChwYXRoKSlcbiAgICApIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICB7b3V0bGV0ICYmICFpczQwNEhvbWUgPyBvdXRsZXQgOiA8SG9tZXBhZ2UgLz59XG4gICAgICAgICAgPEZvb3RlciAvPlxuICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvdXRlTWV0YS5mcm9udG1hdHRlcj8uc2lkZWJhciA9PT0gZmFsc2UgPyAoXG4gICAgICA8ZGl2IHN0eWxlPXt7IHBhZGRpbmc6IDUwIH19PlxuICAgICAgICA8T3V0bGV0IC8+XG4gICAgICA8L2Rpdj5cbiAgICApIDogKFxuICAgICAgPFNpZGViYXJMYXlvdXQ+XG4gICAgICAgIDxPdXRsZXQgLz5cbiAgICAgIDwvU2lkZWJhckxheW91dD5cbiAgICApO1xuICB9LCBbcm91dGVNZXRhLmZyb250bWF0dGVyPy5zaWRlYmFyLCBvdXRsZXQsIHBhdGhuYW1lLCBpczQwNEhvbWVdKTtcblxuICAvLyBoYW5kbGUgaGFzaCBjaGFuZ2Ugb3IgdmlzaXQgcGFnZSBoYXNoIGZyb20gTGluayBjb21wb25lbnQsIGFuZCBqdW1wIGFmdGVyIGFzeW5jIGNodW5rIGxvYWRlZFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlkID0gaGFzaC5yZXBsYWNlKCcjJywgJycpO1xuICAgIGlmIChpZCkgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGVjb2RlVVJJQ29tcG9uZW50KGlkKSk/LnNjcm9sbEludG9WaWV3KCk7XG4gIH0sIFtsb2FkaW5nLCBoYXNoXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNzcz17c3R5bGVzLmxheW91dFdyYXB9PlxuICAgICAgPEhlbG1ldCBlbmNvZGVTcGVjaWFsQ2hhcmFjdGVycz17ZmFsc2V9PlxuICAgICAgICA8aHRtbCBsYW5nPXtsb2NhbGUuaWR9IC8+XG4gICAgICAgIDx0aXRsZT57YCR7dGl0bGUgfHwgJ2R1bWknfSR7ZGVzY3JpcHRpb24gPyBgLSR7ZGVzY3JpcHRpb259YCA6ICcnfWB9PC90aXRsZT5cbiAgICAgICAgPGxpbmtcbiAgICAgICAgICBzaXplcz1cIjE0NHgxNDRcIlxuICAgICAgICAgIGhyZWY9XCJodHRwczovL2d3LmFsaXBheW9iamVjdHMuY29tL3pvcy9hbnRmaW5jZG4vVW1WbnQzdDRUMC9hbnRkLnBuZ1wiXG4gICAgICAgIC8+XG4gICAgICAgIDxtZXRhIG5hbWU9XCJkZXNjcmlwdGlvblwiIGNvbnRlbnQ9e2Rlc2NyaXB0aW9ufSAvPlxuICAgICAgICA8bWV0YSBwcm9wZXJ0eT1cIm9nOnRpdGxlXCIgY29udGVudD17dGl0bGV9IC8+XG4gICAgICAgIDxtZXRhIHByb3BlcnR5PVwib2c6dHlwZVwiIGNvbnRlbnQ9XCJ3ZWJzaXRlXCIgLz5cbiAgICAgICAgPG1ldGFcbiAgICAgICAgICBwcm9wZXJ0eT1cIm9nOmltYWdlXCJcbiAgICAgICAgICBjb250ZW50PVwiaHR0cHM6Ly9ndy5hbGlwYXlvYmplY3RzLmNvbS96b3Mvcm1zcG9ydGFsL3JscFRMbGJNelROWXVaR0dDVllNLnBuZ1wiXG4gICAgICAgIC8+XG4gICAgICA8L0hlbG1ldD5cbiAgICAgIDxHbG9iYWxTdHlsZXMgLz5cbiAgICAgIDxIZWFkZXIgLz5cbiAgICAgIHtjb250ZW50fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRG9jTGF5b3V0O1xuIl19 */", toString: _EMOTION_STRINGIFIED_CSS_ERROR__ }; var useStyles = function useStyles() { return { layoutWrap: _ref }; }; var DocLayout = function DocLayout() { var _routeMeta$frontmatte2; 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 is404Home = useMemo(function () { return pathname.startsWith('/index') && routeMeta.texts.length === 0; }, [pathname, routeMeta]); 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 && !is404Home ? 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", { style: { padding: 50 } }, ___EmotionJSX(Outlet, null)) : ___EmotionJSX(SidebarLayout, null, ___EmotionJSX(Outlet, null)); }, [(_routeMeta$frontmatte2 = routeMeta.frontmatter) === null || _routeMeta$frontmatte2 === void 0 ? void 0 : _routeMeta$frontmatte2.sidebar, outlet, pathname, is404Home]); // handle hash change or visit page hash from Link component, and jump after async chunk loaded useEffect(function () { var _document$getElementB; var id = hash.replace('#', ''); if (id) (_document$getElementB = document.getElementById(decodeURIComponent(id))) === null || _document$getElementB === void 0 || _document$getElementB.scrollIntoView(); }, [loading, hash]); return ___EmotionJSX("div", { css: styles.layoutWrap }, ___EmotionJSX(Helmet, { encodeSpecialCharacters: false }, ___EmotionJSX("html", { lang: locale.id }), ___EmotionJSX("title", null, "".concat(title || 'dumi').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;