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 (

Abonnement

Équivalent local de POST /api/subscriptions · stockage{' '} librairie-subscriptions · pas de paiement réel, c’est une démo.

{err ? (

{err}

) : null} {ok ?

{ok}

: null} {subscription ? (

Abonnement actif

Formule : {getPlanLabel(subscription.planId)}

Depuis le {formatDate(subscription.subscribedAt)}

) : null}

Choisir une formule

{subscription ? (

Pour changer de formule, résilie d’abord puis reprends une offre.

) : null}
) }