'use client'; import { PaymentElement, useStripe, useElements } from '@stripe/react-stripe-js'; import { useState } from 'react'; export default function CheckoutForm() { const stripe = useStripe(); const elements = useElements(); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!stripe || !elements) return; setLoading(true); const result = await stripe.confirmPayment({ elements, confirmParams: { return_url: `${window.location.origin}/success`, }, }); if (result.error) { setError(result.error.message || 'Payment failed'); } setLoading(false); }; return (
{error &&
{error}
} ); }