import CONFIG from './config' import { createContext, useContext, useEffect, useRef } from 'react' import Footer from './components/Footer' import SideRight from './components/SideRight' import TopNav from './components/TopNav' import { useGlobal } from '@/lib/global' import { isBrowser } from '@/lib/utils' import BlogPostListPage from './components/BlogPostListPage' import BlogPostListScroll from './components/BlogPostListScroll' import Hero from './components/Hero' import { useRouter } from 'next/router' import Card from './components/Card' import RightFloatArea from './components/RightFloatArea' import SearchNav from './components/SearchNav' import BlogPostArchive from './components/BlogPostArchive' import { ArticleLock } from './components/ArticleLock' import PostHeader from './components/PostHeader' import JumpToCommentButton from './components/JumpToCommentButton' import TocDrawer from './components/TocDrawer' import TocDrawerButton from './components/TocDrawerButton' import Comment from '@/components/Comment' import NotionPage from '@/components/NotionPage' import ArticleAdjacent from './components/ArticleAdjacent' import ArticleCopyright from './components/ArticleCopyright' import ArticleRecommend from './components/ArticleRecommend' import ShareBar from '@/components/ShareBar' import TagItemMini from './components/TagItemMini' import Link from 'next/link' import SlotBar from './components/SlotBar' import { Transition } from '@headlessui/react' import { Style } from './style' import replaceSearchResult from '@/components/Mark' import { siteConfig } from '@/lib/config' import AlgoliaSearchModal from '@/components/AlgoliaSearchModal' // 主题全局状态 const ThemeGlobalHexo = createContext() export const useHexoGlobal = () => useContext(ThemeGlobalHexo) /** * 基础布局 采用左右两侧布局,移动端使用顶部导航栏 * @param props * @returns {JSX.Element} * @constructor */ const LayoutBase = props => { const { post, children, slotTop, className } = props const { onLoading, fullWidth } = useGlobal() const router = useRouter() const headerSlot = post ? : (router.route === '/' && siteConfig('HEXO_HOME_BANNER_ENABLE', null, CONFIG) ? : null) const drawerRight = useRef(null) const tocRef = isBrowser ? document.getElementById('article-wrapper') : null const floatSlot = <> {post?.toc?.length > 1 &&
{ drawerRight?.current?.handleSwitchVisible() }} />
} // Algolia搜索框 const searchModal = useRef(null) return (