fix: orderbook decimal places issue (#2235) (#2237)

* fix: positions table fixes notional dp (#2144)

* fix: update decimals on position notional size

* fix: normalize values

* fix: fix positions unit tests

* fix: remove liquidation price

* fix: positions linting issue

* fix: remove liquidation price test

* fix: remove total summary row

* fix: remove comments

* fix: cypress test to not show trailing 0s

* fix: add back liq. price est as cell only

* fix: remove not used params

* chore: merge with release/testnet

* fix: orderbook dp

* Update libs/positions/src/lib/positions-table.spec.tsx
This commit is contained in:
m.ray 2022-11-28 10:15:18 -05:00 committed by GitHub
parent c60e5841f7
commit 081c9f44ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 3 deletions

View File

@ -14,11 +14,11 @@ import {
import classNames from 'classnames'; import classNames from 'classnames';
import { import {
formatNumber,
addDecimalsFormatNumber, addDecimalsFormatNumber,
t, t,
ThemeContext, ThemeContext,
useResizeObserver, useResizeObserver,
formatNumberFixed,
} from '@vegaprotocol/react-helpers'; } from '@vegaprotocol/react-helpers';
import { Schema } from '@vegaprotocol/types'; import { Schema } from '@vegaprotocol/types';
import { OrderbookRow } from './orderbook-row'; import { OrderbookRow } from './orderbook-row';
@ -659,7 +659,7 @@ export const Orderbook = ({
> >
{resolutions.map((r) => ( {resolutions.map((r) => (
<option key={r} value={r}> <option key={r} value={r}>
{formatNumber(0, decimalPlaces - Math.log10(r))} {formatNumberFixed(0, decimalPlaces - Math.log10(r))}
</option> </option>
))} ))}
</select> </select>

View File

@ -10,7 +10,6 @@ import type {
import { ProgressBarCell } from '@vegaprotocol/ui-toolkit'; import { ProgressBarCell } from '@vegaprotocol/ui-toolkit';
import { import {
PriceFlashCell, PriceFlashCell,
addDecimalsFormatNumber,
volumePrefix, volumePrefix,
t, t,
toBigNum, toBigNum,
@ -19,6 +18,7 @@ import {
signedNumberCssClass, signedNumberCssClass,
signedNumberCssClassRules, signedNumberCssClassRules,
DateRangeFilter, DateRangeFilter,
addDecimalsFormatNumber,
} from '@vegaprotocol/react-helpers'; } from '@vegaprotocol/react-helpers';
import { AgGridDynamic as AgGrid } from '@vegaprotocol/ui-toolkit'; import { AgGridDynamic as AgGrid } from '@vegaprotocol/ui-toolkit';
import { AgGridColumn } from 'ag-grid-react'; import { AgGridColumn } from 'ag-grid-react';

View File

@ -50,6 +50,17 @@ export const getNumberFormat = memoize((digits: number) => {
}); });
}); });
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat
export const getFixedNumberFormat = memoize((digits: number) => {
if (isNil(digits) || digits < 0) {
return new Intl.NumberFormat(getUserLocale());
}
return new Intl.NumberFormat(getUserLocale(), {
minimumFractionDigits: Math.min(Math.max(0, digits), MAX_FRACTION_DIGITS),
maximumFractionDigits: Math.min(Math.max(0, digits), MAX_FRACTION_DIGITS),
});
});
export const getDecimalSeparator = memoize( export const getDecimalSeparator = memoize(
() => () =>
getNumberFormat(1) getNumberFormat(1)
@ -68,6 +79,17 @@ export const formatNumber = (
return getNumberFormat(formatDecimals).format(Number(rawValue)); return getNumberFormat(formatDecimals).format(Number(rawValue));
}; };
/** formatNumberFixed will format the number with fixed decimals
* @param rawValue - should be a number that is not outside the safe range fail as in https://mikemcl.github.io/bignumber.js/#toN
* @param formatDecimals - number of decimals to use
*/
export const formatNumberFixed = (
rawValue: string | number | BigNumber,
formatDecimals = 0
) => {
return getFixedNumberFormat(formatDecimals).format(Number(rawValue));
};
export const addDecimalsFormatNumber = ( export const addDecimalsFormatNumber = (
rawValue: string | number, rawValue: string | number,
decimalPlaces: number, decimalPlaces: number,