Use language stored in localStorage for formatting numbers.
This commit is contained in:
parent
5319232918
commit
efa682ef02
3 changed files with 8 additions and 6 deletions
|
@ -9,7 +9,7 @@ import HelpLink from 'component/common/help-link';
|
||||||
import Card from 'component/common/card';
|
import Card from 'component/common/card';
|
||||||
import LbcSymbol from 'component/common/lbc-symbol';
|
import LbcSymbol from 'component/common/lbc-symbol';
|
||||||
import I18nMessage from 'component/i18nMessage';
|
import I18nMessage from 'component/i18nMessage';
|
||||||
import { formatNumberWithCommas } from 'util/number';
|
import { formatCredits } from 'util/format-credits';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
balance: number,
|
balance: number,
|
||||||
|
@ -64,7 +64,7 @@ const WalletBalance = (props: Props) => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Card
|
<Card
|
||||||
title={<LbcSymbol postfix={formatNumberWithCommas(totalBalance)} isTitle />}
|
title={<LbcSymbol postfix={formatCredits(totalBalance, 8)} isTitle />}
|
||||||
subtitle={
|
subtitle={
|
||||||
totalLocked > 0 ? (
|
totalLocked > 0 ? (
|
||||||
<I18nMessage tokens={{ lbc: <LbcSymbol /> }}>
|
<I18nMessage tokens={{ lbc: <LbcSymbol /> }}>
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
export function formatCredits(amount, precision, shortFormat = false) {
|
export function formatCredits(amount, precision, shortFormat = false) {
|
||||||
|
const language = localStorage.getItem('language') || undefined;
|
||||||
const actualAmount = Number(amount);
|
const actualAmount = Number(amount);
|
||||||
const safePrecision = Math.min(20, Math.max(1, precision));
|
const safePrecision = Math.min(20, Math.max(1, precision || 0));
|
||||||
|
|
||||||
if (Number.isNaN(actualAmount) || actualAmount === 0) return '0';
|
if (Number.isNaN(actualAmount) || actualAmount === 0) return '0';
|
||||||
|
|
||||||
if (shortFormat) {
|
if (shortFormat) {
|
||||||
const formatter = new Intl.NumberFormat(undefined, {
|
const formatter = new Intl.NumberFormat(language, {
|
||||||
minimumFractionDigits: safePrecision,
|
minimumFractionDigits: safePrecision,
|
||||||
maximumFractionDigits: safePrecision,
|
maximumFractionDigits: safePrecision,
|
||||||
roundingIncrement: 5,
|
roundingIncrement: 5,
|
||||||
|
@ -16,7 +17,7 @@ export function formatCredits(amount, precision, shortFormat = false) {
|
||||||
return formatter.format(actualAmount);
|
return formatter.format(actualAmount);
|
||||||
}
|
}
|
||||||
|
|
||||||
const formatter = new Intl.NumberFormat(undefined, {
|
const formatter = new Intl.NumberFormat(language, {
|
||||||
minimumFractionDigits: safePrecision,
|
minimumFractionDigits: safePrecision,
|
||||||
maximumFractionDigits: safePrecision,
|
maximumFractionDigits: safePrecision,
|
||||||
roundingIncrement: 5,
|
roundingIncrement: 5,
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
// @flow
|
// @flow
|
||||||
|
|
||||||
export function formatNumber(num: number, numberOfDigits?: number, short: boolean = false): string {
|
export function formatNumber(num: number, numberOfDigits?: number, short: boolean = false): string {
|
||||||
|
const language = localStorage.getItem('language') || undefined;
|
||||||
const safePrecision = Math.min(20, numberOfDigits || 0);
|
const safePrecision = Math.min(20, numberOfDigits || 0);
|
||||||
const formatter = new Intl.NumberFormat(undefined, {
|
const formatter = new Intl.NumberFormat(language, {
|
||||||
maximumFractionDigits: safePrecision,
|
maximumFractionDigits: safePrecision,
|
||||||
notation: short ? 'compact' : 'standard',
|
notation: short ? 'compact' : 'standard',
|
||||||
compactDisplay: 'short',
|
compactDisplay: 'short',
|
||||||
|
|
Loading…
Reference in a new issue