Utilitaires

Formatage de devises, aligné sur la devise unique configurée pour l'application.

Formatage monétaire. La plateforme travaille avec une devise unique, celle de LRVO_CURRENCY : il n'y a pas de conversion ni de devise par ligne.

Import

import { getDefaultCurrency, getCurrencySymbol, formatCurrency } from '@lrvo/core/shared/currency';

Sous-chemin neutre au sens du bundler : rien n'y importe de code Node. La réserve porte sur les valeurs, pas sur le runtime. getDefaultCurrency() et getCurrencySymbol() passent par getAppConfig(), qui lit process.env : côté client, ils retombent sur CAD et $ au lieu de la devise configurée. Quand le montant affiché dans le navigateur doit porter la vraie devise, la descendre en prop depuis un composant serveur.

Le barrel racine l'expose aussi en espace de noms, import { currency } from '@lrvo/core', mais celui-ci tire tout le graphe serveur : le réserver au code serveur.

API

getDefaultCurrency()

Code de devise configuré, CAD par défaut. Lit getAppConfig().defaultCurrency.

getCurrencySymbol()

Symbole configuré, $ par défaut. Lit LRVO_CURRENCY_SYMBOL.

formatCurrency(amount)

Formate un montant avec sa devise, via Intl.NumberFormat.

formatCurrency(1234.56);
// '$1,234.56'

Notes

Les montants Stripe sont en centimes, pas en unités. core/payments attend 4999 pour 49,99 $. Convertir au moment de l'appel, pas au moment de l'affichage, et ne jamais stocker un montant en flottant si le total doit être exact.

La colonne type: 'currency' d'un Table applique déjà le style monospace canonique. Inutile de la passer par un render.

Sur cette page