Currency value
The CurrencyValue component renders a formatted currency using the tag property to wrap the value.
currencyDisplay
This prop, by default has the value symbol, which typically outputs currency symbols like $, €, £ etc.
However, the exact behavior also depends on the chosen locale.
For example, if I want to format a Danish krone amount, even if I use currencyDisplay: 'symbol', the chosen locale will change the currency symbol, as per:
100 kr.// in the Danish locale100 DKK// in the German locale
Currency objects
Currency object are those objects that have these two properties:
amount- a numbercurrency- the code for the currency in question (USD,JPYetc.)
Prefix and suffix
Use prefix and suffix props with caution.
Usage will produce what are essentially concatenated strings, like:
"Some prefix string " + someCurrencyValue + " some suffix string"
This is not localization friendly. Better practice would be to use a formatted message.
Inlining
By default, the value comes back wrapped in a <div>.
If you want to inline the number value, then set the tag prop to span.
Imperative API
jutro-components offers the formatCurrency API.
formatCurrency(intl, props, currencyObject), where:
@param {import('react-intl').Intl} intl- instance of the imperative formatting API access object@param {PropTypes.InferProps<FormattedCurrency.propTypes>} props- FormattedCurrency props@param {{amount?: number, currency?: string }} [currencyObject]- optional override for currency value from props@returns {string}- Formatted currency string
Examples
import { formatCurrency } from '@jutro/components';
import { IntlContext } from '@jutro/locale';
...
const intl = useContext(IntlContext);
...
const c1 = formatCurrency(intl, { value: 1232.24, currency: 'eur', showFractions: true });
const c2 = formatCurrency(intl, { value: 4232.24, currency: 'jpy', showFractions: true, currencyDisplay: 'code'});
const c3 = formatCurrency(intl, { showFractions: true }, { amount: 23434.34, currency: 'dkk' });
// en-US output:
€1,232.24
JPY 4,232
DKK 23,434.34
// pl-PL output
1232,24 €
4232 JPY
23 434,34 DKK