@hopepaddy/dumi-theme
Version:
dumi-theme-hopepaddy 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
51 lines • 1.87 kB
JavaScript
import { ThemeProvider } from '@lobehub/ui';
import { useLocale, useLocation, useNavData, useOutlet, useRouteMeta, useSidebarData, useSiteData, useTabMeta } from 'dumi';
import isEqual from 'fast-deep-equal';
import { memo, useMemo } from 'react';
import { Provider, createStore as _createStore, useThemeStore } from "../../store";
import Analytics from "../DocLayout/Head/Analytics";
import Favicons from "../DocLayout/Head/Favicons";
import Og from "../DocLayout/Head/Og";
import StructuredData from "../DocLayout/Head/StructuredData";
import GlobalStyle from "./GlobalStyle";
import { jsx as _jsx } from "react/jsx-runtime";
import { jsxs as _jsxs } from "react/jsx-runtime";
var App = /*#__PURE__*/memo(function (_ref) {
var initState = _ref.initState;
var themeMode = useThemeStore(function (st) {
return st.themeMode;
}, isEqual);
var outlet = useOutlet();
return /*#__PURE__*/_jsxs(Provider, {
createStore: function createStore() {
return _createStore(initState);
},
children: [/*#__PURE__*/_jsx(Favicons, {}), /*#__PURE__*/_jsx(Og, {}), /*#__PURE__*/_jsx(Analytics, {}), /*#__PURE__*/_jsx(StructuredData, {}), /*#__PURE__*/_jsxs(ThemeProvider, {
themeMode: themeMode,
children: [/*#__PURE__*/_jsx(GlobalStyle, {}), outlet]
})]
});
});
export default /*#__PURE__*/memo(function () {
var siteData = useSiteData();
var sidebar = useSidebarData();
var routeMeta = useRouteMeta();
var tabMeta = useTabMeta();
var navData = useNavData();
var location = useLocation();
var locale = useLocale();
var initState = useMemo(function () {
return {
locale: locale,
location: location,
navData: navData,
routeMeta: routeMeta,
sidebar: sidebar,
siteData: siteData,
tabMeta: tabMeta
};
}, []);
return /*#__PURE__*/_jsx(App, {
initState: initState
});
});