import CONFIG from './config' import { createContext, useContext, useEffect, useRef } from 'react' import { isBrowser } from '@/lib/utils' import { useGlobal } from '@/lib/global' import { AdSlot } from '@/components/GoogleAdsense' import { siteConfig } from '@/lib/config' import { Transition } from '@headlessui/react' import Link from 'next/link' import { Style } from './style' import replaceSearchResult from '@/components/Mark' import dynamic from 'next/dynamic' import NotionPage from '@/components/NotionPage' import AlgoliaSearchModal from '@/components/AlgoliaSearchModal' // 主题组件 const BlogListScroll = dynamic(() => import('./components/BlogListScroll'), { ssr: false }); const BlogArchiveItem = dynamic(() => import('./components/BlogArchiveItem'), { ssr: false }); const ArticleLock = dynamic(() => import('./components/ArticleLock'), { ssr: false }); const ArticleInfo = dynamic(() => import('./components/ArticleInfo'), { ssr: false }); const Comment = dynamic(() => import('@/components/Comment'), { ssr: false }); const ArticleAround = dynamic(() => import('./components/ArticleAround'), { ssr: false }); const ShareBar = dynamic(() => import('@/components/ShareBar'), { ssr: false }); const TopBar = dynamic(() => import('./components/TopBar'), { ssr: false }); const Header = dynamic(() => import('./components/Header'), { ssr: false }); const NavBar = dynamic(() => import('./components/NavBar'), { ssr: false }); const SideBar = dynamic(() => import('./components/SideBar'), { ssr: false }); const JumpToTopButton = dynamic(() => import('./components/JumpToTopButton'), { ssr: false }); const Footer = dynamic(() => import('./components/Footer'), { ssr: false }); const SearchInput = dynamic(() => import('./components/SearchInput'), { ssr: false }); const WWAds = dynamic(() => import('@/components/WWAds'), { ssr: false }); const BlogListPage = dynamic(() => import('./components/BlogListPage'), { ssr: false }) // 主题全局状态 const ThemeGlobalSimple = createContext() export const useSimpleGlobal = () => useContext(ThemeGlobalSimple) /** * 基础布局 * * @param {*} props * @returns */ const LayoutBase = props => { const { children, slotTop } = props const { onLoading, fullWidth } = useGlobal() const searchModal = useRef(null) return (