import { useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; import { Link } from "@/shadcn-bridge/heroui/link"; import { Navbar as HeroUINavbar, NavbarBrand, NavbarContent, } from "@/shadcn-bridge/heroui/navbar"; import { BrandLogo } from "@/components/brand-logo"; import { siteConfig, getCachedConfig } from "@/config/site"; import { useWebViewMode } from "@/hooks/useWebViewMode"; export const Navbar = () => { const navigate = useNavigate(); // 初始状态使用siteConfig中已经从缓存读取的值,避免闪烁 const [appName, setAppName] = useState(siteConfig.name); const isWebView = useWebViewMode(); useEffect(() => { // 异步检查是否有更新的配置 const checkForUpdates = async () => { try { const cachedAppName = await getCachedConfig("app_name"); if (cachedAppName && cachedAppName !== appName) { setAppName(cachedAppName); // 同步更新siteConfig siteConfig.name = cachedAppName; } } catch {} }; // 延迟执行,避免阻塞初始渲染 const timer = setTimeout(checkForUpdates, 100); // 监听配置更新事件 const handleConfigUpdate = async () => { try { const cachedAppName = await getCachedConfig("app_name"); if (cachedAppName) { setAppName(cachedAppName); siteConfig.name = cachedAppName; } } catch {} }; window.addEventListener("configUpdated", handleConfigUpdate); return () => { clearTimeout(timer); window.removeEventListener("configUpdated", handleConfigUpdate); }; }, [appName]); return ( <>

{appName}

{/* WebView设置图标 */} {isWebView && ( )}
); };