import { useEffect, useState, useRef } from "react"; import { useLocation } from "react-router-dom"; import Background from "../../assets/backgrounds/Background"; import { notifySuccess, notifyError } from "../../components/Toastify/toastifyServices"; import { verifyEmail } from "../../api/userApi"; import HandleNavigate from "../../utils/HandleNavigate/HandleNavigate"; export default function VerifyEmailPage() { const { goLogin } = HandleNavigate(); const location = useLocation(); const [status, setStatus] = useState("loading"); const [message, setMessage] = useState("Email címe hitelesítés alatt..."); const hasNotified = useRef(false); useEffect(() => { const queryParams = new URLSearchParams(location.search); const token = queryParams.get("token"); if (!token) { setStatus("error"); setMessage("Hiányzó hitelesítő token!"); if (!hasNotified.current) { notifyError("❌ Hiányzó hitelesítő token!"); hasNotified.current = true; } return; } const verify = async () => { try { const response = await verifyEmail(token); const data = response.data; if (data?.success) { setStatus("success"); setMessage("Sikeres hitelesítés!"); if (!hasNotified.current) { notifySuccess("✅ Email címe sikeresen hitelesítve!"); hasNotified.current = true; } setTimeout(() => goLogin(), 2500); } else { throw new Error(data?.message || "Sikertelen hitelesítés"); } } catch (err) { setStatus("error"); setMessage("Sikertelen hitelesítés. Kérjük, vegye fel velünk a kapcsolatot!"); if (!hasNotified.current) { notifyError("❌ Sikertelen hitelesítés!"); hasNotified.current = true; } } }; verify(); // eslint-disable-next-line react-hooks/exhaustive-deps }, [location.search]); return (
{status === "loading" && (

{message}

)} {status === "success" && (

{message}

Átirányítás a bejelentkezéshez...

)} {status === "error" && (

{message}

support@serpentrace.hu

)}
); }