import { Navigate } from "react-router";
import { useMe } from "../hooks/useAuth";

interface ProtectedRouteProps {
  children: React.ReactNode;
}

/**
 * Компонент для защиты роутов - перенаправляет неавторизованных пользователей на страницу логина
 */
function ProtectedRoute({ children }: ProtectedRouteProps) {
  const { data: user, isLoading } = useMe();

  // Показываем загрузку пока проверяем авторизацию
  if (isLoading) {
    return (
      <div className="flex justify-center items-center min-h-screen">
        <div className="text-xl">Проверка авторизации...</div>
      </div>
    );
  }

  // Если пользователь не авторизован - перенаправляем на логин
  if (!user) {
    return <Navigate to="/login" replace />;
  }

  // Если авторизован - показываем защищённый контент
  return <>{children}</>;
}

export default ProtectedRoute;
