"use client"; import React from "react"; import { TailwindSpinner } from "@/components/common/GlobalLoad"; export default function PayRedirectPage() { const [status, setStatus] = React.useState("Waiting for secure checkout redirect..."); const [error, setError] = React.useState(""); React.useEffect(() => { const handleMessage = (event: MessageEvent) => { try { if (event.origin !== window.location.origin) return; const data = event.data || {}; if (data?.type === "redirect-to-payment" && typeof data?.url === "string") { setStatus("Redirecting to Stripe Checkout..."); window.location.href = data.url as string; } else if (data?.type === "redirect-error") { setError(typeof data?.message === "string" ? data.message : "Failed to create payment. Please close this page and try again."); } } catch { setError("An error occurred while processing redirect info. Please close this page and try again."); } }; window.addEventListener("message", handleMessage); const timeoutId = window.setTimeout(() => { setStatus(""); setError("No redirect instruction received. It may be a network issue or the page was blocked. Please go back and try again."); }, 15000); return () => { window.removeEventListener("message", handleMessage); window.clearTimeout(timeoutId); }; }, []); return (

Preparing to redirect

{status &&

{status}

} {!error && (
)} {error &&

{error}

} {!error && (

If it takes too long, please return to the previous page or check your network.

)}
); }