diff --git a/src/components/DeviceInteraction/DeviceInteractionStep.js b/src/components/DeviceInteraction/DeviceInteractionStep.js
index 3ba0fb8a..3e4a3ce5 100644
--- a/src/components/DeviceInteraction/DeviceInteractionStep.js
+++ b/src/components/DeviceInteraction/DeviceInteractionStep.js
@@ -180,7 +180,7 @@ class DeviceInteractionStep extends PureComponent<
{step.icon}
{title && (
-
+
{title}
)}
diff --git a/src/components/DeviceInteraction/components.js b/src/components/DeviceInteraction/components.js
index 10a6bcb3..a81e425f 100644
--- a/src/components/DeviceInteraction/components.js
+++ b/src/components/DeviceInteraction/components.js
@@ -4,7 +4,6 @@ import React from 'react'
import styled from 'styled-components'
import { radii } from 'styles/theme'
-import { rgba } from 'styles/helpers'
import TranslatedError from 'components/TranslatedError'
import Box from 'components/base/Box'
@@ -13,12 +12,12 @@ import Spinner from 'components/base/Spinner'
import IconCheck from 'icons/Check'
import IconCross from 'icons/Cross'
import IconExclamationCircle from 'icons/ExclamationCircle'
+import IconSmoothBorders from 'icons/SmoothBorders'
export const DeviceInteractionStepContainer = styled(Box).attrs({
horizontal: true,
ff: 'Open Sans',
fontSize: 3,
- bg: 'white',
color: 'graphite',
})`
position: relative;
@@ -27,21 +26,28 @@ export const DeviceInteractionStepContainer = styled(Box).attrs({
min-height: 80px;
border: 1px solid ${p => p.theme.colors.fog};
border-color: ${p =>
- p.isError ? p.theme.colors.alertRed : p.isActive || p.isSuccess ? p.theme.colors.wallet : ''};
+ p.isError ? p.theme.colors.alertRed : p.isActive && !p.isFinished ? p.theme.colors.wallet : ''};
border-top-color: ${p => (p.isFirst || p.isActive ? '' : 'transparent')};
border-bottom-color: ${p => (p.isPrecedentActive ? 'transparent' : '')};
border-bottom-left-radius: ${p => (p.isLast ? `${radii[1]}px` : 0)};
border-bottom-right-radius: ${p => (p.isLast ? `${radii[1]}px` : 0)};
border-top-left-radius: ${p => (p.isFirst ? `${radii[1]}px` : 0)};
border-top-right-radius: ${p => (p.isFirst ? `${radii[1]}px` : 0)};
- box-shadow: ${p =>
- p.isActive && !p.isSuccess
- ? `
- ${rgba(p.isError ? p.theme.colors.alertRed : p.theme.colors.wallet, 0.2)} 0 0 3px 2px
- `
- : 'none'};
`
+const AbsCenter = styled.div`
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+`
+
+const smoothBorders =
+
export const IconContainer = ({
children,
isTransparent,
@@ -50,15 +56,15 @@ export const IconContainer = ({
isTransparent: boolean,
}) => (
- {children}
+ {smoothBorders}
+ {children}
)
diff --git a/src/components/EnsureDeviceApp.js b/src/components/EnsureDeviceApp.js
index 23385b67..c63caa6b 100644
--- a/src/components/EnsureDeviceApp.js
+++ b/src/components/EnsureDeviceApp.js
@@ -27,8 +27,8 @@ import { getCurrentDevice } from 'reducers/devices'
export const WrongAppOpened = createCustomErrorClass('WrongAppOpened')
export const WrongDeviceForAccount = createCustomErrorClass('WrongDeviceForAccount')
-const usbIcon =
-const Bold = props =>
+const usbIcon =
+const Bold = props =>
const mapStateToProps = state => ({
device: getCurrentDevice(state),
@@ -107,7 +107,7 @@ class EnsureDeviceApp extends Component<{
{
id: 'address',
title: this.renderOpenAppTitle,
- icon: Icon ? : null,
+ icon: Icon ? : null,
run: this.openAppInteractionHandler,
},
]}
diff --git a/src/components/ExchangePage/index.js b/src/components/ExchangePage/index.js
index fb92fbb0..f3b770fc 100644
--- a/src/components/ExchangePage/index.js
+++ b/src/components/ExchangePage/index.js
@@ -44,13 +44,13 @@ class ExchangePage extends PureComponent {
return (
-
+
{t('app:exchange.title')}
-
+
{t('app:exchange.desc')}
- {cards.map(card => )}
+ {cards.map(card => )}
)
}
diff --git a/src/components/GenuineCheck.js b/src/components/GenuineCheck.js
index e1f8e2bc..1e3f04af 100644
--- a/src/components/GenuineCheck.js
+++ b/src/components/GenuineCheck.js
@@ -24,7 +24,7 @@ import Text from 'components/base/Text'
import IconUsb from 'icons/Usb'
import IconHome from 'icons/Home'
-import IconGenuineCheck from 'icons/GenuineCheck'
+import IconCheck from 'icons/Check'
const DeviceNotGenuineError = createCustomErrorClass('DeviceNotGenuine')
@@ -36,15 +36,15 @@ type Props = {
device: ?Device,
}
-const usbIcon =
-const homeIcon =
-const genuineCheckIcon =
+const usbIcon =
+const homeIcon =
+const genuineCheckIcon =
const mapStateToProps = state => ({
device: getCurrentDevice(state),
})
-const Bold = props =>
+const Bold = props =>
// to speed up genuine check, cache result by device id
const genuineDevices = new WeakSet()
diff --git a/src/components/GradientBox.js b/src/components/GradientBox.js
index dc637006..1c928be9 100644
--- a/src/components/GradientBox.js
+++ b/src/components/GradientBox.js
@@ -5,10 +5,10 @@ export default styled.div`
width: 100%;
height: 60px;
position: absolute;
- bottom: 68px;
+ bottom: 0;
left: 0;
right: 0;
- background: linear-gradient(rgba(255, 255, 255, 0), #ffffff 70%);
+ background: linear-gradient(rgba(255, 255, 255, 0), #ffffff);
z-index: 2;
pointer-events: none;
`
diff --git a/src/components/MainSideBar/index.js b/src/components/MainSideBar/index.js
index 63f83a84..5196c0b2 100644
--- a/src/components/MainSideBar/index.js
+++ b/src/components/MainSideBar/index.js
@@ -15,6 +15,7 @@ import type { UpdateStatus } from 'reducers/update'
import { MODAL_RECEIVE, MODAL_SEND, MODAL_ADD_ACCOUNTS } from 'config/constants'
+import { i } from 'helpers/staticPath'
import { accountsSelector } from 'reducers/accounts'
import { openModal } from 'reducers/modals'
import { getUpdateStatus } from 'reducers/update'
@@ -65,6 +66,13 @@ class MainSideBar extends PureComponent {
push(to)
}
+ ADD_ACCOUNT_EMPTY_STATE = (
+
+
+ {this.props.t('app:emptyState.sidebar.text')}
+
+ )
+
handleClickDashboard = () => this.push('/')
handleOpenSendModal = () => this.props.openModal(MODAL_SEND)
handleOpenReceiveModal = () => this.props.openModal(MODAL_RECEIVE)
@@ -130,7 +138,7 @@ class MainSideBar extends PureComponent {
{accounts.map(account => (
{
{
(
-
+
{t('app:manager.title')}
diff --git a/src/components/ManagerPage/ManagerGenuineCheck.js b/src/components/ManagerPage/ManagerGenuineCheck.js
index 8b7effc3..a5255073 100644
--- a/src/components/ManagerPage/ManagerGenuineCheck.js
+++ b/src/components/ManagerPage/ManagerGenuineCheck.js
@@ -31,7 +31,7 @@ class ManagerGenuineCheck extends PureComponent {
alt="connect your device"
style={{ marginBottom: 30, maxWidth: 362, width: '100%' }}
/>
-
+
{t('app:manager.device.title')}
diff --git a/src/components/SettingsPage/SettingsSection.js b/src/components/SettingsPage/SettingsSection.js
index acd1f44b..03d9678c 100644
--- a/src/components/SettingsPage/SettingsSection.js
+++ b/src/components/SettingsPage/SettingsSection.js
@@ -106,7 +106,7 @@ export function SettingsSectionRow({
{title}
-
+
{desc}
diff --git a/src/components/base/Button/index.js b/src/components/base/Button/index.js
index ec4b822f..1750a8a1 100644
--- a/src/components/base/Button/index.js
+++ b/src/components/base/Button/index.js
@@ -36,7 +36,7 @@ const buttonStyles: { [_: string]: Style } = {
? `
0 0 0 1px ${darken(p.theme.colors.wallet, 0.3)} inset,
0 0 0 1px ${rgba(p.theme.colors.wallet, 0.5)},
- 0 0 0 4px ${rgba(p.theme.colors.wallet, 0.3)};`
+ 0 0 0 3px ${rgba(p.theme.colors.wallet, 0.3)};`
: ''
}
`,
@@ -56,7 +56,7 @@ const buttonStyles: { [_: string]: Style } = {
? `
0 0 0 1px ${darken(p.theme.colors.alertRed, 0.3)} inset,
0 0 0 1px ${rgba(p.theme.colors.alertRed, 0.5)},
- 0 0 0 4px ${rgba(p.theme.colors.alertRed, 0.3)};
+ 0 0 0 3px ${rgba(p.theme.colors.alertRed, 0.3)};
`
: ''
}
@@ -69,15 +69,30 @@ const buttonStyles: { [_: string]: Style } = {
`,
},
outline: {
- default: p => `
- background: transparent;
- border: 1px solid ${
- p.outlineColor ? p.theme.colors[p.outlineColor] || p.outlineColor : p.theme.colors.wallet
- };
- color: ${
- p.outlineColor ? p.theme.colors[p.outlineColor] || p.outlineColor : p.theme.colors.wallet
- };
- `,
+ default: p => {
+ const c = p.outlineColor
+ ? p.theme.colors[p.outlineColor] || p.outlineColor
+ : p.theme.colors.wallet
+ return `
+ background: transparent;
+ border: 1px solid ${c};
+ color: ${c};
+ box-shadow: ${
+ p.isFocused
+ ? `
+ 0 0 0 3px ${rgba(c, 0.3)};`
+ : ''
+ }
+ `
+ },
+ hover: p => {
+ const c = p.outlineColor
+ ? p.theme.colors[p.outlineColor] || p.outlineColor
+ : p.theme.colors.wallet
+ return `
+ background: ${rgba(c, 0.1)};
+ `
+ },
active: p => `
color: ${darken(
p.outlineColor ? p.theme.colors[p.outlineColor] || p.outlineColor : p.theme.colors.wallet,
diff --git a/src/components/base/SideBar/SideBarList.js b/src/components/base/SideBar/SideBarList.js
index b5a629af..e8da9cff 100644
--- a/src/components/base/SideBar/SideBarList.js
+++ b/src/components/base/SideBar/SideBarList.js
@@ -11,13 +11,13 @@ type Props = {
children: any,
title?: Node | string,
scroll?: boolean,
- titleRight?: any, // TODO: type should be more precise, but, eh ¯\_(ツ)_/¯
- emptyText?: string,
+ titleRight?: any,
+ emptyState?: any,
}
class SideBarList extends Component {
render() {
- const { children, title, scroll, titleRight, emptyText, ...props } = this.props
+ const { children, title, scroll, titleRight, emptyState, ...props } = this.props
const ListWrapper = scroll ? GrowScroll : Box
return (
@@ -34,9 +34,9 @@ class SideBarList extends Component {
{children}
- ) : emptyText ? (
+ ) : emptyState ? (
- {emptyText}
+ {emptyState}
) : null}
diff --git a/src/components/modals/AddAccounts/steps/03-step-import.js b/src/components/modals/AddAccounts/steps/03-step-import.js
index b84586cc..b74046fa 100644
--- a/src/components/modals/AddAccounts/steps/03-step-import.js
+++ b/src/components/modals/AddAccounts/steps/03-step-import.js
@@ -15,9 +15,9 @@ import CurrencyBadge from 'components/base/CurrencyBadge'
import Button from 'components/base/Button'
import AccountsList from 'components/base/AccountsList'
import IconExclamationCircleThin from 'icons/ExclamationCircleThin'
-import TranslatedError from '../../../TranslatedError'
-import Spinner from '../../../base/Spinner'
-import Text from '../../../base/Text'
+import TranslatedError from 'components/TranslatedError'
+import Spinner from 'components/base/Spinner'
+import Text from 'components/base/Text'
import type { StepProps } from '../index'
@@ -281,6 +281,9 @@ class StepImport extends PureComponent {
{scanStatus === 'scanning' ? (
+
+ {t('app:common.sync.syncing')}
+
) : null}
diff --git a/src/components/modals/OperationDetails.js b/src/components/modals/OperationDetails.js
index 7fd95721..f3ee4618 100644
--- a/src/components/modals/OperationDetails.js
+++ b/src/components/modals/OperationDetails.js
@@ -129,7 +129,7 @@ const OperationDetails = connect(mapStateToProps)((props: Props) => {
return (
{t('app:operationDetails.title')}
-
+
diff --git a/src/components/modals/ReleaseNotes.js b/src/components/modals/ReleaseNotes.js
index 37e7b35c..28abeb41 100644
--- a/src/components/modals/ReleaseNotes.js
+++ b/src/components/modals/ReleaseNotes.js
@@ -221,7 +221,7 @@ class ReleaseNotes extends PureComponent {
return (
{t('app:releaseNotes.title')}
-
+
{content}
diff --git a/src/components/modals/UpdateFirmware/Disclaimer.js b/src/components/modals/UpdateFirmware/Disclaimer.js
index 330795eb..532410ce 100644
--- a/src/components/modals/UpdateFirmware/Disclaimer.js
+++ b/src/components/modals/UpdateFirmware/Disclaimer.js
@@ -58,8 +58,8 @@ class DisclaimerModal extends PureComponent {
{t('app:manager.firmware.disclaimerAppReinstall')}
-
-
+
+
{firmware.notes}
diff --git a/src/icons/GenuineCheck.js b/src/icons/GenuineCheck.js
deleted file mode 100644
index 791c0ff4..00000000
--- a/src/icons/GenuineCheck.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// @flow
-
-import React, { Fragment } from 'react'
-
-const path = (
-
-
-
-
-)
-
-export default ({ size, ...p }: { size: number }) => (
-
-)
diff --git a/src/icons/Home.js b/src/icons/Home.js
index cc38981f..4c4b509e 100644
--- a/src/icons/Home.js
+++ b/src/icons/Home.js
@@ -4,29 +4,19 @@ import React, { Fragment } from 'react'
const path = (
-
)
export default ({ size, ...p }: { size: number }) => (
-