/**
 * RequireAdmin - 管理员守卫
 * 
 * 非管理员时跳转到个人资料页。
 * 修复：加入 isLoading 检查，避免会话恢复期间误跳转。
 */

import { Navigate } from 'react-router-dom'
import { useAuth } from '@/app/providers/auth-context'
import type { ReactNode } from 'react'

interface RequireAdminProps {
  children: ReactNode
}

export function RequireAdmin({ children }: RequireAdminProps) {
  const { isAdmin, isLoading } = useAuth()

  // 会话恢复中，等待完成再判断
  if (isLoading) {
    return null
  }

  // 非管理员，跳转到个人资料页
  if (!isAdmin) {
    return <Navigate to="/profile" replace />
  }

  return children
}
