Commit 72664078 authored by Jordan Frankfurt's avatar Jordan Frankfurt Committed by GitHub

fix: use number formatting lib for tick bounds on LP positions (#5573)

* fix: use number formatting lib for tick bounds on LP positions

* lint

* configure craco to work with conedison

* lint
parent 889cdf6b
...@@ -9,6 +9,16 @@ module.exports = { ...@@ -9,6 +9,16 @@ module.exports = {
babel: { babel: {
plugins: ['@vanilla-extract/babel-plugin'], plugins: ['@vanilla-extract/babel-plugin'],
}, },
jest: {
configure(jestConfig) {
return Object.assign({}, jestConfig, {
transformIgnorePatterns: ['@uniswap/conedison/format'],
moduleNameMapper: {
'@uniswap/conedison/format': '@uniswap/conedison/dist/format',
},
})
},
},
webpack: { webpack: {
plugins: [ plugins: [
new VanillaExtractPlugin(), new VanillaExtractPlugin(),
......
...@@ -232,8 +232,12 @@ export default function PositionListItem({ positionDetails }: PositionListItemPr ...@@ -232,8 +232,12 @@ export default function PositionListItem({ positionDetails }: PositionListItemPr
<Trans>Min: </Trans> <Trans>Min: </Trans>
</ExtentsText> </ExtentsText>
<Trans> <Trans>
{formatTickPrice(priceLower, tickAtLimit, Bound.LOWER)} <HoverInlineText text={currencyQuote?.symbol} />{' '} {formatTickPrice({
per <HoverInlineText text={currencyBase?.symbol ?? ''} /> price: priceLower,
atLimit: tickAtLimit,
direction: Bound.LOWER,
})}{' '}
<HoverInlineText text={currencyQuote?.symbol} /> per <HoverInlineText text={currencyBase?.symbol ?? ''} />
</Trans> </Trans>
</RangeText>{' '} </RangeText>{' '}
<HideSmall> <HideSmall>
...@@ -247,8 +251,13 @@ export default function PositionListItem({ positionDetails }: PositionListItemPr ...@@ -247,8 +251,13 @@ export default function PositionListItem({ positionDetails }: PositionListItemPr
<Trans>Max:</Trans> <Trans>Max:</Trans>
</ExtentsText> </ExtentsText>
<Trans> <Trans>
{formatTickPrice(priceUpper, tickAtLimit, Bound.UPPER)} <HoverInlineText text={currencyQuote?.symbol} />{' '} {formatTickPrice({
per <HoverInlineText maxCharacters={10} text={currencyBase?.symbol} /> price: priceUpper,
atLimit: tickAtLimit,
direction: Bound.UPPER,
})}{' '}
<HoverInlineText text={currencyQuote?.symbol} /> per{' '}
<HoverInlineText maxCharacters={10} text={currencyBase?.symbol} />
</Trans> </Trans>
</RangeText> </RangeText>
</RangeLineItem> </RangeLineItem>
......
...@@ -125,11 +125,13 @@ export const PositionPreview = ({ ...@@ -125,11 +125,13 @@ export const PositionPreview = ({
<ThemedText.DeprecatedMain fontSize="12px"> <ThemedText.DeprecatedMain fontSize="12px">
<Trans>Min Price</Trans> <Trans>Min Price</Trans>
</ThemedText.DeprecatedMain> </ThemedText.DeprecatedMain>
<ThemedText.DeprecatedMediumHeader textAlign="center">{`${formatTickPrice( <ThemedText.DeprecatedMediumHeader textAlign="center">
priceLower, {formatTickPrice({
ticksAtLimit, price: priceLower,
Bound.LOWER atLimit: ticksAtLimit,
)}`}</ThemedText.DeprecatedMediumHeader> direction: Bound.LOWER,
})}
</ThemedText.DeprecatedMediumHeader>
<ThemedText.DeprecatedMain textAlign="center" fontSize="12px"> <ThemedText.DeprecatedMain textAlign="center" fontSize="12px">
<Trans> <Trans>
{quoteCurrency.symbol} per {baseCurrency.symbol} {quoteCurrency.symbol} per {baseCurrency.symbol}
...@@ -146,11 +148,13 @@ export const PositionPreview = ({ ...@@ -146,11 +148,13 @@ export const PositionPreview = ({
<ThemedText.DeprecatedMain fontSize="12px"> <ThemedText.DeprecatedMain fontSize="12px">
<Trans>Max Price</Trans> <Trans>Max Price</Trans>
</ThemedText.DeprecatedMain> </ThemedText.DeprecatedMain>
<ThemedText.DeprecatedMediumHeader textAlign="center">{`${formatTickPrice( <ThemedText.DeprecatedMediumHeader textAlign="center">
priceUpper, {formatTickPrice({
ticksAtLimit, price: priceUpper,
Bound.UPPER atLimit: ticksAtLimit,
)}`}</ThemedText.DeprecatedMediumHeader> direction: Bound.UPPER,
})}
</ThemedText.DeprecatedMediumHeader>
<ThemedText.DeprecatedMain textAlign="center" fontSize="12px"> <ThemedText.DeprecatedMain textAlign="center" fontSize="12px">
<Trans> <Trans>
{quoteCurrency.symbol} per {baseCurrency.symbol} {quoteCurrency.symbol} per {baseCurrency.symbol}
......
...@@ -882,7 +882,11 @@ export function PositionPage() { ...@@ -882,7 +882,11 @@ export function PositionPage() {
<Trans>Min price</Trans> <Trans>Min price</Trans>
</ExtentsText> </ExtentsText>
<ThemedText.DeprecatedMediumHeader textAlign="center"> <ThemedText.DeprecatedMediumHeader textAlign="center">
{formatTickPrice(priceLower, tickAtLimit, Bound.LOWER)} {formatTickPrice({
price: priceLower,
atLimit: tickAtLimit,
direction: Bound.LOWER,
})}
</ThemedText.DeprecatedMediumHeader> </ThemedText.DeprecatedMediumHeader>
<ExtentsText> <ExtentsText>
{' '} {' '}
...@@ -906,7 +910,11 @@ export function PositionPage() { ...@@ -906,7 +910,11 @@ export function PositionPage() {
<Trans>Max price</Trans> <Trans>Max price</Trans>
</ExtentsText> </ExtentsText>
<ThemedText.DeprecatedMediumHeader textAlign="center"> <ThemedText.DeprecatedMediumHeader textAlign="center">
{formatTickPrice(priceUpper, tickAtLimit, Bound.UPPER)} {formatTickPrice({
price: priceUpper,
atLimit: tickAtLimit,
direction: Bound.UPPER,
})}
</ThemedText.DeprecatedMediumHeader> </ThemedText.DeprecatedMediumHeader>
<ExtentsText> <ExtentsText>
{' '} {' '}
......
import { Currency, CurrencyAmount, Fraction, Price } from '@uniswap/sdk-core' import { Currency, CurrencyAmount, Fraction } from '@uniswap/sdk-core'
import { DEFAULT_LOCALE, SupportedLocale } from 'constants/locales' import { DEFAULT_LOCALE, SupportedLocale } from 'constants/locales'
import JSBI from 'jsbi' import JSBI from 'jsbi'
import formatLocaleNumber from 'lib/utils/formatLocaleNumber' import formatLocaleNumber from 'lib/utils/formatLocaleNumber'
...@@ -23,19 +23,3 @@ export function formatCurrencyAmount( ...@@ -23,19 +23,3 @@ export function formatCurrencyAmount(
return formatLocaleNumber({ number: amount, locale, sigFigs, fixedDecimals }) return formatLocaleNumber({ number: amount, locale, sigFigs, fixedDecimals })
} }
export function formatPrice(
price: Price<Currency, Currency> | undefined,
sigFigs: number,
locale: SupportedLocale = DEFAULT_LOCALE
): string {
if (!price) {
return '-'
}
if (parseFloat(price.toFixed(sigFigs)) < 0.0001) {
return `<${formatLocaleNumber({ number: 0.00001, locale })}`
}
return formatLocaleNumber({ number: price, locale, sigFigs })
}
import { formatPrice, NumberType } from '@uniswap/conedison/format'
import { Price, Token } from '@uniswap/sdk-core' import { Price, Token } from '@uniswap/sdk-core'
import { Bound } from '../state/mint/v3/actions' import { Bound } from '../state/mint/v3/actions'
import { formatPrice } from './formatCurrencyAmount'
export function formatTickPrice( interface FormatTickPriceArgs {
price: Price<Token, Token> | undefined, price: Price<Token, Token> | undefined
atLimit: { [bound in Bound]?: boolean | undefined }, atLimit: { [bound in Bound]?: boolean | undefined }
direction: Bound, direction: Bound
placeholder?: string placeholder?: string
) { }
export function formatTickPrice({ price, atLimit, direction, placeholder }: FormatTickPriceArgs) {
if (atLimit[direction]) { if (atLimit[direction]) {
return direction === Bound.LOWER ? '0' : '' return direction === Bound.LOWER ? '0' : ''
} }
...@@ -17,5 +19,5 @@ export function formatTickPrice( ...@@ -17,5 +19,5 @@ export function formatTickPrice(
return placeholder return placeholder
} }
return formatPrice(price, 5) return formatPrice(price, NumberType.TokenNonTx)
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment