/* eslint-disable @next/next/no-img-element */ import Comment from '@/components/Comment' import { AdSlot } from '@/components/GoogleAdsense' import replaceSearchResult from '@/components/Mark' import NotionPage from '@/components/NotionPage' import { PWA as initialPWA } from '@/components/PWA' import ShareBar from '@/components/ShareBar' import { siteConfig } from '@/lib/config' import { loadWowJS } from '@/lib/plugins/wow' import { deepClone, isBrowser, shuffleArray } from '@/lib/utils' import Link from 'next/link' import { createContext, useContext, useEffect, useRef, useState } from 'react' import Announcement from './components/Announcement' import { ArticleLock } from './components/ArticleLock' import BlogArchiveItem from './components/BlogArchiveItem' import { BlogListPage } from './components/BlogListPage' import { BlogListScroll } from './components/BlogListScroll' import BlogPostBar from './components/BlogPostBar' import { Footer } from './components/Footer' import GameEmbed from './components/GameEmbed' import { GameListIndexCombine } from './components/GameListIndexCombine' import { GameListRelate } from './components/GameListRealate' import { GameListRecent } from './components/GameListRecent' import GroupCategory from './components/GroupCategory' import GroupTag from './components/GroupTag' import Header from './components/Header' import { MenuList } from './components/MenuList' import PostInfo from './components/PostInfo' import SideBarContent from './components/SideBarContent' import SideBarDrawer from './components/SideBarDrawer' import CONFIG from './config' import { Style } from './style' // const AlgoliaSearchModal = dynamic(() => import('@/components/AlgoliaSearchModal'), { ssr: false }) // 主题全局状态 const ThemeGlobalGame = createContext() export const useGameGlobal = () => useContext(ThemeGlobalGame) /** * 基础布局 采用左右两侧布局,移动端使用顶部导航栏 * @returns {JSX.Element} * @constructor */ const LayoutBase = props => { const { allNavPages, children, siteInfo, tagOptions, currentTag, categoryOptions, currentCategory } = props const searchModal = useRef(null) // 在列表中进行实时过滤 const [filterKey, setFilterKey] = useState('') const [filterGames, setFilterGames] = useState( deepClone( allNavPages?.filter(item => item.tags?.some( t => t === siteConfig('GAME_RECOMMEND_TAG', 'Recommend', CONFIG) ) ) ) ) const [recentGames, setRecentGames] = useState([]) const [sideBarVisible, setSideBarVisible] = useState(false) useEffect(() => { loadWowJS() }, []) return (