import { AdSlot } from '@/components/GoogleAdsense' import replaceSearchResult from '@/components/Mark' import NotionPage from '@/components/NotionPage' import { siteConfig } from '@/lib/config' import { useGlobal } from '@/lib/global' import { isBrowser } from '@/lib/utils' import dynamic from 'next/dynamic' import Link from 'next/link' import { useRouter } from 'next/router' import { createContext, useContext, useEffect, useRef } from 'react' import BlogPostBar from './components/BlogPostBar' import CONFIG from './config' import { Style } from './style' import Catalog from './components/Catalog' const AlgoliaSearchModal = dynamic( () => import('@/components/AlgoliaSearchModal'), { 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 TopBar = dynamic(() => import('./components/TopBar'), { ssr: false }) const NavBar = dynamic(() => import('./components/NavBar'), { ssr: false }) const JumpToTopButton = dynamic(() => import('./components/JumpToTopButton'), { ssr: false }) const Footer = dynamic(() => import('./components/Footer'), { ssr: false }) const WWAds = dynamic(() => import('@/components/WWAds'), { ssr: false }) const BlogListPage = dynamic(() => import('./components/BlogListPage'), { ssr: false }) const RecommendPosts = dynamic(() => import('./components/RecommendPosts'), { ssr: false }) // 主题全局状态 const ThemeGlobalSimple = createContext() export const useSimpleGlobal = () => useContext(ThemeGlobalSimple) /** * 基础布局 * * @param {*} props * @returns */ const LayoutBase = props => { const { children } = props const { onLoading, fullWidth } = useGlobal() // const onLoading = true const searchModal = useRef(null) return (