import Collapse from '@/components/Collapse' import { siteConfig } from '@/lib/config' import { useGlobal } from '@/lib/global' import Link from 'next/link' import { useRouter } from 'next/router' import { useEffect, useState } from 'react' import { useMovieGlobal } from '..' import CONFIG from '../config' import { MenuItemCollapse } from './MenuItemCollapse' import { MenuItemDrop } from './MenuItemDrop' /** * 网站顶部 * @returns */ export const Header = props => { const { collapseRef, searchModal } = useMovieGlobal() const router = useRouter() const { customNav, customMenu } = props const { locale } = useGlobal() const [isOpen, setIsOpen] = useState(false) const [showSearch, setShowSearch] = useState(false) const toggleMenuOpen = () => { setIsOpen(!isOpen) } let links = [ { id: 1, icon: 'fa-solid fa-house', name: locale.NAV.INDEX, to: '/', show: siteConfig('MOVIE_MENU_INDEX', null, CONFIG) }, { id: 2, icon: 'fas fa-search', name: locale.NAV.SEARCH, to: '/search', show: siteConfig('MOVIE_MENU_SEARCH', null, CONFIG) }, { id: 3, icon: 'fas fa-archive', name: locale.NAV.ARCHIVE, to: '/archive', show: siteConfig('MOVIE_MENU_ARCHIVE', null, CONFIG) } // { icon: 'fas fa-folder', name: locale.COMMON.CATEGORY, to: '/category', show: siteConfig('MENU_CATEGORY', null, CONFIG) }, // { icon: 'fas fa-tag', name: locale.COMMON.TAGS, to: '/tag', show: siteConfig('MENU_TAG', null, CONFIG) } ] if (customNav) { links = links.concat(customNav) } for (let i = 0; i < links.length; i++) { if (links[i].id !== i) { links[i].id = i } } // 如果 开启自定义菜单,则覆盖Page生成的菜单 if (siteConfig('CUSTOM_MENU')) { links = customMenu } // 展示搜索框 const toggleShowSearchInput = () => { if (siteConfig('ALGOLIA_APP_ID')) { searchModal.current.openSearch() } else { setShowSearch(!showSearch) } } useEffect(() => { if (showSearch) { setTimeout(() => { document.getElementById('search').focus() }, 100) } }, [showSearch]) const onKeyUp = e => { if (e.keyCode === 13) { const search = document.getElementById('search').value if (search) { router.push({ pathname: '/search/' + search }) } } } const handleSearch = () => { const search = document.getElementById('search').value if (search) { router.push({ pathname: '/search/' + search }) } } return ( <> {siteConfig('TITLE')} {/* 右侧菜单 */} <> {links?.map((link, index) => link && link.show && )} {locale.COMMON.SEARCH} 搜索 {/* 移动端按钮 */} {isOpen ? : } > {/* 移动端菜单 */} {links?.map( (link, index) => link && link.show && ( collapseRef.current?.updateCollapseHeight(param)} key={index} link={link} /> ) )} > ) }