import CONFIG from './config' import { createContext, useContext, useEffect, useState } from 'react' import Header from './components/Nav' import { useGlobal } from '@/lib/global' import { siteConfig } from '@/lib/config' import { BlogListPage } from './components/BlogListPage' import { BlogListScroll } from './components/BlogListScroll' import { isBrowser } from '@/lib/utils' import SearchNavBar from './components/SearchNavBar' import BlogArchiveItem from './components/BlogArchiveItem' import { ArticleLock } from './components/ArticleLock' import NotionPage from '@/components/NotionPage' import { ArticleInfo } from './components/ArticleInfo' import Comment from '@/components/Comment' import { ArticleFooter } from './components/ArticleFooter' import ShareBar from '@/components/ShareBar' import Link from 'next/link' import { Transition } from '@headlessui/react' import BottomNav from './components/BottomNav' import Modal from './components/Modal' import { Style } from './style' import replaceSearchResult from '@/components/Mark' import { useRouter } from 'next/router' // 主题全局状态 const ThemeGlobalPlog = createContext() export const usePlogGlobal = () => useContext(ThemeGlobalPlog) /** * 基础布局 采用左右两侧布局,移动端使用顶部导航栏 * @returns {JSX.Element} * @constructor */ const LayoutBase = props => { const { children, topSlot } = props const { onLoading } = useGlobal() const [showModal, setShowModal] = useState(false) const [modalContent, setModalContent] = useState(null) // 页面切换关闭遮罩 const router = useRouter() const closeModal = () => { setShowModal(false) } useEffect(() => { router.events.on('routeChangeComplete', closeModal) return () => { router.events.off('routeChangeComplete', closeModal) } }, [router.events]) return (