Refactored menu rendering - styled

pull/3/head
Vladimir Volek 6 years ago
parent 909c657454
commit ce635fe979

@ -11,6 +11,7 @@
}, },
"rules": { "rules": {
"react/destructuring-assignment": 0, "react/destructuring-assignment": 0,
"class-methods-use-this": 0,
"react/jsx-one-expression-per-line": 0, "react/jsx-one-expression-per-line": 0,
"react/jsx-indent": [2, 4], "react/jsx-indent": [2, 4],
"react/jsx-indent-props": [2, 4], "react/jsx-indent-props": [2, 4],

@ -1,8 +1,52 @@
import React, { Component } from 'react'; import React, { Component } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import colors from '~/js/config/colors';
import styled from 'styled-components';
import { NavLink } from 'react-router-dom'; import { NavLink } from 'react-router-dom';
import navigationConstants from '~/js/constants/navigation'; import navigationConstants from '~/js/constants/navigation';
const Wrapper = styled.div`
padding: 0 0 20px 0;
`;
const ImgActive = styled.img`
margin-right: 20px;
`;
const ImgRedirect = styled.img`
margin-right: 15px;
`;
const Link = styled(NavLink)`
display: flex;
align-items: center;
`;
const LinkRedirect = styled.a`
display: flex;
align-items: center;
`;
const Divider = styled.div`
font-size: 12px;
display: flex;
justify-content: space-between;
color: ${colors.TEXT_SECONDARY};
background: ${colors.GRAY_LIGHT};
padding: 8px 28px 8px 24px;
border-top: 1px solid ${colors.DIVIDER};
border-bottom: 1px solid ${colors.DIVIDER};
`;
const RedirectText = styled.span`
display: flex;
justify-content: flex-end;
`;
const Name = styled.div`
height: 100%;
`;
class CoinSelection extends Component { class CoinSelection extends Component {
getBaseUrl() { getBaseUrl() {
const { selectedDevice } = this.props.wallet; const { selectedDevice } = this.props.wallet;
@ -16,30 +60,39 @@ class CoinSelection extends Component {
return baseUrl; return baseUrl;
} }
getImagePath(symbol, network) {
const coindId = (symbol === 'tETH' ? network : symbol);
return `../../../../images/${coindId}-logo.png`;
}
render() { render() {
const { config } = this.props.localStorage; const { config } = this.props.localStorage;
return ( return (
<section> <Wrapper>
{config.coins.map(item => ( {config.coins.map(item => (
<NavLink <Link
key={item.network} key={item.network}
to={`${this.getBaseUrl()}/network/${item.network}/account/0`} to={`${this.getBaseUrl()}/network/${item.network}/account/0`}
>{ item.name } >
</NavLink> <ImgActive width="12px" src={this.getImagePath(item.symbol, item.network)} />
<Name>{ item.name }</Name>
</Link>
))} ))}
<div className="coin-divider"> <Divider>
Other coins <span>(You will be redirected)</span> Other coins <RedirectText>(You will be redirected)</RedirectText>
</div> </Divider>
{navigationConstants.map(item => ( {navigationConstants.map(item => (
<a <LinkRedirect
key={item.coinName} key={item.coinName}
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
href={item.url} href={item.url}
>{item.coinName} >
</a> <ImgRedirect src={item.image} width="20px" />
{item.coinName}
</LinkRedirect>
))} ))}
</section> </Wrapper>
); );
} }
} }

@ -2,25 +2,31 @@ export default [
{ {
coinName: 'Bitcoin', coinName: 'Bitcoin',
url: 'https://wallet.trezor.io/#/coin/btc', url: 'https://wallet.trezor.io/#/coin/btc',
image: '../images/btc-logo.png',
}, },
{ {
coinName: 'Litecoin', coinName: 'Litecoin',
url: 'https://wallet.trezor.io/#/coin/ltc', url: 'https://wallet.trezor.io/#/coin/ltc',
image: '../images/ltc-logo.png',
}, },
{ {
coinName: 'Bitcoin Cash', coinName: 'Bitcoin Cash',
url: 'https://wallet.trezor.io/#/coin/bch', url: 'https://wallet.trezor.io/#/coin/bch',
image: '../images/bch-logo.png',
}, },
{ {
coinName: 'Bitcoin Gold', coinName: 'Bitcoin Gold',
url: 'https://wallet.trezor.io/#/coin/btg', url: 'https://wallet.trezor.io/#/coin/btg',
image: '../images/btg-logo.png',
}, },
{ {
coinName: 'Dash', coinName: 'Dash',
url: 'https://wallet.trezor.io/#/coin/dash', url: 'https://wallet.trezor.io/#/coin/dash',
image: '../images/dash-logo.png',
}, },
{ {
coinName: 'Zcash', coinName: 'Zcash',
url: 'https://wallet.trezor.io/#/coin/zec', url: 'https://wallet.trezor.io/#/coin/zec',
image: '../images/zec-logo.png',
}, },
]; ];

@ -415,54 +415,6 @@ aside {
background-size: auto 20px; background-size: auto 20px;
background-position: 2px 0px; background-position: 2px 0px;
} }
&.ethereum:before {
background-image: url('../images/eth-logo.png');
}
&.ethereum-classic:before {
background-image: url('../images/etc-logo.png');
}
&.ropsten:before {
background-image: url('../images/ropsten-logo.png');
}
&.rinkeby:before {
background-image: url('../images/rinkeby-logo.png');
}
&.btc:before {
background-image: url('../images/btc-logo.png');
}
&.bch:before {
background-image: url('../images/bch-logo.png');
}
&.btg:before {
background-image: url('../images/btg-logo.png');
}
&.ltc:before {
background-image: url('../images/ltc-logo.png');
}
&.dash:before {
background-image: url('../images/dash-logo.png');
}
&.zec:before {
background-image: url('../images/zec-logo.png');
}
}
.coin-divider {
font-size: 12px;
display: flex;
justify-content: space-between;
color: @color_text_secondary;
background: @color_gray_light;
padding: 8px 28px 8px 24px;
border-top: 1px solid @color_divider;
border-bottom: 1px solid @color_divider;
span {
display: flex;
justify-content: flex-end;
}
} }
.device-divider { .device-divider {

Loading…
Cancel
Save