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, useThemeStore } from '@/store';
import AntdV5MonkeyPatch from '../DocLayout/AntdV5MonkeyPatch';
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';
const App = memo(({ initState }: any) => {
const themeMode = useThemeStore((st) => st.themeMode, isEqual);
const outlet = useOutlet();
return (
createStore(initState)}>
{outlet}
);
});
export default memo(() => {
const siteData = useSiteData();
const sidebar = useSidebarData();
const routeMeta = useRouteMeta();
const tabMeta = useTabMeta();
const navData = useNavData();
const location = useLocation();
const locale = useLocale();
const initState = useMemo(
() => ({ locale, location, navData, routeMeta, sidebar, siteData, tabMeta }),
[],
);
return ;
});