import type { Route } from "./+types/login"; import { LoginForm } from "~/components/auth/login-form"; import { PublicRoute } from "~/components/auth/protected-route"; import { useAuth } from "~/contexts/auth-context"; import { useEffect, useState } from "react"; import { useNavigate, useSearchParams } from "react-router"; import { LoadingPage } from "~/components/ui/loading"; export function meta({}: Route.MetaArgs) { return [ { title: "ورود - سیستم مدیریت فناوری و نوآوری" }, { name: "description", content: "ورود به سیستم مدیریت فناوری و نوآوری اینوژن", }, { name: "keywords", content: "ورود, سیستم مدیریت, فناوری, نوآوری, اینوژن" }, { name: "robots", content: "noindex, nofollow" }, ]; } export default function Login() { const { isAuthenticated, isLoading } = useAuth(); const navigate = useNavigate(); const [searchParams] = useSearchParams(); const returnTo = searchParams.get("returnTo"); const [isRedirecting, setIsRedirecting] = useState(false); useEffect(() => { if (isAuthenticated && !isLoading && !isRedirecting) { setIsRedirecting(true); // Small delay to prevent flash setTimeout(() => { const redirectPath = returnTo && returnTo !== "/login" ? returnTo : "/dashboard"; navigate(redirectPath, { replace: true }); }, 100); } }, [isAuthenticated, isLoading, navigate, returnTo, isRedirecting]); const handleLoginSuccess = () => { if (!isRedirecting) { setIsRedirecting(true); const redirectPath = returnTo && returnTo !== "/login" ? returnTo : "/dashboard"; // Immediate redirect on successful login navigate(redirectPath, { replace: true }); } }; // Show loading state during redirect if (isAuthenticated && (isLoading || isRedirecting)) { return (
در حال هدایت به صفحه مقصد