import React, { useState } from 'react' import PropTypes from 'prop-types' import BigNumber from 'bignumber.js' import classnames from 'classnames' import { calcTokenAmount } from '../../../helpers/utils/token-util' import { formatSwapsValueForDisplay } from '../swaps.util' export default function ExchangeRateDisplay({ primaryTokenValue, primaryTokenDecimals = 18, primaryTokenSymbol, secondaryTokenValue, secondaryTokenDecimals = 18, secondaryTokenSymbol, arrowColor = 'black', boldSymbols = true, className, }) { const [showPrimaryToSecondary, setShowPrimaryToSecondary] = useState(true) const [rotating, setRotating] = useState(false) const primaryTokenAmount = calcTokenAmount( primaryTokenValue, primaryTokenDecimals, ) const secondaryTokenAmount = calcTokenAmount( secondaryTokenValue, secondaryTokenDecimals, ) const conversionRateFromPrimaryToSecondary = new BigNumber( secondaryTokenAmount, ) .div(primaryTokenAmount) .round(9) .toString(10) const conversionRateFromSecondaryToPrimary = new BigNumber(primaryTokenAmount) .div(secondaryTokenAmount) .round(9) .toString(10) const baseSymbol = showPrimaryToSecondary ? primaryTokenSymbol : secondaryTokenSymbol const ratiodSymbol = showPrimaryToSecondary ? secondaryTokenSymbol : primaryTokenSymbol const rate = showPrimaryToSecondary ? conversionRateFromPrimaryToSecondary : conversionRateFromSecondaryToPrimary let rateToDisplay let comparisonSymbol = '=' if (new BigNumber(rate, 10).lt('0.00000001', 10)) { rateToDisplay = '0.000000001' comparisonSymbol = '<' } else if (new BigNumber(rate, 10).lt('0.000001', 10)) { rateToDisplay = rate } else { rateToDisplay = formatSwapsValueForDisplay(rate) } return (