'use client' import {useCallback, useEffect, useMemo, useState} from 'react' import Link from 'next/link' import Image from 'next/image' import {LinkItem, MenuItem} from './_server/navs' import SolutionMenu from './_client/solution' import ProductMenu from './_client/product' import HelpMenu from './_client/help' import Wrap from '@/components/wrap' import logo from '@/assets/logo.webp' export type HeaderProps = {} export default function Header(props: HeaderProps) { // ====================== // 滚动条状态 // ====================== const [scroll, setScroll] = useState(false) // Changed to false for client-side rendering const handleScroll = useCallback(() => { setScroll(window.scrollY > 48) }, []) useEffect(() => { // Initialize scroll state on client setScroll(window.scrollY > 48) window.addEventListener('scroll', handleScroll) return () => { window.removeEventListener('scroll', handleScroll) } }, [handleScroll]) // ====================== // 菜单状态 // ====================== const [menu, setMenu] = useState(false) const [page, setPage] = useState(0) const pages = useMemo(() => [ , , , ], []) // ====================== // 渲染组件 // ====================== return (
{/* logo */} {`logo`} {/* 菜单 */}
{/* 登录 */}
登录 注册
{/* 下拉菜单 */}
setMenu(true)} onPointerLeave={() => setMenu(false)} > {pages[page]}
) }