diff --git a/apps/viewer/src/features/blocks/inputs/payment/computePaymentInputRuntimeOptions.ts b/apps/viewer/src/features/blocks/inputs/payment/computePaymentInputRuntimeOptions.ts index e1171c6ea..48dd884cb 100644 --- a/apps/viewer/src/features/blocks/inputs/payment/computePaymentInputRuntimeOptions.ts +++ b/apps/viewer/src/features/blocks/inputs/payment/computePaymentInputRuntimeOptions.ts @@ -70,15 +70,23 @@ const createStripePaymentIntent = message: 'Could not create payment intent', }) + const priceFormatter = new Intl.NumberFormat( + options.currency === 'EUR' ? 'fr-FR' : undefined, + { + style: 'currency', + currency: options.currency, + } + ) + return { paymentIntentSecret: paymentIntent.client_secret, publicKey: isPreview && stripeKeys.test?.publicKey ? stripeKeys.test.publicKey : stripeKeys.live.publicKey, - amountLabel: `${ + amountLabel: priceFormatter.format( amount / (isZeroDecimalCurrency(options.currency) ? 1 : 100) - }${currencySymbols[options.currency] ?? ` ${options.currency}`}`, + ), } } @@ -115,21 +123,3 @@ const isZeroDecimalCurrency = (currency: string) => 'XOF', 'XPF', ].includes(currency) - -const currencySymbols: { [key: string]: string } = { - USD: '$', - EUR: '€', - CRC: '₡', - GBP: '£', - ILS: '₪', - INR: '₹', - JPY: '¥', - KRW: '₩', - NGN: '₦', - PHP: '₱', - PLN: 'zł', - PYG: '₲', - THB: '฿', - UAH: '₴', - VND: '₫', -}