'use client' import {createContext, ReactNode, useCallback, useContext, useEffect, useMemo, useState} from 'react' import Link from 'next/link' import Image from 'next/image' import {LinkItem, MenuItem} from './navs' import SolutionMenu from './solution' import ProductMenu from './product' import HelpMenu from './help' import Wrap from '@/components/wrap' import logo from '@/assets/logo.webp' import {Button} from '@/components/ui/button' import {useProfileStore} from '@/components/providers/StoreProvider' import UserCenter from '@/components/composites/user-center' export const HeaderContext = createContext<{ setMenu: (value: boolean) => void } | null>(null) export type ProviderProps = {} export default function Provider(props: ProviderProps) { // ====================== // 滚动条状态 // ====================== 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(() => [ , , , ], []) // ====================== // 用户信息 // ====================== const profile = useProfileStore(store => store.profile) // ====================== // render // ====================== return ( {/* logo */} {/* 菜单 */} { setMenu(true) setPage(0) }} onLeave={() => { return setMenu(false) }} /> { setMenu(true) setPage(1) }} onLeave={() => { return setMenu(false) }} /> { setMenu(true) setPage(2) }} onLeave={() => { return setMenu(false) }} /> {/* 登录 */} {profile == undefined ? ( <> 登录 注册 > ) : ( // // // 进入控制台 // // ) } {/* 下拉菜单 */} setMenu(true)} onPointerLeave={() => setMenu(false)} > {pages[page]} ) }