'use client'; import React, { useEffect, useState } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import axios from "axios"; import IconCircleCheck from "@/components/icon/icon-circle-check"; interface PaymentDetails { email: string; amount: string; plan: string; stripeSessionId: string; status: string; createdAt: string; } const PaymentSuccess: React.FC = () => { const [payment, setPayment] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const router = useRouter(); const searchParams = useSearchParams(); const sessionId = searchParams.get("session_id"); useEffect(() => { if (!sessionId) { setError("No session_id provided"); setLoading(false); return; } const fetchPaymentDetails = async () => { try { const res: any = await axios.get( `https://ebay.backend.data4autos.com/api/payment/details`, { params: { session_id: sessionId } } ); setPayment(res.data.payment); localStorage.setItem('payment_session', res.data.payment?.stripeSessionId); } catch (err: any) { console.error(err); setError(err.response?.data?.error || "Failed to fetch payment details"); } finally { setLoading(false); } }; fetchPaymentDetails(); }, [sessionId]); if (loading) { return (
Loading payment details...
); } if (error) { return (
{error}
); } return (
{/* ✅ Success Icon */}
{/* ✅ Title */}

Payment Successful 🎉

{/* ✅ Subtitle */}

Thank you for your purchase! Your payment has been processed successfully.

{/* Card with Details */}
Transaction ID: {payment?.stripeSessionId}
Email: {payment?.email}
Plan: {payment?.plan}
Amount: ${payment?.amount}
Payment Status: {payment?.status}
Subscription: {payment?.startDate ? `${new Date(payment.startDate).toLocaleDateString()} → ${new Date(payment.endDate).toLocaleDateString()}` : "Pending activation"}
{/* ✅ Button */} {/* ✅ Footer Text */}

You can view your payment history anytime from your dashboard.

); }; export default PaymentSuccess;