From 317b2fef36f0f5b27f0c5802ca921bc583fe833e Mon Sep 17 00:00:00 2001 From: meriadec Date: Wed, 13 Jun 2018 21:00:04 +0200 Subject: [PATCH] Visual & interaction improvements --- src/components/AccountPage/index.js | 36 ++++++++++++++-------- src/components/TopBar/ActivityIndicator.js | 4 +-- src/components/TopBar/ItemContainer.js | 9 +++--- src/components/TopBar/index.js | 9 ++++-- 4 files changed, 36 insertions(+), 22 deletions(-) diff --git a/src/components/AccountPage/index.js b/src/components/AccountPage/index.js index f64ee39a..faa4ee3f 100644 --- a/src/components/AccountPage/index.js +++ b/src/components/AccountPage/index.js @@ -8,12 +8,13 @@ import { Redirect } from 'react-router' import styled from 'styled-components' import type { Currency, Account } from '@ledgerhq/live-common/lib/types' import SyncOneAccountOnMount from 'components/SyncOneAccountOnMount' +import Tooltip from 'components/base/Tooltip' import { MODAL_SEND, MODAL_RECEIVE, MODAL_SETTINGS_ACCOUNT } from 'config/constants' import type { T } from 'types/common' -import { darken } from 'styles/helpers' +import { rgba } from 'styles/helpers' import { accountSelector } from 'reducers/accounts' import { counterValueCurrencySelector, localeSelector } from 'reducers/settings' @@ -29,7 +30,7 @@ import { BalanceSinceDiff, BalanceSincePercent, } from 'components/BalanceSummary/BalanceInfos' -import Box from 'components/base/Box' +import Box, { Tabbable } from 'components/base/Box' import Button from 'components/base/Button' import FormattedVal from 'components/base/FormattedVal' import PillsDaysCount from 'components/PillsDaysCount' @@ -39,15 +40,22 @@ import StickyBackToTop from 'components/StickyBackToTop' import AccountHeader from './AccountHeader' import EmptyStateAccount from './EmptyStateAccount' -const ButtonSettings = styled(Button).attrs({ - small: true, +const ButtonSettings = styled(Tabbable).attrs({ + cursor: 'pointer', + align: 'center', + justify: 'center', + borderRadius: 1, })` - border: 2px solid ${p => p.theme.colors.grey}; - width: 30px; - padding: 0; + width: 40px; + height: 40px; + + &:hover { + color: ${p => (p.disabled ? '' : p.theme.colors.dark)}; + background: ${p => (p.disabled ? '' : rgba(p.theme.colors.fog, 0.2))}; + } &:active { - border: 2px solid ${p => darken(p.theme.colors.grey, 0.2)}; + background: ${p => (p.disabled ? '' : rgba(p.theme.colors.fog, 0.3))}; } ` @@ -120,11 +128,13 @@ class AccountPage extends PureComponent { )} - openModal(MODAL_SETTINGS_ACCOUNT, { account })}> - - - - + t('app:account.settings.title')}> + openModal(MODAL_SETTINGS_ACCOUNT, { account })}> + + + + + {account.operations.length > 0 ? ( diff --git a/src/components/TopBar/ActivityIndicator.js b/src/components/TopBar/ActivityIndicator.js index 12bed341..64c2373a 100644 --- a/src/components/TopBar/ActivityIndicator.js +++ b/src/components/TopBar/ActivityIndicator.js @@ -70,11 +70,11 @@ class ActivityIndicatorInner extends Component { render() { const { isPending, isError, t } = this.props const { hasClicked, isFirstSync } = this.state - const isDisabled = hasClicked || isError + const isDisabled = isFirstSync || hasClicked || isError const isRotating = isPending && (hasClicked || isFirstSync) return ( - + (p.isDisabled ? 'default' : 'pointer'), + cursor: p => (p.disabled ? 'default' : 'pointer'), horizontal: true, borderRadius: 1, })` height: 40px; + pointer-events: ${p => (p.disabled ? 'none' : 'unset')}; &:hover { - color: ${p => (p.isDisabled ? '' : p.theme.colors.dark)}; - background: ${p => (p.isDisabled ? '' : rgba(p.theme.colors.fog, 0.2))}; + color: ${p => (p.disabled ? '' : p.theme.colors.dark)}; + background: ${p => (p.disabled ? '' : rgba(p.theme.colors.fog, 0.2))}; } &:active { - background: ${p => (p.isDisabled ? '' : rgba(p.theme.colors.fog, 0.3))}; + background: ${p => (p.disabled ? '' : rgba(p.theme.colors.fog, 0.3))}; } ` diff --git a/src/components/TopBar/index.js b/src/components/TopBar/index.js index 19faec18..11b4bd1c 100644 --- a/src/components/TopBar/index.js +++ b/src/components/TopBar/index.js @@ -19,6 +19,7 @@ import IconSettings from 'icons/Settings' import Box from 'components/base/Box' import GlobalSearch from 'components/GlobalSearch' +import Tooltip from 'components/base/Tooltip' import ActivityIndicator from './ActivityIndicator' import ItemContainer from './ItemContainer' @@ -101,9 +102,11 @@ class TopBar extends PureComponent { - - - + t('app:settings.title')}> + + + + {hasPassword && ( // FIXME this should be a dedicated component. therefore this component don't need to connect()