'use client' import BLOG from '@/blog.config' import CONFIG from './config' import { useEffect } from 'react' import { Header } from './components/Header' import { Nav } from './components/Nav' import { Footer } from './components/Footer' import { Title } from './components/Title' import { SideBar } from './components/SideBar' import { BlogListPage } from './components/BlogListPage' import { BlogListScroll } from './components/BlogListScroll' import { useGlobal } from '@/lib/global' import { ArticleLock } from './components/ArticleLock' import { ArticleInfo } from './components/ArticleInfo' import JumpToTopButton from './components/JumpToTopButton' import NotionPage from '@/components/NotionPage' import Comment from '@/components/Comment' import ShareBar from '@/components/ShareBar' import SearchInput from './components/SearchInput' import replaceSearchResult from '@/components/Mark' import { isBrowser } from '@/lib/utils' import BlogListGroupByDate from './components/BlogListGroupByDate' import CategoryItem from './components/CategoryItem' import TagItem from './components/TagItem' import { useRouter } from 'next/router' import { Transition } from '@headlessui/react' import { Style } from './style' import CommonHead from '@/components/CommonHead' /** * 基础布局框架 * 1.其它页面都嵌入在LayoutBase中 * 2.采用左右两侧布局,移动端使用顶部导航栏 * @returns {JSX.Element} * @constructor */ const LayoutBase = props => { const { children, slotTop, meta } = props const { onLoading } = useGlobal() // 增加一个状态以触发 Transition 组件的动画 // const [showTransition, setShowTransition] = useState(true) // useEffect(() => { // // 当 location 或 children 发生变化时,触发动画 // setShowTransition(false) // setTimeout(() => setShowTransition(true), 5) // }, [onLoading]) return (
{/* SEO信息 */}