import BLOG from '@/blog.config' import SideBarDrawer from '@/components/SideBarDrawer' import { useGlobal } from '@/lib/global' import { faBars, faSearch } from '@fortawesome/free-solid-svg-icons' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import Link from 'next/link' import { useCallback, useEffect, useRef } from 'react' import SearchDrawer from './SearchDrawer' import throttle from 'lodash.throttle' let windowTop = 0 /** * 顶部导航 * @param {*} param0 * @returns */ const TopNav = ({ tags, currentTag, post, posts, categories, currentCategory, autoHide = true }) => { const drawer = useRef() const { locale } = useGlobal() const searchDrawer = useRef() const scrollTrigger = useCallback(throttle(() => { const scrollS = window.scrollY if (scrollS >= windowTop && scrollS > 10) { const nav = document.querySelector('#sticky-nav') nav && nav.classList.replace('top-0', '-top-16') windowTop = scrollS } else { const nav = document.querySelector('#sticky-nav') nav && nav.classList.replace('-top-16', 'top-0') windowTop = scrollS } }, 200), []) // 监听滚动 useEffect(() => { if (BLOG.autoCollapsedNavBar) { scrollTrigger() window.addEventListener('scroll', scrollTrigger) } return () => { BLOG.autoCollapsedNavBar && window.removeEventListener('scroll', scrollTrigger) } }, []) return (
{/* 侧面抽屉 */} {/* 导航栏 */}
) } export default TopNav