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.
67 lines
2.0 KiB
67 lines
2.0 KiB
import { connect } from 'react-redux'
|
|
import UserPreferencedCurrencyDisplay from './user-preferenced-currency-display.component'
|
|
import { preferencesSelector, getIsMainnet } from '../../selectors'
|
|
import { ETH, PRIMARY, SECONDARY } from '../../constants/common'
|
|
|
|
const mapStateToProps = (state, ownProps) => {
|
|
const {
|
|
useNativeCurrencyAsPrimaryCurrency,
|
|
showFiatInTestnets,
|
|
} = preferencesSelector(state)
|
|
|
|
const isMainnet = getIsMainnet(state)
|
|
|
|
return {
|
|
useNativeCurrencyAsPrimaryCurrency,
|
|
showFiatInTestnets,
|
|
isMainnet,
|
|
nativeCurrency: state.metamask.nativeCurrency,
|
|
}
|
|
}
|
|
|
|
const mergeProps = (stateProps, dispatchProps, ownProps) => {
|
|
const { useNativeCurrencyAsPrimaryCurrency, showFiatInTestnets, isMainnet, nativeCurrency, ...restStateProps } = stateProps
|
|
const {
|
|
type,
|
|
numberOfDecimals: propsNumberOfDecimals,
|
|
ethNumberOfDecimals,
|
|
fiatNumberOfDecimals,
|
|
ethPrefix,
|
|
fiatPrefix,
|
|
prefix: propsPrefix,
|
|
...restOwnProps
|
|
} = ownProps
|
|
|
|
let currency, numberOfDecimals, prefix
|
|
|
|
if (type === PRIMARY && useNativeCurrencyAsPrimaryCurrency ||
|
|
type === SECONDARY && !useNativeCurrencyAsPrimaryCurrency) {
|
|
// Display ETH
|
|
currency = nativeCurrency || ETH
|
|
numberOfDecimals = propsNumberOfDecimals || ethNumberOfDecimals || 6
|
|
prefix = propsPrefix || ethPrefix
|
|
} else if (type === SECONDARY && useNativeCurrencyAsPrimaryCurrency ||
|
|
type === PRIMARY && !useNativeCurrencyAsPrimaryCurrency) {
|
|
// Display Fiat
|
|
numberOfDecimals = propsNumberOfDecimals || fiatNumberOfDecimals || 2
|
|
prefix = propsPrefix || fiatPrefix
|
|
}
|
|
|
|
if (!isMainnet && !showFiatInTestnets) {
|
|
currency = nativeCurrency || ETH
|
|
numberOfDecimals = propsNumberOfDecimals || ethNumberOfDecimals || 6
|
|
prefix = propsPrefix || ethPrefix
|
|
}
|
|
|
|
return {
|
|
...restStateProps,
|
|
...dispatchProps,
|
|
...restOwnProps,
|
|
nativeCurrency,
|
|
currency,
|
|
numberOfDecimals,
|
|
prefix,
|
|
}
|
|
}
|
|
|
|
export default connect(mapStateToProps, null, mergeProps)(UserPreferencedCurrencyDisplay)
|
|
|