import { useState } from 'react' import { useSubscriptions } from '../context/SubscriptionsContext.jsx' function formatEUR(n) { return new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', }).format(Number(n) || 0) } function formatDate(iso) { try { return new Intl.DateTimeFormat('fr-FR', { dateStyle: 'long', }).format(new Date(iso)) } catch { return iso || '—' } } export default function AbonnementPage() { const { plans, subscription, subscribe, cancelSubscription, getPlanLabel } = useSubscriptions() const [err, setErr] = useState(null) const [ok, setOk] = useState(null) function handleSubscribe(planId) { setErr(null) setOk(null) try { subscribe(planId) setOk('Abonnement pris en compte (POST /api/subscriptions en local).') } catch (e) { setErr(e?.message || 'Impossible de souscrire.') } } return (
Équivalent local de POST /api/subscriptions · stockage{' '}
librairie-subscriptions · pas de paiement réel, c’est une
démo.
{err}
) : null} {ok ?{ok}
: null} {subscription ? (Formule : {getPlanLabel(subscription.planId)}
Depuis le {formatDate(subscription.subscribedAt)}
{p.label}
{formatEUR(p.price)}
Pour changer de formule, résilie d’abord puis reprends une offre.
) : null}