'use client'; import { useEffect, useState } from 'react'; import { getAuthInfoFromBrowserCookie } from '@/lib/auth'; import { UpdateStatus } from '@/lib/version_check'; import { useVersionCheck } from './VersionCheckProvider'; import { VersionPanel } from './VersionPanel'; export const UpdateNotification: React.FC = () => { const { updateStatus, isChecking } = useVersionCheck(); const [isOwner, setIsOwner] = useState(false); const [isVersionPanelOpen, setIsVersionPanelOpen] = useState(false); const [isMobile, setIsMobile] = useState(false); useEffect(() => { // 检查认证信息 const authInfo = getAuthInfoFromBrowserCookie(); setIsOwner(authInfo?.role === 'owner'); // 检查是否是移动设备 const checkMobile = () => { setIsMobile(window.innerWidth < 768); }; checkMobile(); window.addEventListener('resize', checkMobile); return () => window.removeEventListener('resize', checkMobile); }, []); // 检查中、不是站长、是移动设备或没有更新时不渲染任何内容 if (isChecking || !isOwner || isMobile || updateStatus !== UpdateStatus.HAS_UPDATE) { return null; } return ( <> {/* 版本面板 */} setIsVersionPanelOpen(false)} /> ); };