import AlgoliaSearchModal from '@/components/AlgoliaSearchModal' import Comment from '@/components/Comment' import { AdSlot } from '@/components/GoogleAdsense' import LoadingCover from '@/components/LoadingCover' import replaceSearchResult from '@/components/Mark' import NotionPage from '@/components/NotionPage' import ShareBar from '@/components/ShareBar' import WWAds from '@/components/WWAds' import DashboardBody from '@/components/ui/dashboard/DashboardBody' import DashboardHeader from '@/components/ui/dashboard/DashboardHeader' import { siteConfig } from '@/lib/config' import { useGlobal } from '@/lib/global' import { isBrowser } from '@/lib/utils' import { SignIn, SignUp } from '@clerk/nextjs' import Link from 'next/link' import { useRouter } from 'next/router' import { createContext, useContext, useEffect, useRef, useState } from 'react' import ArticleInfo from './components/ArticleInfo' import { ArticleLock } from './components/ArticleLock' import BannerFullWidth from './components/BannerFullWidth' import CTA from './components/CTA' import Catalog from './components/Catalog' import CatalogFloat from './components/CatalogFloat' import CategoryGroup from './components/CategoryGroup' import Footer from './components/Footer' import Header from './components/Header' import Hero from './components/Hero' import PostBannerGroupByCategory from './components/PostBannerGroupByCategory' import PostGroupArchive from './components/PostGroupArchive' import PostGroupLatest from './components/PostGroupLatest' import PostListPage from './components/PostListPage' import PostListRecommend from './components/PostListRecommend' import PostListScroll from './components/PostListScroll' import PostSimpleListHorizontal from './components/PostListSimpleHorizontal' import PostNavAround from './components/PostNavAround' import TagGroups from './components/TagGroups' import TagItemMini from './components/TagItemMini' import TouchMeCard from './components/TouchMeCard' import CONFIG from './config' import { Style } from './style' // 主题全局状态 const ThemeGlobalMagzine = createContext() export const useMagzineGlobal = () => useContext(ThemeGlobalMagzine) /** * 基础布局 * 采用左右两侧布局,移动端使用顶部导航栏 * @returns {JSX.Element} * @constructor */ const LayoutBase = props => { const { children } = props const [tocVisible, changeTocVisible] = useState(false) const searchModal = useRef(null) return ( {/* CSS样式 */}