fix borrow modal rounding
This commit is contained in:
parent
079e622624
commit
04c4c5e00d
|
@ -21,7 +21,11 @@ import {
|
||||||
INPUT_TOKEN_DEFAULT,
|
INPUT_TOKEN_DEFAULT,
|
||||||
} from './../utils/constants'
|
} from './../utils/constants'
|
||||||
import { notify } from './../utils/notifications'
|
import { notify } from './../utils/notifications'
|
||||||
import { floorToDecimal, formatFixedDecimals } from './../utils/numbers'
|
import {
|
||||||
|
floorToDecimal,
|
||||||
|
formatDecimal,
|
||||||
|
formatFixedDecimals,
|
||||||
|
} from './../utils/numbers'
|
||||||
import ActionTokenList from './account/ActionTokenList'
|
import ActionTokenList from './account/ActionTokenList'
|
||||||
import ButtonGroup from './forms/ButtonGroup'
|
import ButtonGroup from './forms/ButtonGroup'
|
||||||
import Label from './forms/Label'
|
import Label from './forms/Label'
|
||||||
|
@ -327,18 +331,25 @@ function BorrowForm({ onSuccess, token }: BorrowFormProps) {
|
||||||
<p className="font-mono text-th-fgd-2">
|
<p className="font-mono text-th-fgd-2">
|
||||||
{isBorrow ? (
|
{isBorrow ? (
|
||||||
<>
|
<>
|
||||||
{tokenBalance.toNumber()}{' '}
|
{formatDecimal(
|
||||||
|
Number(tokenBalance),
|
||||||
|
bank.mintDecimals
|
||||||
|
)}{' '}
|
||||||
<span className="text-xs text-th-fgd-3">
|
<span className="text-xs text-th-fgd-3">
|
||||||
(
|
(
|
||||||
{formatFixedDecimals(
|
{formatFixedDecimals(
|
||||||
bank.uiPrice * tokenBalance.toNumber(),
|
bank.uiPrice * tokenBalance.toNumber(),
|
||||||
true
|
true
|
||||||
)}
|
)}
|
||||||
|
)
|
||||||
</span>
|
</span>
|
||||||
</>
|
</>
|
||||||
) : inputAmount ? (
|
) : inputAmount ? (
|
||||||
<>
|
<>
|
||||||
{inputAmount}{' '}
|
{formatDecimal(
|
||||||
|
Number(inputAmount),
|
||||||
|
bank.mintDecimals
|
||||||
|
)}{' '}
|
||||||
<span className="text-xs text-th-fgd-3">
|
<span className="text-xs text-th-fgd-3">
|
||||||
(
|
(
|
||||||
{formatFixedDecimals(
|
{formatFixedDecimals(
|
||||||
|
@ -362,7 +373,10 @@ function BorrowForm({ onSuccess, token }: BorrowFormProps) {
|
||||||
<p className="font-mono text-th-fgd-2">
|
<p className="font-mono text-th-fgd-2">
|
||||||
{isBorrow ? (
|
{isBorrow ? (
|
||||||
<>
|
<>
|
||||||
{parseFloat(inputAmount) - tokenBalance.toNumber()}{' '}
|
{formatDecimal(
|
||||||
|
Number(inputAmount) - Number(tokenBalance),
|
||||||
|
bank.mintDecimals
|
||||||
|
)}{' '}
|
||||||
<span className="text-xs text-th-fgd-3">
|
<span className="text-xs text-th-fgd-3">
|
||||||
(
|
(
|
||||||
{formatFixedDecimals(
|
{formatFixedDecimals(
|
||||||
|
@ -388,14 +402,20 @@ function BorrowForm({ onSuccess, token }: BorrowFormProps) {
|
||||||
</p>
|
</p>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<p className="font-mono text-th-fgd-2">
|
<p className="font-mono text-th-fgd-2">
|
||||||
{isBorrow
|
{isBorrow ? (
|
||||||
? formatFixedDecimals(
|
<>
|
||||||
bank.uiPrice *
|
{formatDecimal(
|
||||||
bank.loanOriginationFeeRate.toNumber() *
|
bank.loanOriginationFeeRate.toNumber() *
|
||||||
(parseFloat(inputAmount) - tokenBalance.toNumber()),
|
(parseFloat(inputAmount) - tokenBalance.toNumber()),
|
||||||
true
|
bank.mintDecimals
|
||||||
)
|
)}{' '}
|
||||||
: '$0.00'}
|
<span className="font-body text-th-fgd-3">
|
||||||
|
{bank.name}
|
||||||
|
</span>
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
'N/A'
|
||||||
|
)}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -59,33 +59,28 @@ const usdFormatter3 = Intl.NumberFormat('en', {
|
||||||
|
|
||||||
export const formatFixedDecimals = (
|
export const formatFixedDecimals = (
|
||||||
value: number,
|
value: number,
|
||||||
isCurrency?: boolean,
|
isPrice?: boolean,
|
||||||
isPercentage?: boolean
|
isValue?: boolean
|
||||||
): string => {
|
): string => {
|
||||||
let formattedValue
|
let formattedValue
|
||||||
if (value === 0) {
|
if (value === 0) {
|
||||||
formattedValue = isCurrency ? '$0.00' : '0'
|
formattedValue = isPrice ? '$0.00' : '0'
|
||||||
} else if (isPercentage) {
|
} else if (isValue) {
|
||||||
formattedValue = Number(floorToDecimal(value, 2)).toLocaleString(
|
formattedValue = usdFormatter2.format(value)
|
||||||
undefined,
|
|
||||||
{
|
|
||||||
maximumFractionDigits: 2,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
} else if (Math.abs(value) >= 1000) {
|
} else if (Math.abs(value) >= 1000) {
|
||||||
formattedValue = isCurrency
|
formattedValue = isPrice
|
||||||
? usdFormatter0.format(value)
|
? usdFormatter0.format(value)
|
||||||
: Number(floorToDecimal(value, 0)).toLocaleString(undefined, {
|
: Number(floorToDecimal(value, 0)).toLocaleString(undefined, {
|
||||||
maximumFractionDigits: 0,
|
maximumFractionDigits: 0,
|
||||||
})
|
})
|
||||||
} else if (Math.abs(value) >= 0.1) {
|
} else if (Math.abs(value) >= 0.1) {
|
||||||
formattedValue = isCurrency
|
formattedValue = isPrice
|
||||||
? usdFormatter2.format(value)
|
? usdFormatter2.format(value)
|
||||||
: Number(floorToDecimal(value, 3)).toLocaleString(undefined, {
|
: Number(floorToDecimal(value, 3)).toLocaleString(undefined, {
|
||||||
maximumFractionDigits: 3,
|
maximumFractionDigits: 3,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
formattedValue = isCurrency
|
formattedValue = isPrice
|
||||||
? usdFormatter3.format(value)
|
? usdFormatter3.format(value)
|
||||||
: Number(floorToDecimal(value, 8)).toLocaleString(undefined, {
|
: Number(floorToDecimal(value, 8)).toLocaleString(undefined, {
|
||||||
maximumFractionDigits: 8,
|
maximumFractionDigits: 8,
|
||||||
|
|
Loading…
Reference in New Issue