import { useRouter } from 'next/router' import Head from 'next/head' import { useEffect, useState } from 'react' import { getPurchaseById } from '@/lib/purchaseQueries' import type { Purchase } from '@/types/nostr' import { PageHeader } from '@/components/PageHeader' import { Footer } from '@/components/Footer' import { t } from '@/lib/i18n' export default function PurchasePage(): React.ReactElement | null { const router = useRouter() const { id } = router.query const purchaseId = typeof id === 'string' ? id : '' const [purchase, setPurchase] = useState(null) const [loading, setLoading] = useState(true) const [error, setError] = useState(null) useEffect(() => { if (!purchaseId) { return } void loadPurchase({ purchaseId, setPurchase, setLoading, setError }) }, [purchaseId]) if (!purchaseId) { return null } return ( <> Paiement - zapwall.fr
{loading &&

{t('common.loading')}

} {error &&

{error}

} {purchase && (

Paiement d'article

)}
) } async function loadPurchase(params: { purchaseId: string setPurchase: (value: Purchase | null) => void setLoading: (value: boolean) => void setError: (value: string | null) => void }): Promise { params.setLoading(true) params.setError(null) try { const p = await getPurchaseById(params.purchaseId) if (!p) { params.setError('Paiement introuvable') return } params.setPurchase(p) } catch (e) { params.setError(e instanceof Error ? e.message : 'Erreur lors du chargement du paiement') } finally { params.setLoading(false) } } function PurchaseDetails(params: { purchase: Purchase }): React.ReactElement { const {purchase} = params return (

Montant : {purchase.amount} sats

Article ID : {purchase.articleId}

Auteur : {purchase.authorPubkey.substring(0, 16)}...

Payeur : {purchase.payerPubkey.substring(0, 16)}...

Hash de paiement : {purchase.paymentHash}

Date : {new Date(purchase.createdAt * 1000).toLocaleString()}

) }