From f4651785d7fd6e6c33db2b68ab8d4ca61ada4659 Mon Sep 17 00:00:00 2001 From: Vasek Mlejnsky Date: Wed, 15 Aug 2018 14:03:29 +0200 Subject: [PATCH] AsideRowAccount component WIP --- .../wallet/aside/AccountSelection.js | 30 ++++++--- .../wallet/aside/AsideRowAccount.js | 64 +++++++++++++++++++ src/js/config/variables.js | 4 ++ src/styles/aside.less | 22 +++---- 4 files changed, 100 insertions(+), 20 deletions(-) create mode 100644 src/js/components/wallet/aside/AsideRowAccount.js diff --git a/src/js/components/wallet/aside/AccountSelection.js b/src/js/components/wallet/aside/AccountSelection.js index 2d932245..e72cc8ef 100644 --- a/src/js/components/wallet/aside/AccountSelection.js +++ b/src/js/components/wallet/aside/AccountSelection.js @@ -10,6 +10,7 @@ import * as stateUtils from 'reducers/utils'; import Loader from 'components/common/LoaderCircle'; import Tooltip from 'rc-tooltip'; +import AsideRowAccount from './AsideRowAccount'; import AsideSection from './AsideSection'; import type { TrezorDevice, Accounts } from 'flowtype'; @@ -52,10 +53,16 @@ const AccountSelection = (props: Props): ?React$Element => { } return ( - - { `Account #${(account.index + 1)}` } - { account.loaded ? balance : 'Loading...' } - + + + // + // { `Account #${(account.index + 1)}` } + // { account.loaded ? balance : 'Loading...' } + // ); }); @@ -63,10 +70,15 @@ const AccountSelection = (props: Props): ?React$Element => { if (selected.connected) { const url: string = location.pathname.replace(/account+\/([0-9]*)/, 'account/0'); selectedAccounts = ( - - Account #1 - Loading... - + + + // + // Account #1 + // Loading... + // ); } } @@ -131,7 +143,7 @@ const AccountSelection = (props: Props): ?React$Element => { return ( - { backButton } + {/* { backButton } */}
{ selectedAccounts }
diff --git a/src/js/components/wallet/aside/AsideRowAccount.js b/src/js/components/wallet/aside/AsideRowAccount.js new file mode 100644 index 00000000..54938263 --- /dev/null +++ b/src/js/components/wallet/aside/AsideRowAccount.js @@ -0,0 +1,64 @@ +import styled, { css } from 'styled-components'; +import React from 'react'; +import PropTypes from 'prop-types'; +import { NavLink } from 'react-router-dom'; + +import AsideRow from './AsideRow'; + +import colors from 'config/colors'; +import { FONT_SIZE, BORDER_WIDTH } from 'config/variables'; + +const Wrapper = styled.div` + height: 64px; + font-size: ${FONT_SIZE.SMALL}; + + border-top: 1px solid ${colors.DIVIDER}; + span { + font-size: ${FONT_SIZE.SMALLER}; + color: ${colors.TEXT_SECONDARY}; + } + + ${props => props.selected && css` + border-left: ${BORDER_WIDTH.SELECTED} solid ${colors.GREEN_PRIMARY}; + background: ${colors.WHITE}; + + &:hover { + background-color: ${colors.WHITE}; + } + + &:last-child { + border-bottom: 1px solid ${colors.DIVIDER}; + } + `} +`; + +const AsideRowAccount = ({ accountIndex, balance, url, selected }) => ( + + + + Account #{accountIndex + 1} + {balance ? ( + {balance} + ) : ( + Loading... + )} + + + +); + +AsideRowAccount.propTypes = { + accountIndex: PropTypes.number.isRequired, + balance: PropTypes.string, + url: PropTypes.string.isRequired, + selected: PropTypes.bool, +}; + +AsideRowAccount.defaultProps = { + selected: true, +}; + +export default AsideRowAccount; diff --git a/src/js/config/variables.js b/src/js/config/variables.js index 0b064a33..25358460 100644 --- a/src/js/config/variables.js +++ b/src/js/config/variables.js @@ -11,3 +11,7 @@ export const TRANSITION_TIME = { export const ICON_SIZE = { BASE: '20px', } + +export const BORDER_WIDTH = { + SELECTED: '3px', +}; diff --git a/src/styles/aside.less b/src/styles/aside.less index 17387f5b..a907a040 100644 --- a/src/styles/aside.less +++ b/src/styles/aside.less @@ -281,17 +281,17 @@ aside { // } &.account { - height: 64px; - display: flex; - flex-direction: column; - justify-content: space-evenly; - font-size: 14px; - border-top: 1px solid @color_divider; - span { - display: block; - font-size: 12px; - color: @color_text_secondary; - } + // height: 64px; + // display: flex; + // flex-direction: column; + // justify-content: space-evenly; + // font-size: 14px; + // border-top: 1px solid @color_divider; + // span { + // display: block; + // font-size: 12px; + // color: @color_text_secondary; + // } &:before { content: '';