'use client'; import Image from 'next/image'; import { useRouter, useSearchParams } from 'next/navigation'; import { useEffect, useState } from 'react'; import { stripeService, AgentSubscription } from '@/services/stripe.service'; export function PaymentSuccessForm() { const router = useRouter(); const searchParams = useSearchParams(); const sessionId = searchParams.get('session_id'); const [subscription, setSubscription] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { loadSubscription(); }, []); const loadSubscription = async () => { try { const sub = await stripeService.getSubscription(); setSubscription(sub); } catch (error) { console.error('Failed to load subscription:', error); } finally { setLoading(false); } }; const formatDate = (dateStr: string | null | undefined) => { if (!dateStr) return 'N/A'; return new Date(dateStr).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric', }); }; const formatAmount = (amount: number) => { return `$${(amount / 100).toFixed(2)}`; }; if (loading) { return (
); } const transactionDetails = [ { label: 'Transaction ID', value: sessionId ? sessionId.slice(0, 16) + '...' : 'N/A', bold: true }, { label: 'Amount Paid', value: subscription?.plan ? formatAmount(subscription.plan.amount) : '$499.00', bold: true }, { label: 'Date', value: formatDate(subscription?.createdAt || new Date().toISOString()), bold: true }, ]; return ( <> {/* Page Title */}

Payments

Manage Your billing cycles , upgrade your plan , or boost individual listings

{/* Payment Success Card */}
{/* Success Icon */}
Success
{/* Success Title */}

Payment Successful !

{/* Success Description */}

Your annual membership is now active. You have full access to all premium features

{/* Transaction Details Section */}
{/* Header Row */}
Transaction Details
Verified Verified User
{/* Detail Rows */}
{transactionDetails.map((detail) => (
{detail.label} {detail.value}
))}
{/* Divider */}
{/* Next Renewal Date */}
Next Renewal Date {formatDate(subscription?.currentPeriodEnd)}
{/* Action Buttons */}
{/* Trust Badges */}
Verified Verified User
Secure Secure Checkout
); }