diff --git a/src/pages/SuccessPage.tsx b/src/pages/SuccessPage.tsx index 5bbf9ef..dc15fba 100644 --- a/src/pages/SuccessPage.tsx +++ b/src/pages/SuccessPage.tsx @@ -1,7 +1,31 @@ +import { useEffect, useState } from "react"; +import { useSearchParams, useNavigate } from "react-router-dom"; import { CheckCircle, Mail, LayoutDashboard, Sparkles } from "lucide-react"; import Footer from "../components/Footer"; export default function SuccessPage() { + const [searchParams] = useSearchParams(); + const navigate = useNavigate(); + const [isValid, setIsValid] = useState(false); + + useEffect(() => { + // O Stripe passa 'session_id' automaticamente quando redireciona, + // Ou podemos checar um parâmetro manual como '?status=approved' + const sessionId = searchParams.get("session_id"); + const status = searchParams.get("status"); + + if (sessionId || status === "approved") { + setIsValid(true); + } else { + // Se não tiver nenhum parâmetro válido, joga de volta pra home + navigate("/", { replace: true }); + } + }, [searchParams, navigate]); + + if (!isValid) { + return null; // Retorna nulo enquanto valida para não piscar a tela + } + return (