From 46d63e490c9f64cc10f7c8193b115f81bec8b38c Mon Sep 17 00:00:00 2001 From: Chika Date: Fri, 8 Jul 2022 19:24:21 +0300 Subject: [PATCH] add formatterExtra for big fraction part --- Components/Calculation/config/elements-props.ts | 10 +++++----- tools/number.ts | 12 +++++++++++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Components/Calculation/config/elements-props.ts b/Components/Calculation/config/elements-props.ts index 4cc2ec7..bb6083d 100644 --- a/Components/Calculation/config/elements-props.ts +++ b/Components/Calculation/config/elements-props.ts @@ -1,7 +1,7 @@ import { MAX_FRANCHISE, MAX_LEASING_PERIOD } from 'constants/values'; import DownloadOutlined from 'Elements/icons/DownloadOutlined'; import date from 'tools/date'; -import { formatter, parser } from 'tools/number'; +import { formatter, formatterExtra, parser } from 'tools/number'; import type { ElementsProps } from './elements-components'; const props: Partial = { @@ -71,7 +71,7 @@ const props: Partial = { max: 50, precision: 4, parser, - formatter, + formatter: formatterExtra, addonAfter: '%', }, tbxFirstPaymentRub: { @@ -89,7 +89,7 @@ const props: Partial = { step: 1, precision: 6, parser, - formatter, + formatter: formatterExtra, addonAfter: '%', }, tbxLastPaymentRub: { @@ -191,7 +191,7 @@ const props: Partial = { step: 0.5, precision: 4, parser, - formatter, + formatter: formatterExtra, addonAfter: 'ะป', }, tbxMaxMass: { @@ -341,7 +341,7 @@ const props: Partial = { step: 0.0001, precision: 6, parser, - formatter, + formatter: formatterExtra, addonAfter: '%', }, linkDownloadKp: { diff --git a/tools/number.ts b/tools/number.ts index 69e24b1..2f7e3d0 100644 --- a/tools/number.ts +++ b/tools/number.ts @@ -1,6 +1,16 @@ +/* eslint-disable implicit-arrow-linebreak */ export function parser(value?: string) { const normalized = (value || '0').replace(/\s/g, '').replaceAll(',', '.'); return Number.parseFloat(normalized); } -export const formatter = (value?: number) => Intl.NumberFormat('ru').format(value || 0); +export const formatter = (value?: number) => + Intl.NumberFormat('ru', { + minimumFractionDigits: 2, + }).format(value || 0); + +export const formatterExtra = (value?: number) => + Intl.NumberFormat('ru', { + minimumFractionDigits: 2, + maximumFractionDigits: 6, + }).format(value || 0);