OrderConfirmation
ImplementedPost-purchase confirmation — success state with role="status" + aria-live="polite". Displays order ID, buyer identity (name + email), event card (title / venue / date / issued tickets), total paid, and ticket actions (download + add to Apple/Google Wallet). Uncontrolled organism; FR + EN via locale prop (default fr).
components/organisms/orderconfirmation/OrderConfirmation.tsxConfirmation post-paiement (succès, numéro de commande, billets émis, total payé, téléchargement, ajout au portefeuille). FR-CA : « Achat confirmé · Vos billets sont prêts · Numéro de commande · Télécharger les billets · Ajouter à Apple/Google Wallet ».
OrderConfirmation
Organism — Commerce family (Family 7)
Composant non contrôlé avec role="status" + aria-live="polite". Affiché à l'utilisateur après paiement réussi pour confirmer visuellement la transaction.
Achat confirmé
Vos billets sont prêts.
Numéro de commande: EPL-2026-00001
- Nom
- Marie Tremblay
- Courriel
- [email protected]
Festival Jazz MTL — Quartet
Lieu : Place des Festivals
Date : 24 juin 2026 · 20 h
- Admission générale× 2
- Première balcon× 1
Total payé : 222,52 $
This component supports light and dark mode.
Props
orderId*stringIdentifiant de la commande (EPL-2026-XXXXX).
buyerName*stringNom complet de l'acheteur.
buyerEmail*stringCourriel.
eventTitle*stringTitre de l'événement.
venue*stringLieu.
date*stringDate pré-formatée par l'appelant.
tickets*{ tier: string; quantity: number }[]Billets émis.
total*stringTotal payé pré-formaté.
locale"fr" | "en"Pilote 12 libellés FR/EN (défaut « fr »).
classNamestringClasses additionnelles fusionnées sur la <section> racine.
Props
OrderConfirmation
orderIdstring—Identifiant de la commande (ex. EPL-2026-00001).
buyerNamestring—Nom complet de l'acheteur.
buyerEmailstring—Courriel de l'acheteur.
eventTitlestring—Titre de l'événement associé à la commande.
venuestring—Lieu de l'événement.
datestring—Date de l'événement, pré-formatée par l'appelant (le composant n'applique aucun format).
tickets{ tier: string; quantity: number }[]—Billets émis : un objet { tier, quantity } par ligne de billet.
totalstring—Montant total payé, pré-formaté par l'appelant (ex. « 222,52 $ »).
locale"fr" | "en"'fr'Pilote 11 libellés localisés (heading, name, email, download, wallet…). Known issue : le label « Total payé » / « Total paid » n'était pas couvert avant le fix ; désormais inclus via locale.
classNamestring—Classes CSS additionnelles fusionnées sur la <section> racine.
<OrderConfirmation />Accessibility
Type
1 rulei18n
1 ruleARIA
1 ruleContrast
1 ruleUsage
Import
import { OrderConfirmation } from "@epasslive/design-system"Example 1
<OrderConfirmation
orderId="EPL-2026-00001"
buyerName="Marie Tremblay"
buyerEmail="[email protected]"
eventTitle="Festival Jazz MTL — Quartet"
venue="Place des Festivals"
date="24 juin 2026 · 20 h"
tickets={[{ tier: "Admission générale", quantity: 2 }]}
total="222,52 $"
/>Example 2
<OrderConfirmation {...props} locale="en" />Anti-patterns
— Do not hardcode FR strings in JSX — all copy must live in the locale labels object
— Do not use muted text directly on success-tint backgrounds (WCAG AA fail in dark) — use the ADR-027 success-fg token
— Do not place focusable interactive elements inside role="status" live regions (WAI-ARIA authoring)