You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.4 KiB
86 lines
2.4 KiB
6 years ago
|
import React, { Component } from 'react'
|
||
|
import PropTypes from 'prop-types'
|
||
|
import ConfirmTransactionBase from '../confirm-transaction-base'
|
||
|
import {
|
||
|
formatCurrency,
|
||
|
convertTokenToFiat,
|
||
|
addFiat,
|
||
|
} from '../../../helpers/confirm-transaction/util'
|
||
|
|
||
|
export default class ConfirmTokenTransactionBase extends Component {
|
||
|
static contextTypes = {
|
||
|
t: PropTypes.func,
|
||
|
}
|
||
|
|
||
|
static propTypes = {
|
||
|
tokenAddress: PropTypes.string,
|
||
|
toAddress: PropTypes.string,
|
||
|
tokenAmount: PropTypes.number,
|
||
|
tokenSymbol: PropTypes.string,
|
||
|
fiatTransactionTotal: PropTypes.string,
|
||
|
ethTransactionTotal: PropTypes.string,
|
||
|
contractExchangeRate: PropTypes.number,
|
||
|
conversionRate: PropTypes.number,
|
||
|
currentCurrency: PropTypes.string,
|
||
|
}
|
||
|
|
||
|
getFiatTransactionAmount () {
|
||
|
const { tokenAmount, currentCurrency, conversionRate, contractExchangeRate } = this.props
|
||
|
|
||
|
return convertTokenToFiat({
|
||
|
value: tokenAmount,
|
||
|
toCurrency: currentCurrency,
|
||
|
conversionRate,
|
||
|
contractExchangeRate,
|
||
|
})
|
||
|
}
|
||
|
|
||
|
getSubtitle () {
|
||
|
const { currentCurrency, contractExchangeRate } = this.props
|
||
|
|
||
|
if (typeof contractExchangeRate === 'undefined') {
|
||
|
return this.context.t('noConversionRate')
|
||
|
} else {
|
||
|
const fiatTransactionAmount = this.getFiatTransactionAmount()
|
||
|
return formatCurrency(fiatTransactionAmount, currentCurrency)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
getFiatTotalTextOverride () {
|
||
|
const { fiatTransactionTotal, currentCurrency, contractExchangeRate } = this.props
|
||
|
|
||
|
if (typeof contractExchangeRate === 'undefined') {
|
||
|
return formatCurrency(fiatTransactionTotal, currentCurrency)
|
||
|
} else {
|
||
|
const fiatTransactionAmount = this.getFiatTransactionAmount()
|
||
|
const fiatTotal = addFiat(fiatTransactionAmount, fiatTransactionTotal)
|
||
|
return formatCurrency(fiatTotal, currentCurrency)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
render () {
|
||
|
const {
|
||
|
toAddress,
|
||
|
tokenAddress,
|
||
|
tokenSymbol,
|
||
|
tokenAmount,
|
||
|
ethTransactionTotal,
|
||
|
...restProps
|
||
|
} = this.props
|
||
|
|
||
|
const tokensText = `${tokenAmount} ${tokenSymbol}`
|
||
|
|
||
|
return (
|
||
|
<ConfirmTransactionBase
|
||
|
toAddress={toAddress}
|
||
|
identiconAddress={tokenAddress}
|
||
|
title={tokensText}
|
||
|
subtitle={this.getSubtitle()}
|
||
|
ethTotalTextOverride={`${tokensText} + \u2666 ${ethTransactionTotal}`}
|
||
|
fiatTotalTextOverride={this.getFiatTotalTextOverride()}
|
||
|
{...restProps}
|
||
|
/>
|
||
|
)
|
||
|
}
|
||
|
}
|