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 { Transition } from '@headlessui/react' 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' const AlgoliaSearchModal = dynamic( () => import('@/components/AlgoliaSearchModal'), { ssr: false } ) // 主题组件 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 RecommendPosts = dynamic(() => import('./components/RecommendPosts'), { 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 (