import { Navbar } from "@contentful/f36-navbar"; import { MagnifyingGlassIcon, QuestionIcon, GearSixIcon, } from "@contentful/f36-icons"; import { useAuth } from "../../contexts/AuthContext"; import { useMenu } from "../../contexts/MenuContext"; import { useNavigate, useLocation } from "react-router-dom"; import { useEffect, useState } from "react"; import type { JeecgMenu } from "../../types/menu"; import SearchModal from "../../components/SearchModal"; export default function Header() { const { menus, loading } = useAuth(); const { activeFirstMenu, setActiveFirstMenu, setActiveSecondMenu } = useMenu(); const navigate = useNavigate(); const location = useLocation(); const [isSearchOpen, setIsSearchOpen] = useState(false); // 获取顶级菜单(一级菜单) const topMenus = menus.filter((menu) => !menu.hidden && !menu.meta?.hideMenu); // 根据当前路由自动设置活动菜单 useEffect(() => { const path = location.pathname; const segments = path.split("/").filter(Boolean); const firstPath = segments[0]; const matchedMenu = topMenus.find((menu) => { const menuPath = menu.path || ""; const menuSegments = menuPath.split("/").filter(Boolean); return menuSegments[0] === firstPath; }); if (matchedMenu && matchedMenu.id !== activeFirstMenu?.id) { setActiveFirstMenu(matchedMenu); setActiveSecondMenu(null); } }, [ location.pathname, topMenus, activeFirstMenu, setActiveFirstMenu, setActiveSecondMenu, ]); // 处理菜单点击 const handleMenuClick = (menu: JeecgMenu, child?: JeecgMenu) => { if (child) { // 点击子菜单 setActiveFirstMenu(menu); setActiveSecondMenu(child); navigate(child.path || ""); } else { // 点击一级菜单(无子菜单) setActiveFirstMenu(menu); setActiveSecondMenu(null); navigate(menu.path || ""); } }; // 跳转到权限管理 const toPermissionPage = () => { debugger; }; // 退出登录 const loginOut = () => { navigate('/login') } if (loading) { return