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
61 lines • 2.11 kB
JavaScript
import { Giscus } from '@lobehub/ui/awesome';
import { useResponsive } from 'antd-style';
import { useOutlet } from 'dumi';
import { memo, useCallback, useEffect } from 'react';
import { Center } from 'react-layout-kit';
import ApiHeader from "dumi/theme/slots/ApiHeader";
import Content from "dumi/theme/slots/Content";
import { apiHeaderSelectors, siteSelectors, useSiteStore } from "../../store";
import { useStyles } from "./styles";
import { jsx as _jsx } from "react/jsx-runtime";
import { jsxs as _jsxs } from "react/jsx-runtime";
var Documents = /*#__PURE__*/memo(function () {
var outlet = useOutlet();
var _useResponsive = useResponsive(),
mobile = _useResponsive.mobile;
var _useSiteStore = useSiteStore(function (s) {
return {
giscus: siteSelectors.giscus(s),
isApiPage: apiHeaderSelectors.isApiPage(s),
pathname: s.location.pathname
};
}),
isApiPage = _useSiteStore.isApiPage,
giscus = _useSiteStore.giscus,
pathname = _useSiteStore.pathname;
var _useStyles = useStyles(),
styles = _useStyles.styles;
useEffect(function () {
var _window, _document;
(_window = window) === null || _window === void 0 || _window.scrollTo(0, 0);
(_document = document) === null || _document === void 0 || _document.body.scrollTo(0, 0);
}, [pathname]);
var Comment = useCallback(function () {
return giscus && /*#__PURE__*/_jsx("div", {
style: {
marginTop: 64
},
children: /*#__PURE__*/_jsx(Giscus, {
category: giscus.category,
categoryId: giscus.categoryId,
id: "giscus",
mapping: "title",
repo: giscus.repo,
repoId: giscus.repoId
})
});
}, [giscus, pathname]);
return /*#__PURE__*/_jsxs(Center, {
className: styles.content,
style: {
marginBottom: 48,
padding: mobile ? 0 : 24
},
children: [isApiPage && /*#__PURE__*/_jsx(ApiHeader, {
padding: mobile ? 16 : 0
}), /*#__PURE__*/_jsxs(Content, {
children: [outlet, giscus && /*#__PURE__*/_jsx(Comment, {})]
})]
});
});
export default Documents;