'use client'; import { useRouter } from 'next/navigation'; import { useEffect } from 'react'; import { useAuthStore } from '@/lib/stores/auth-store'; interface ProtectedRouteProps { children: React.ReactNode; } /** * 受保护路由组件 * 检查用户登录状态,未登录则重定向到登录页 */ export function ProtectedRoute({ children }: ProtectedRouteProps) { const router = useRouter(); const { isAuthenticated, user } = useAuthStore(); useEffect(() => { if (!isAuthenticated || !user) { router.push('/login'); } }, [isAuthenticated, user, router]); if (!isAuthenticated || !user) { return null; } return <>{children}; }