'use client'
import { useBilling } from '@flowglad/nextjs'
export function CustomerPurchasesPanel() {
const { loaded, errors, currentSubscriptions, subscriptions, purchases } =
useBilling()
if (!loaded) {
return <p>Loading customer billing…</p>
}
if (errors?.length) {
return <p>Unable to load billing data right now.</p>
}
return (
<div>
<section>
<h3>Current subscriptions</h3>
<ul>
{(currentSubscriptions ?? []).length === 0 && (
<li>No active subscriptions</li>
)}
{(currentSubscriptions ?? []).map((subscription) => {
const label = subscription.name ?? subscription.id
return (
<li key={subscription.id}>
{label} · {subscription.status}
</li>
)
})}
</ul>
</section>
<section>
<h3>All subscriptions</h3>
<ul>
{(subscriptions ?? []).length === 0 && (
<li>No subscription history yet</li>
)}
{(subscriptions ?? []).map((subscription) => {
const label = subscription.name ?? subscription.id
return (
<li key={subscription.id}>
{label} · {subscription.status}
</li>
)
})}
</ul>
</section>
<section>
<h3>Recent purchases</h3>
<ul>
{(purchases ?? []).length === 0 && <li>No purchases yet</li>}
{(purchases ?? []).map((purchase) => (
<li key={purchase.id}>
{purchase.name} · {purchase.priceType} · {purchase.status}
</li>
))}
</ul>
</section>
</div>
)
}