overleaf-cep/services/web/app/src/util/currency.js
M Fahru 2ef5db2938 Merge pull request #22340 from overleaf/mf-clean-up-currency-format-test
[web] Clean up localized currency format test (`local-ccy-format-v2`)

GitOrigin-RevId: 30d671479522b87ee9205994508b745d2b0ae4c3
2025-01-14 09:05:49 +00:00

38 lines
811 B
JavaScript

/**
* This file is duplicated from services/web/frontend/js/shared/utils/currency.ts
*/
/**
* @import { CurrencyCode } from '../../../types/subscription/currency'
*/
/**
* @param {number} amount
* @param {CurrencyCode} currency
* @param {string} locale
* @param {boolean} stripIfInteger
* @returns {string}
*/
function formatCurrency(amount, currency, locale, stripIfInteger) {
const options = { style: 'currency', currency }
if (stripIfInteger && Number.isInteger(amount)) {
options.minimumFractionDigits = 0
}
try {
return amount.toLocaleString(locale, {
...options,
currencyDisplay: 'narrowSymbol',
})
} catch {}
try {
return amount.toLocaleString(locale, options)
} catch {}
return `${currency} ${amount}`
}
module.exports = {
formatCurrency,
}