import CONFIG from './config' import { useState, createContext, useContext, useEffect } from 'react' import Footer from './components/Footer' import InfoCard from './components/InfoCard' import RevolverMaps from './components/RevolverMaps' import Tabs from '@/components/Tabs' import TopNavBar from './components/TopNavBar' import SearchInput from './components/SearchInput' import BottomMenuBar from './components/BottomMenuBar' import { useGlobal } from '@/lib/global' import { useRouter } from 'next/router' import Live2D from '@/components/Live2D' import Announcement from './components/Announcement' import JumpToTopButton from './components/JumpToTopButton' import BlogPostListPage from './components/BlogPostListPage' import BlogPostListScroll from './components/BlogPostListScroll' import Catalog from './components/Catalog' import { ArticleLock } from './components/ArticleLock' import TagGroups from './components/TagGroups' import CategoryGroup from './components/CategoryGroup' import { isBrowser } from '@/lib/utils' import BlogArchiveItem from './components/BlogArchiveItem' import BlogPostBar from './components/BlogPostBar' import NotionPage from '@/components/NotionPage' import Comment from '@/components/Comment' import ArticleAround from './components/ArticleAround' import TocDrawer from './components/TocDrawer' import CategoryItem from './components/CategoryItem' import TagItemMini from './components/TagItemMini' import ShareBar from '@/components/ShareBar' import Link from 'next/link' import { Transition } from '@headlessui/react' import { Style } from './style' import replaceSearchResult from '@/components/Mark' import ArticleInfo from './components/ArticleInfo' import { siteConfig } from '@/lib/config' // 主题全局状态 const ThemeGlobalMedium = createContext() export const useMediumGlobal = () => useContext(ThemeGlobalMedium) /** * 基础布局 * 采用左右两侧布局,移动端使用顶部导航栏 * @returns {JSX.Element} * @constructor */ const LayoutBase = props => { const { children, showInfoCard = true, slotRight, notice } = props const { locale } = useGlobal() const router = useRouter() const [tocVisible, changeTocVisible] = useState(false) const { onLoading, fullWidth } = useGlobal() const slotTop = return ( {/* CSS样式 */}