import CONFIG from './config' import { createContext, useEffect, useState, useContext, useRef } from 'react' import Nav from './components/Nav' import { Footer } from './components/Footer' import JumpToTopButton from './components/JumpToTopButton' import Live2D from '@/components/Live2D' import { useGlobal } from '@/lib/global' import Announcement from './components/Announcement' import { BlogListPage } from './components/BlogListPage' import { BlogListScroll } from './components/BlogListScroll' import { deepClone, 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 BlogListBar from './components/BlogListBar' import { Transition } from '@headlessui/react' import { Style } from './style' import replaceSearchResult from '@/components/Mark' import AlgoliaSearchModal from '@/components/AlgoliaSearchModal' import { siteConfig } from '@/lib/config' // 主题全局状态 const ThemeGlobalNobelium = createContext() export const useNobeliumGlobal = () => useContext(ThemeGlobalNobelium) /** * 基础布局 采用左右两侧布局,移动端使用顶部导航栏 * @returns {JSX.Element} * @constructor */ const LayoutBase = props => { const { children, post } = props const fullWidth = post?.fullWidth ?? false const { onLoading } = useGlobal() const searchModal = useRef(null) // 在列表中进行实时过滤 const [filterKey, setFilterKey] = useState('') const topSlot = return (