'use client' import AlgoliaSearchModal from '@/components/AlgoliaSearchModal' import Comment from '@/components/Comment' import replaceSearchResult from '@/components/Mark' import NotionPage from '@/components/NotionPage' import ShareBar from '@/components/ShareBar' import { siteConfig } from '@/lib/config' import { useGlobal } from '@/lib/global' import { loadWowJS } from '@/lib/plugins/wow' import { isBrowser } from '@/lib/utils' import { Transition } from '@headlessui/react' import { useRouter } from 'next/router' import { createContext, useContext, useEffect, useRef, useState } from 'react' import Announcement from './components/Announcement' import ArchiveDateList from './components/ArchiveDateList' import ArticleFooter from './components/ArticleFooter' import { ArticleHeader } from './components/ArticleInfo' import { ArticleLock } from './components/ArticleLock' import BlogListGroupByDate from './components/BlogListGroupByDate' import BlogRecommend from './components/BlogRecommend' import CategoryGroup from './components/CategoryGroup' import CategoryItem from './components/CategoryItem' import { Footer } from './components/Footer' import { Header } from './components/Header' import { HomeBackgroundImage } from './components/HomeBackgroundImage' import JumpToTopButton from './components/JumpToTopButton' import LatestPostsGroup from './components/LatestPostsGroup' import SlotBar from './components/SlotBar' import Swiper from './components/Swiper' import TagGroups from './components/TagGroups' import TagItem from './components/TagItem' import CONFIG from './config' import { Style } from './style' // 主题全局状态 const ThemeGlobalPhoto = createContext() export const usePhotoGlobal = () => useContext(ThemeGlobalPhoto) /** * 基础布局框架 * 1.其它页面都嵌入在LayoutBase中 * 2.采用左右两侧布局,移动端使用顶部导航栏 * @returns {JSX.Element} * @constructor */ const LayoutBase = props => { const { children, slotTop } = props const { onLoading, fullWidth } = useGlobal() const collapseRef = useRef(null) const router = useRouter() const searchModal = useRef(null) const [expandMenu, updateExpandMenu] = useState(false) useEffect(() => { loadWowJS() }, []) // 首页背景图 const headerSlot = router.route === '/' && siteConfig('MOVIE_HOME_BACKGROUND', null, CONFIG) ? ( ) : null return (