'use client' import { useEffect, useState } from 'react' import { useSearchParams } from 'next/navigation' import { Suspense } from 'react' import Image from 'next/image' import Link from 'next/link' import { CheckCircle, Package, Truck, CalendarCheck, ArrowLeft } from 'lucide-react' const PRODUCT_NAMES: Record = { samarreta: 'Samarreta Cursa de la Cirera 2026', mitjons: 'Mitjons Cursa de la Cirera 2026', pack: 'Pack Samarreta + Mitjons', } interface OrderData { orderNumber: string nom: string cognoms: string email: string product: string sizeTshirt?: string sizeSocks?: string shipping: string totalAmount: number } function SuccessContent() { const params = useSearchParams() const sessionId = params.get('session_id') const [order, setOrder] = useState(null) const [loading, setLoading] = useState(true) useEffect(() => { if (!sessionId) { setLoading(false); return } // Poll a bit to give webhook time to process let attempts = 0 const maxAttempts = 8 async function fetchOrder() { attempts++ try { const res = await fetch(`/api/orders/by-session?session_id=${sessionId}`) if (res.ok) { const data = await res.json() if (data.order) { setOrder(data.order) setLoading(false) return } } } catch { // ignore, will retry } if (attempts < maxAttempts) { setTimeout(fetchOrder, 1500) } else { setLoading(false) } } fetchOrder() }, [sessionId]) if (loading) { return (

Confirmant el teu pagament...

) } return (
{/* Header */}
Blood Bros Sport Blood Bros Sport
{/* Success icon */}

Comanda
confirmada!

{order ? `Gràcies ${order.nom}! Hem rebut la teva comanda i en breu rebràs la confirmació per email a ${order.email}.` : 'El teu pagament ha estat processat correctament. Rebràs la confirmació per email en breu.'}

{order && (
{/* Order number */}

Número de comanda

{order.orderNumber}

Guarda'l per a consultes futures

{/* Order details */}
Producte {PRODUCT_NAMES[order.product] ?? order.product}
{(order.sizeTshirt || order.sizeSocks) && (
Talles {[ order.sizeTshirt && `Samarreta ${order.sizeTshirt}`, order.sizeSocks && `Mitjons ${order.sizeSocks}`, ].filter(Boolean).join(' · ')}
)}
Lliurament {order.shipping === 'correos' ? 'Correos Express' : 'Recollida Corbins/Lleida'}
TOTAL {order.totalAmount.toFixed(2).replace('.', ',')}€
)} {/* Timeline */}

Pagament confirmat

El teu pagament s'ha processat correctament via Stripe.

Preparació de la comanda

A partir del 25 de juny, quan es tanquin les comandes.

Enviament / Recollida

Rebràs una notificació quan la teva comanda surti.

Lliurament previst: 29 Juny – 3 Juliol 2026

Amb temps per a la Cursa de la Cirera!

Tornar a la botiga

© 2026 Blood Bros Sport · Cursa de la Cirera · Corbins, Lleida

) } export default function SuccessPage() { return (
} >
) }