dumi-theme-nocobase
Version:
<h1 align="center">dumi-theme-nocobase</h1>
87 lines (86 loc) • 7.96 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, 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;