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