From f8c11f918ea6016c3bec1db22eb7152376c90956 Mon Sep 17 00:00:00 2001 From: Vasek Mlejnsky Date: Thu, 16 Aug 2018 12:26:40 +0200 Subject: [PATCH] Convert 'CoinSelection' to a class component --- .../components/wallet/aside/CoinSelection.js | 119 ++++++++++-------- 1 file changed, 64 insertions(+), 55 deletions(-) diff --git a/src/js/components/wallet/aside/CoinSelection.js b/src/js/components/wallet/aside/CoinSelection.js index 671c38fa..9a18c314 100644 --- a/src/js/components/wallet/aside/CoinSelection.js +++ b/src/js/components/wallet/aside/CoinSelection.js @@ -3,7 +3,8 @@ import coins from 'constants/coins'; import colors from 'config/colors'; import ICONS from 'config/icons'; import { NavLink } from 'react-router-dom'; -import React from 'react'; +import PropTypes from 'prop-types'; +import React, { Component } from 'react'; import AsideDivider from './AsideDivider'; import AsideRowCoin from './row/coin/AsideRowCoin'; @@ -12,67 +13,75 @@ import AsideRowCoin from './row/coin/AsideRowCoin'; import type { Props } from './index'; -const CoinSelection = (props: Props) => { - const { config } = props.localStorage; - const { selectedDevice } = props.wallet; - - let baseUrl: string = ''; - if (selectedDevice && selectedDevice.features) { - baseUrl = `/device/${selectedDevice.features.device_id}`; - if (selectedDevice.instance) { - baseUrl += `:${selectedDevice.instance}`; +class CoinSelection extends Component { + getBaseUrl() { + const { selectedDevice } = this.props.wallet; + let baseUrl = ''; + if (selectedDevice && selectedDevice.features) { + baseUrl = `/device/${selectedDevice.features.device_id}`; + if (selectedDevice.instance) { + baseUrl += `:${selectedDevice.instance}`; + } } - } - - const walletCoins = config.coins.map((item) => { - const url = `${baseUrl}/network/${item.network}/account/0`; - let imgName = item.network; - if (item.network === 'ethereum') { - imgName = 'eth'; - } else if (item.network === 'ethereum-classic') { - imgName = 'etc'; - } - const imgUrl = `../images/${imgName}-logo.png`; + return baseUrl; + } + render() { + const { config } = this.props.localStorage; return ( - - + {config.coins.map((item) => { + let imgName = item.network; + if (item.network === 'ethereum') { + imgName = 'eth'; + } else if (item.network === 'ethereum-classic') { + imgName = 'etc'; + } + const imgUrl = `../images/${imgName}-logo.png`; + + return ( + + + + ); + })} + - + {coins.map(coin => ( + + + + ))} + ); - }); - - const externalCoins = coins.map(coin => ( - - - - )); - + } +} - return ( - - { walletCoins } - - { externalCoins } - - ); +CoinSelection.propTypes = { + config: PropTypes.object, + wallet: PropTypes.object, + selectedDevice: PropTypes.object, + localStorage: PropTypes.object, }; export default CoinSelection;