From dd99ab69d3bc2a6e76c1b1b23a86308fbbd30a8a Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Mon, 18 Feb 2019 20:37:15 +0100 Subject: [PATCH] add intl messages part 1 --- .../components/BrowserNotSupported/index.js | 10 +- .../BrowserNotSupported/index.messages.js | 24 + .../Landing/components/ConnectDevice/index.js | 3 +- .../ConnectDevice/index.messages.js | 4 - .../Landing/views/InstallBridge/index.js | 59 +- .../views/InstallBridge/index.messages.js | 37 ++ .../components/FirmwareUnsupported/index.js | 7 +- .../FirmwareUnsupported/index.messages.js | 16 + src/views/Wallet/components/Content/index.js | 5 +- .../components/Content/index.messages.js | 12 + .../components/AccountMenu/index.js | 21 +- .../components/AccountMenu/index.messages.js | 29 + .../components/CoinMenu/index.js | 7 +- .../components/CoinMenu/index.messages.js | 16 + .../DeviceMenu/components/MenuItems/index.js | 12 +- .../components/MenuItems/index.messages.js | 21 + .../components/DeviceMenu/index.js | 6 +- .../components/DeviceMenu/index.messages.js | 9 + .../components/Divider/index.js | 4 +- .../Wallet/components/LeftNavigation/index.js | 36 +- .../LeftNavigation/index.messages.js | 36 ++ src/views/Wallet/components/Title/index.js | 2 +- .../components/TopNavigationAccount/index.js | 10 +- .../TopNavigationAccount/index.messages.js | 24 + .../TopNavigationDeviceSettings/index.js | 4 +- .../views/Account/Receive/common.messages.js | 20 + .../components/VerifyAddressTooltip/index.js | 11 +- .../VerifyAddressTooltip/index.messages.js | 24 + .../views/Account/Receive/ethereum/index.js | 12 +- .../Receive/ethereum/index.messages.js | 12 + .../views/Account/Receive/ripple/index.js | 12 +- .../Account/Receive/ripple/index.messages.js | 12 + .../views/Account/Send/common.messages.js | 36 ++ .../ethereum/components/AdvancedForm/index.js | 45 +- .../components/AdvancedForm/index.messages.js | 48 ++ .../views/Account/Send/ethereum/index.js | 25 +- .../Account/Send/ethereum/index.messages.js | 16 + .../ripple/components/AdvancedForm/index.js | 19 +- .../components/AdvancedForm/index.messages.js | 20 + .../Wallet/views/Account/Send/ripple/index.js | 28 +- .../Account/Send/ripple/index.messages.js | 17 + src/views/common.messages.js | 21 + .../BetaDisclaimer/index.messages.json | 6 +- .../BrowserNotSupported/index.messages.json | 54 ++ .../ConnectDevice/index.messages.json | 25 +- .../views/InstallBridge/index.messages.json | 94 +++ .../FirmwareUnsupported/index.messages.json | 28 + .../components/Content/index.messages.json | 15 + .../AccountMenu/index.messages.json | 68 ++ .../components/CoinMenu/index.messages.json | 28 + .../components/MenuItems/index.messages.json | 42 ++ .../LeftNavigation/index.messages.json | 93 +++ .../TopNavigationAccount/index.messages.json | 54 ++ .../Account/Receive/common.messages.json | 41 ++ .../VerifyAddressTooltip/index.messages.json | 54 ++ .../Receive/ethereum/index.messages.json | 15 + .../Receive/ripple/index.messages.json | 15 + .../views/Account/Send/common.messages.json | 84 +++ .../AdvancedForm/index.messages.json | 132 ++++ .../Account/Send/ethereum/index.messages.json | 28 + .../AdvancedForm/index.messages.json | 41 ++ .../Account/Send/ripple/index.messages.json | 29 + .../src/views/common.messages.json | 42 ++ translations/master.csv | 77 ++- translations/master.json | 583 +++++++++++++++++- 65 files changed, 2274 insertions(+), 166 deletions(-) create mode 100644 src/views/Landing/components/BrowserNotSupported/index.messages.js create mode 100644 src/views/Landing/views/InstallBridge/index.messages.js create mode 100644 src/views/Wallet/components/Content/components/FirmwareUnsupported/index.messages.js create mode 100644 src/views/Wallet/components/Content/index.messages.js create mode 100644 src/views/Wallet/components/LeftNavigation/components/AccountMenu/index.messages.js create mode 100644 src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.messages.js create mode 100644 src/views/Wallet/components/LeftNavigation/components/DeviceMenu/components/MenuItems/index.messages.js create mode 100644 src/views/Wallet/components/LeftNavigation/components/DeviceMenu/index.messages.js create mode 100644 src/views/Wallet/components/LeftNavigation/index.messages.js create mode 100644 src/views/Wallet/components/TopNavigationAccount/index.messages.js create mode 100644 src/views/Wallet/views/Account/Receive/common.messages.js create mode 100644 src/views/Wallet/views/Account/Receive/components/VerifyAddressTooltip/index.messages.js create mode 100644 src/views/Wallet/views/Account/Receive/ethereum/index.messages.js create mode 100644 src/views/Wallet/views/Account/Receive/ripple/index.messages.js create mode 100644 src/views/Wallet/views/Account/Send/common.messages.js create mode 100644 src/views/Wallet/views/Account/Send/ethereum/components/AdvancedForm/index.messages.js create mode 100644 src/views/Wallet/views/Account/Send/ethereum/index.messages.js create mode 100644 src/views/Wallet/views/Account/Send/ripple/components/AdvancedForm/index.messages.js create mode 100644 src/views/Wallet/views/Account/Send/ripple/index.messages.js create mode 100644 src/views/common.messages.js create mode 100644 translations/extractedMessages/src/views/Landing/components/BrowserNotSupported/index.messages.json create mode 100644 translations/extractedMessages/src/views/Landing/views/InstallBridge/index.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/components/Content/components/FirmwareUnsupported/index.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/components/Content/index.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/components/LeftNavigation/components/AccountMenu/index.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/components/MenuItems/index.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/components/LeftNavigation/index.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/components/TopNavigationAccount/index.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/views/Account/Receive/common.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/views/Account/Receive/components/VerifyAddressTooltip/index.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/views/Account/Receive/ethereum/index.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/views/Account/Receive/ripple/index.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/views/Account/Send/common.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/views/Account/Send/ethereum/components/AdvancedForm/index.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/views/Account/Send/ethereum/index.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/views/Account/Send/ripple/components/AdvancedForm/index.messages.json create mode 100644 translations/extractedMessages/src/views/Wallet/views/Account/Send/ripple/index.messages.json create mode 100644 translations/extractedMessages/src/views/common.messages.json diff --git a/src/views/Landing/components/BrowserNotSupported/index.js b/src/views/Landing/components/BrowserNotSupported/index.js index 5ba7904a..f4499dd3 100644 --- a/src/views/Landing/components/BrowserNotSupported/index.js +++ b/src/views/Landing/components/BrowserNotSupported/index.js @@ -4,9 +4,11 @@ import Link from 'components/Link'; import Button from 'components/Button'; import P from 'components/Paragraph'; import { H2 } from 'components/Heading'; +import { FormattedMessage } from 'react-intl'; import ChromeImage from 'images/browser-chrome.png'; import FirefoxImage from 'images/browser-firefox.png'; +import l10nMessages from './index.messages'; const Wrapper = styled.div` padding: 24px 0px; @@ -32,21 +34,21 @@ const Browser = styled.div` const BrowserNotSupported = () => ( -

Your browser is not supported

-

Please choose one of the supported browsers

+

+

Google Chrome

- +

Mozzila Firefox

- +
diff --git a/src/views/Landing/components/BrowserNotSupported/index.messages.js b/src/views/Landing/components/BrowserNotSupported/index.messages.js new file mode 100644 index 00000000..4f42bce2 --- /dev/null +++ b/src/views/Landing/components/BrowserNotSupported/index.messages.js @@ -0,0 +1,24 @@ +/* @flow */ +import { defineMessages } from 'react-intl'; +import type { Messages } from 'flowtype/npm/react-intl'; + +const definedMessages: Messages = defineMessages({ + TR_YOUR_BROWSER_IS_NOT_SUPPORTED: { + id: 'TR_YOUR_BROWSER_IS_NOT_SUPPORTED', + defaultMessage: 'Your browser is not supported', + }, + TR_PLEASE_CHOOSE_ONE_OF_THE_SUPPORTED: { + id: 'TR_PLEASE_CHOOSE_ONE_OF_THE_SUPPORTED', + defaultMessage: 'Please choose one of the supported browsers', + }, + TR_GET_CHROME: { + id: 'TR_GET_CHROME', + defaultMessage: 'Get Chrome', + }, + TR_GET_FIREFOX: { + id: 'TR_GET_FIREFOX', + defaultMessage: 'Get Firefox', + }, +}); + +export default definedMessages; \ No newline at end of file diff --git a/src/views/Landing/components/ConnectDevice/index.js b/src/views/Landing/components/ConnectDevice/index.js index 64719114..4748d7fc 100644 --- a/src/views/Landing/components/ConnectDevice/index.js +++ b/src/views/Landing/components/ConnectDevice/index.js @@ -3,6 +3,7 @@ import React, { PureComponent } from 'react'; import styled, { keyframes } from 'styled-components'; import TrezorConnect from 'trezor-connect'; +import l10nCommonMessages from 'views/common.messages'; import P from 'components/Paragraph'; import Button from 'components/Button'; import { H2 } from 'components/Heading'; @@ -149,7 +150,7 @@ class ConnectDevice extends PureComponent { - + )} diff --git a/src/views/Landing/components/ConnectDevice/index.messages.js b/src/views/Landing/components/ConnectDevice/index.messages.js index a1be83b0..0e7e80ab 100644 --- a/src/views/Landing/components/ConnectDevice/index.messages.js +++ b/src/views/Landing/components/ConnectDevice/index.messages.js @@ -19,10 +19,6 @@ const definedMessages: Messages = defineMessages({ id: 'TR_AND', defaultMessage: 'and', }, - TR_CHECK_FOR_DEVICES: { - id: 'TR_CHECK_FOR_DEVICES', - defaultMessage: 'Check for devices', - }, TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING: { id: 'TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING', defaultMessage: 'Device not recognized? Try installing the {link}.', diff --git a/src/views/Landing/views/InstallBridge/index.js b/src/views/Landing/views/InstallBridge/index.js index 3eb65953..237dab70 100644 --- a/src/views/Landing/views/InstallBridge/index.js +++ b/src/views/Landing/views/InstallBridge/index.js @@ -6,7 +6,7 @@ import colors from 'config/colors'; import { FONT_SIZE, FONT_WEIGHT } from 'config/variables'; import { Select } from 'components/Select'; import Link from 'components/Link'; -import { H1, H2 } from 'components/Heading'; +import { H1 } from 'components/Heading'; import Button from 'components/Button'; import P from 'components/Paragraph'; import Icon from 'components/Icon'; @@ -14,7 +14,9 @@ import ICONS from 'config/icons'; import LandingWrapper from 'views/Landing/components/LandingWrapper'; import * as RouterActions from 'actions/RouterActions'; +import { FormattedMessage } from 'react-intl'; import type { State as TrezorConnectState } from 'reducers/TrezorConnectReducer'; +import l10nMessages from './index.messages'; type InstallTarget = { value: string; @@ -112,17 +114,17 @@ const GoBack = styled.span` } `; -const Ol = styled.ul` - margin: 0 auto; - color: ${colors.TEXT_SECONDARY}; - font-size: ${FONT_SIZE.BIG}; - padding: 0px 0 15px 25px; - text-align: left; -`; +// const Ol = styled.ul` +// margin: 0 auto; +// color: ${colors.TEXT_SECONDARY}; +// font-size: ${FONT_SIZE.BIG}; +// padding: 0px 0 15px 25px; +// text-align: left; +// `; -const Li = styled.li` - text-align: justify; -`; +// const Li = styled.li` +// text-align: justify; +// `; class InstallBridge extends PureComponent { constructor(props: Props) { @@ -161,7 +163,7 @@ class InstallBridge extends PureComponent { Trezor Bridge{this.state.currentVersion} -

New communication tool to facilitate the connection between your Trezor and your internet browser.

+

{ color={colors.WHITE} size={30} /> - Download latest Bridge {this.state.latestVersion} + -

Changelog

+ {/*

    {this.props.transport.bridge.changelog.map(entry => (
  1. {entry}
  2. ))} -
+ */}

- Learn more about latest versions in - Changelog - + + + + + ), + }} + /> +

{target.signature && ( Check PGP signature + > )}

@@ -208,8 +219,8 @@ class InstallBridge extends PureComponent { {this.props.transport.type && (

- No, i dont want to upgrade Bridge now
- Take me this.props.selectFirstAvailableDevice()}>back to the wallet +
+ this.props.selectFirstAvailableDevice()}>

)}
diff --git a/src/views/Landing/views/InstallBridge/index.messages.js b/src/views/Landing/views/InstallBridge/index.messages.js new file mode 100644 index 00000000..5ea6518d --- /dev/null +++ b/src/views/Landing/views/InstallBridge/index.messages.js @@ -0,0 +1,37 @@ +/* @flow */ +import { defineMessages } from 'react-intl'; +import type { Messages } from 'flowtype/npm/react-intl'; + +const definedMessages: Messages = defineMessages({ + TR_NEW_COMMUNICATION_TOOL: { + id: 'TR_NEW_COMMUNICATION_TOOL', + defaultMessage: 'New communication tool to facilitate the connection between your Trezor and your internet browser.', + }, + TR_DOWNLOAD_LATEST_BRIDGE: { + id: 'TR_DOWNLOAD_LATEST_BRIDGE', + defaultMessage: 'Download latest Bridge {version}', + }, + TR_LEARN_MORE_ABOUT_LATEST_VERSION: { + id: 'TR_LEARN_MORE_ABOUT_LATEST_VERSION', + defaultMessage: 'Learn more about latest version in {TR_CHANGELOG}.', + }, + TR_CHANGELOG: { + id: 'TR_CHANGELOG', + defaultMessage: 'Changelog', + description: 'Part of the sentence: Learn more about latest version in {TR_CHANGELOG}.', + }, + TR_CHECK_PGP_SIGNATURE: { + id: 'TR_CHECK_PGP_SIGNATURE', + defaultMessage: 'Check PGP signature', + }, + TR_DONT_UPGRADE_BRIDGE: { + id: 'TR_DONT_UPGRADE_BRIDGE', + defaultMessage: 'No, I don\'t want to upgrade Bridge now', + }, + TR_TAKE_ME_BACK_TO_WALLET: { + id: 'TR_TAKE_ME_BACK_TO_WALLET', + defaultMessage: 'Take me back to the wallet', + }, +}); + +export default definedMessages; \ No newline at end of file diff --git a/src/views/Wallet/components/Content/components/FirmwareUnsupported/index.js b/src/views/Wallet/components/Content/components/FirmwareUnsupported/index.js index b48f562b..1f8f55db 100644 --- a/src/views/Wallet/components/Content/components/FirmwareUnsupported/index.js +++ b/src/views/Wallet/components/Content/components/FirmwareUnsupported/index.js @@ -9,6 +9,10 @@ import Button from 'components/Button'; import Link from 'components/Link'; import CoinLogo from 'components/images/CoinLogo'; +import { FormattedMessage } from 'react-intl'; +import l10nMessages from './index.messages'; + + const getInfoUrl = (networkShortcut: ?string) => { const urls = { default: 'https://wiki.trezor.io', @@ -54,13 +58,14 @@ const Message = styled(Paragraph)` `; const FirmwareUnsupported = (props: Props) => ( + //TODO: localization {props.networkShortcut && }

{props.title}

{props.message} - +
diff --git a/src/views/Wallet/components/Content/components/FirmwareUnsupported/index.messages.js b/src/views/Wallet/components/Content/components/FirmwareUnsupported/index.messages.js new file mode 100644 index 00000000..d574bee4 --- /dev/null +++ b/src/views/Wallet/components/Content/components/FirmwareUnsupported/index.messages.js @@ -0,0 +1,16 @@ +/* @flow */ +import { defineMessages } from 'react-intl'; +import type { Messages } from 'flowtype/npm/react-intl'; + +const definedMessages: Messages = defineMessages({ + TR_FIND_OUT_MORE_INFO: { + id: 'TR_FIND_OUT_MORE_INFO', + defaultMessage: 'Find out more info', + }, + TR_MODEL_DOES_NOT_SUPPORT_COIN: { + id: 'TR_MODEL_DOES_NOT_SUPPORT_COIN', + defaultMessage: 'The coin {coin} is not supported by your Trezor model.', + }, +}); + +export default definedMessages; \ No newline at end of file diff --git a/src/views/Wallet/components/Content/index.js b/src/views/Wallet/components/Content/index.js index 3cfbd133..1c2b3c25 100644 --- a/src/views/Wallet/components/Content/index.js +++ b/src/views/Wallet/components/Content/index.js @@ -12,8 +12,11 @@ import colors from 'config/colors'; import type { State } from 'flowtype'; import FirmwareUpdate from 'views/Wallet/views/FirmwareUpdate'; +import { FormattedMessage } from 'react-intl'; import FirmwareUnsupported from './components/FirmwareUnsupported'; +import l10nMessages from './index.messages'; + type Props = { children?: React.Node, isLoading?: boolean, @@ -81,7 +84,7 @@ const Content = ({ {loader.type === 'progress' && } - {loader.title || 'Initializing accounts'} + {loader.title || <FormattedMessage {...l10nMessages.TR_INITIALIZING_ACCOUNTS} />} {loader.message && {loader.message}} diff --git a/src/views/Wallet/components/Content/index.messages.js b/src/views/Wallet/components/Content/index.messages.js new file mode 100644 index 00000000..cc0691a9 --- /dev/null +++ b/src/views/Wallet/components/Content/index.messages.js @@ -0,0 +1,12 @@ +/* @flow */ +import { defineMessages } from 'react-intl'; +import type { Messages } from 'flowtype/npm/react-intl'; + +const definedMessages: Messages = defineMessages({ + TR_INITIALIZING_ACCOUNTS: { + id: 'TR_INITIALIZING_ACCOUNTS', + defaultMessage: 'Initializing accounts', + }, +}); + +export default definedMessages; \ No newline at end of file diff --git a/src/views/Wallet/components/LeftNavigation/components/AccountMenu/index.js b/src/views/Wallet/components/LeftNavigation/components/AccountMenu/index.js index a89f980a..8175b961 100644 --- a/src/views/Wallet/components/LeftNavigation/components/AccountMenu/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/AccountMenu/index.js @@ -8,6 +8,7 @@ import styled, { css } from 'styled-components'; import * as stateUtils from 'reducers/utils'; import Tooltip from 'components/Tooltip'; import ICONS from 'config/icons'; +import { FormattedMessage } from 'react-intl'; import { NavLink } from 'react-router-dom'; import { findDeviceAccounts } from 'reducers/AccountsReducer'; @@ -19,6 +20,8 @@ import type { Accounts } from 'flowtype'; import type { Props } from '../common'; import Row from '../Row'; import RowCoin from '../RowCoin'; +import l10nMessages from './index.messages'; + const Wrapper = styled.div``; @@ -105,7 +108,7 @@ const AccountMenu = (props: Props) => { // const url: string = `${baseUrl}/network/${location.state.network}/account/${i}`; const url: string = location.pathname.replace(/account+\/([0-9]*)/, `account/${i}`); - let balance: string = 'Loading...'; + let balance: ?string = null; if (account.balance !== '') { const pending = stateUtils.getAccountPendingTx(props.pending, account); const pendingAmount: BigNumber = stateUtils.getPendingAmount(pending, network.symbol); @@ -130,9 +133,9 @@ const AccountMenu = (props: Props) => { isSelected={urlAccountIndex === account.index} borderTop={account.index === 0} > - Account #{account.index + 1} + {balance && {balance}} - {!balance && Loading...} + {!balance && } @@ -148,7 +151,7 @@ const AccountMenu = (props: Props) => { discoveryStatus = ( } placement="bottom" > @@ -160,7 +163,7 @@ const AccountMenu = (props: Props) => { color={colors.TEXT_SECONDARY} /> - Add account + @@ -176,7 +179,7 @@ const AccountMenu = (props: Props) => { color={colors.TEXT_SECONDARY} /> - Add account + ); @@ -184,7 +187,7 @@ const AccountMenu = (props: Props) => { discoveryStatus = ( } placement="bottom" > @@ -196,7 +199,7 @@ const AccountMenu = (props: Props) => { color={colors.TEXT_SECONDARY} /> - Add account + @@ -208,7 +211,7 @@ const AccountMenu = (props: Props) => { - Loading... + diff --git a/src/views/Wallet/components/LeftNavigation/components/AccountMenu/index.messages.js b/src/views/Wallet/components/LeftNavigation/components/AccountMenu/index.messages.js new file mode 100644 index 00000000..e3b4ddb9 --- /dev/null +++ b/src/views/Wallet/components/LeftNavigation/components/AccountMenu/index.messages.js @@ -0,0 +1,29 @@ +/* @flow */ +import { defineMessages } from 'react-intl'; +import type { Messages } from 'flowtype/npm/react-intl'; + +const definedMessages: Messages = defineMessages({ + TR_ACCOUNT_HASH: { + id: 'TR_ACCOUNT_HASH', + defaultMessage: 'Account #{number}', + description: 'Used in auto-generated account label', + }, + TR_LOADING_DOT_DOT_DOT: { + id: 'TR_LOADING_DOT_DOT_DOT', + defaultMessage: 'Loading...', + }, + TR_TO_ADD_A_NEW_ACCOUNT_LAST: { + id: 'TR_TO_ADD_A_NEW_ACCOUNT_LAST', + defaultMessage: 'To add a new account, last account must have some transactions.', + }, + TR_TO_ADD_ACCOUNTS: { + id: 'TR_TO_ADD_ACCOUNTS', + defaultMessage: 'To add accounts, make sure your device is connected.', + }, + TR_ADD_ACCOUNT: { + id: 'TR_ADD_ACCOUNT', + defaultMessage: 'Add account', + }, +}); + +export default definedMessages; \ No newline at end of file diff --git a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js index 194932e7..dbfbad14 100644 --- a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js @@ -8,9 +8,12 @@ import PropTypes from 'prop-types'; import React, { PureComponent } from 'react'; import { NavLink } from 'react-router-dom'; import Link from 'components/Link'; +import { FormattedMessage } from 'react-intl'; import Divider from '../Divider'; import RowCoin from '../RowCoin'; +import l10nMessages from './index.messages'; + import type { Props } from '../common'; const Wrapper = styled.div``; @@ -73,8 +76,8 @@ class CoinMenu extends PureComponent { ))} } + textRight={} hasBorder /> {this.getOtherCoins()} diff --git a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.messages.js b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.messages.js new file mode 100644 index 00000000..e0a09530 --- /dev/null +++ b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.messages.js @@ -0,0 +1,16 @@ +/* @flow */ +import { defineMessages } from 'react-intl'; +import type { Messages } from 'flowtype/npm/react-intl'; + +const definedMessages: Messages = defineMessages({ + TR_OTHER_COINS: { + id: 'TR_OTHER_COINS', + defaultMessage: 'Other coins', + }, + TR_YOU_WILL_BE_REDIRECTED: { + id: 'TR_YOU_WILL_BE_REDIRECTED', + defaultMessage: '(You will be redirected)', + }, +}); + +export default definedMessages; \ No newline at end of file diff --git a/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/components/MenuItems/index.js b/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/components/MenuItems/index.js index b3f42a41..40ca2989 100644 --- a/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/components/MenuItems/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/components/MenuItems/index.js @@ -3,11 +3,15 @@ import styled from 'styled-components'; import PropTypes from 'prop-types'; import Icon from 'components/Icon'; import DeviceIcon from 'components/images/DeviceIcon'; +import { FormattedMessage } from 'react-intl'; import icons from 'config/icons'; import colors from 'config/colors'; import { FONT_SIZE } from 'config/variables'; +// import l10nCommonMessages from 'views/common.messages'; +import l10nMessages from './index.messages'; + const Wrapper = styled.div` background: ${colors.WHITE}; `; @@ -58,7 +62,7 @@ class MenuItems extends PureComponent { size={25} color={colors.TEXT_SECONDARY} /> - + */} {this.showClone() && ( this.props.duplicateDevice(device)}> @@ -67,7 +71,7 @@ class MenuItems extends PureComponent { size={25} color={colors.TEXT_SECONDARY} /> - + )} {this.showRenewSession() && ( @@ -75,7 +79,7 @@ class MenuItems extends PureComponent { onClick={() => this.props.acquireDevice()} > - + )} this.props.forgetDevice(device)}> @@ -84,7 +88,7 @@ class MenuItems extends PureComponent { size={25} color={colors.TEXT_SECONDARY} /> - +
); diff --git a/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/components/MenuItems/index.messages.js b/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/components/MenuItems/index.messages.js new file mode 100644 index 00000000..cb2a4df5 --- /dev/null +++ b/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/components/MenuItems/index.messages.js @@ -0,0 +1,21 @@ +/* @flow */ +import { defineMessages } from 'react-intl'; +import type { Messages } from 'flowtype/npm/react-intl'; + +const definedMessages: Messages = defineMessages({ + TR_CHANGE_WALLET_TYPE: { + id: 'TR_CHANGE_WALLET_TYPE', + defaultMessage: 'Change wallet type', + }, + TR_RENEW_SESSION: { + id: 'TR_RENEW_SESSION', + defaultMessage: 'Renew session', + description: 'TODO', + }, + TR_FORGET_DEVICE: { + id: 'TR_FORGET_DEVICE', + defaultMessage: 'Forget device', + }, +}); + +export default definedMessages; \ No newline at end of file diff --git a/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/index.js b/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/index.js index 0d0b4cc5..29c027ea 100644 --- a/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/index.js @@ -2,6 +2,7 @@ import React, { PureComponent } from 'react'; import styled from 'styled-components'; import TrezorConnect from 'trezor-connect'; +import { FormattedMessage } from 'react-intl'; import COLORS from 'config/colors'; import { FONT_SIZE, FONT_WEIGHT } from 'config/variables'; @@ -9,6 +10,7 @@ import { SLIDE_DOWN } from 'config/animations'; import Button from 'components/Button'; import * as deviceUtils from 'utils/device'; +import l10nCommonMessages from 'views/common.messages'; import MenuItems from './components/MenuItems'; import DeviceList from './components/DeviceList'; @@ -124,7 +126,9 @@ class DeviceMenu extends PureComponent { /> {deviceUtils.isWebUSB(transport) && ( - Check for devices + + + )}
diff --git a/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/index.messages.js b/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/index.messages.js new file mode 100644 index 00000000..7f59eeb4 --- /dev/null +++ b/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/index.messages.js @@ -0,0 +1,9 @@ +/* @flow */ +import { defineMessages } from 'react-intl'; +import type { Messages } from 'flowtype/npm/react-intl'; + +const definedMessages: Messages = defineMessages({ + +}); + +export default definedMessages; \ No newline at end of file diff --git a/src/views/Wallet/components/LeftNavigation/components/Divider/index.js b/src/views/Wallet/components/LeftNavigation/components/Divider/index.js index b848e4bd..4eba6caa 100644 --- a/src/views/Wallet/components/LeftNavigation/components/Divider/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/Divider/index.js @@ -37,8 +37,8 @@ const Divider = ({ Divider.propTypes = { className: PropTypes.string, - textLeft: PropTypes.string, - textRight: PropTypes.string, + textLeft: PropTypes.node, + textRight: PropTypes.node, hasBorder: PropTypes.bool, testId: PropTypes.string, }; diff --git a/src/views/Wallet/components/LeftNavigation/index.js b/src/views/Wallet/components/LeftNavigation/index.js index 459e1055..30e85b35 100644 --- a/src/views/Wallet/components/LeftNavigation/index.js +++ b/src/views/Wallet/components/LeftNavigation/index.js @@ -13,12 +13,14 @@ import DeviceHeader from 'components/DeviceHeader'; import * as deviceUtils from 'utils/device'; import Tooltip from 'components/Tooltip'; +import { FormattedMessage } from 'react-intl'; import AccountMenu from './components/AccountMenu'; import CoinMenu from './components/CoinMenu'; import DeviceMenu from './components/DeviceMenu'; import Sidebar from './components/Sidebar'; import type { Props } from './components/common'; +import l10nMessages from './index.messages'; const Header = styled(DeviceHeader)` border-right: 1px solid ${colors.BACKGROUND}; @@ -115,6 +117,26 @@ const TransitionMenu = (props: TransitionMenuProps): React$Element ); +const WalletTooltipMsg = ({ walletType, isDeviceReady }: { walletType: string, isDeviceReady: ?boolean}): any => { + let secondPart = ''; + if (isDeviceReady) { + secondPart = walletType === 'standard' + ? + : ; + } else { + secondPart = ; + } + return ( + <> + {walletType === 'standard' + ? + : } + {' '}{secondPart} + + ); +}; + + type State = { animationType: ?string; clicked: boolean; @@ -211,14 +233,6 @@ class LeftNavigation extends React.PureComponent { const showWalletType = selectedDevice && selectedDevice.features && selectedDevice.features.passphrase_protection; const isDeviceReady = selectedDevice && selectedDevice.connected && selectedDevice.available; - let walletTooltipMsg = `You are in your ${walletType} wallet.`; - if (isDeviceReady) { - walletTooltipMsg = walletType === 'standard' - ? `${walletTooltipMsg} Click here to access your hidden wallet.` - : `${walletTooltipMsg} Click here to access your standard or another hidden wallet`; - } else { - walletTooltipMsg = `${walletTooltipMsg} To access other wallets please connect your device.`; - } return ( @@ -238,7 +252,7 @@ class LeftNavigation extends React.PureComponent { {showWalletType && ( } maxWidth={200} placement="bottom" enterDelayMs={0.5} @@ -262,7 +276,7 @@ class LeftNavigation extends React.PureComponent { } {this.props.devices.length > 1 && ( } maxWidth={200} placement="bottom" enterDelayMs={0.5} @@ -292,7 +306,7 @@ class LeftNavigation extends React.PureComponent { target="_blank" rel="noreferrer noopener" > - Need help? + diff --git a/src/views/Wallet/components/LeftNavigation/index.messages.js b/src/views/Wallet/components/LeftNavigation/index.messages.js new file mode 100644 index 00000000..f613fc8a --- /dev/null +++ b/src/views/Wallet/components/LeftNavigation/index.messages.js @@ -0,0 +1,36 @@ +/* @flow */ +import { defineMessages } from 'react-intl'; +import type { Messages } from 'flowtype/npm/react-intl'; + +const definedMessages: Messages = defineMessages({ + TR_YOU_ARE_IN_YOUR_STANDARD_WALLET: { + id: 'TR_YOU_ARE_IN_YOUR_STANDARD_WALLET', + defaultMessage: 'You are in your standard wallet.', + }, + TR_YOU_ARE_IN_YOUR_HIDDEN_WALLET: { + id: 'TR_YOU_ARE_IN_YOUR_WALLET', + defaultMessage: 'You are in your hidden wallet.', + }, + TR_CLICK_HERE_TO_ACCESS_YOUR_HIDDEN: { + id: 'TR_CLICK_HERE_TO_ACCESS_YOUR_HIDDEN', + defaultMessage: 'Click here to access your hidden wallet.', + }, + TR_CLICK_HERE_TO_ACCESS_YOUR_STANDARD: { + id: 'TR_CLICK_HERE_TO_ACCESS_YOUR_STANDARD', + defaultMessage: 'Click here to access your standard or another hidden wallet.', + }, + TR_TO_ACCESS_OTHER_WALLETS: { + id: 'TR_TO_ACCESS_OTHER_WALLETS', + defaultMessage: 'To access other wallets please connect your device.', + }, + TR_NEED_HELP: { + id: 'TR_NEED_HELP', + defaultMessage: 'Need help?', + }, + TR_NUMBER_OF_DEVICES: { + id: 'TR_NUMBER_OF_DEVICES', + defaultMessage: 'Number of devices', + }, +}); + +export default definedMessages; \ No newline at end of file diff --git a/src/views/Wallet/components/Title/index.js b/src/views/Wallet/components/Title/index.js index edc7b1f4..e72bf32a 100644 --- a/src/views/Wallet/components/Title/index.js +++ b/src/views/Wallet/components/Title/index.js @@ -20,7 +20,7 @@ const Title = ({ ); Title.propTypes = { - children: PropTypes.string, + children: PropTypes.node, }; export default Title; diff --git a/src/views/Wallet/components/TopNavigationAccount/index.js b/src/views/Wallet/components/TopNavigationAccount/index.js index 94977803..15fd708a 100644 --- a/src/views/Wallet/components/TopNavigationAccount/index.js +++ b/src/views/Wallet/components/TopNavigationAccount/index.js @@ -7,7 +7,9 @@ import { NavLink } from 'react-router-dom'; import { connect } from 'react-redux'; import colors from 'config/colors'; import type { State } from 'flowtype'; +import { FormattedMessage } from 'react-intl'; +import l10nMessages from './index.messages'; import Indicator from './components/Indicator'; type Props = { @@ -83,11 +85,11 @@ class TopNavigationAccount extends React.PureComponent { return ( - Summary - Receive - Send + + + {network.type === 'ethereum' - && Sign & Verify + && } this.wrapper} /> diff --git a/src/views/Wallet/components/TopNavigationAccount/index.messages.js b/src/views/Wallet/components/TopNavigationAccount/index.messages.js new file mode 100644 index 00000000..ed851523 --- /dev/null +++ b/src/views/Wallet/components/TopNavigationAccount/index.messages.js @@ -0,0 +1,24 @@ +/* @flow */ +import { defineMessages } from 'react-intl'; +import type { Messages } from 'flowtype/npm/react-intl'; + +const definedMessages: Messages = defineMessages({ + TR_SUMMARY: { + id: 'TR_SUMMARY', + defaultMessage: 'Summary', + }, + TR_RECEIVE: { + id: 'TR_RECEIVE', + defaultMessage: 'Receive', + }, + TR_SEND: { + id: 'TR_SEND', + defaultMessage: 'Send', + }, + TR_SIGN_AND_VERIFY: { + id: 'TR_SIGN_AND_VERIFY', + defaultMessage: 'Sign & Verify', + }, +}); + +export default definedMessages; \ No newline at end of file diff --git a/src/views/Wallet/components/TopNavigationDeviceSettings/index.js b/src/views/Wallet/components/TopNavigationDeviceSettings/index.js index d721c6f3..cb37524e 100644 --- a/src/views/Wallet/components/TopNavigationDeviceSettings/index.js +++ b/src/views/Wallet/components/TopNavigationDeviceSettings/index.js @@ -1,11 +1,13 @@ import styled from 'styled-components'; import React from 'react'; +import { FormattedMessage } from 'react-intl'; +import l10nCommonMessages from 'views/common.messages'; const Wrapper = styled.div``; const AccountTabs = () => ( - Device settings + ); diff --git a/src/views/Wallet/views/Account/Receive/common.messages.js b/src/views/Wallet/views/Account/Receive/common.messages.js new file mode 100644 index 00000000..c941ade3 --- /dev/null +++ b/src/views/Wallet/views/Account/Receive/common.messages.js @@ -0,0 +1,20 @@ +/* @flow */ +import { defineMessages } from 'react-intl'; +import type { Messages } from 'flowtype/npm/react-intl'; + +const definedMessages: Messages = defineMessages({ + TR_CHECK_ADDRESS_ON_TREZOR: { + id: 'TR_CHECK_ADDRESS_ON_TREZOR', + defaultMessage: 'Check address on Trezor', + }, + TR_SHOW_FULL_ADDRESS: { + id: 'TR_SHOW_FULL_ADDRESS', + defaultMessage: 'Show full address', + }, + TR_QR_CODE: { + id: 'TR_QR_CODE', + defaultMessage: 'QR Code', + }, +}); + +export default definedMessages; \ No newline at end of file diff --git a/src/views/Wallet/views/Account/Receive/components/VerifyAddressTooltip/index.js b/src/views/Wallet/views/Account/Receive/components/VerifyAddressTooltip/index.js index b1db5630..08ccbb56 100644 --- a/src/views/Wallet/views/Account/Receive/components/VerifyAddressTooltip/index.js +++ b/src/views/Wallet/views/Account/Receive/components/VerifyAddressTooltip/index.js @@ -1,6 +1,9 @@ import React from 'react'; import styled from 'styled-components'; import PropTypes from 'prop-types'; +import { FormattedMessage } from 'react-intl'; +import l10nMessages from './index.messages'; + const Wrapper = styled.div``; const Content = styled.div``; @@ -9,12 +12,16 @@ const VerifyAddressTooltip = ({ isConnected, isAvailable, addressUnverified }) = {addressUnverified && ( - Unverified address. {isConnected && isAvailable ? 'Show on Trezor' : 'Connect your Trezor to verify it.'} + {isConnected && isAvailable + ? + : } )} {!addressUnverified && ( - {isConnected ? 'Show on Trezor' : 'Connect your Trezor to verify address.'} + {isConnected + ? + : } )} diff --git a/src/views/Wallet/views/Account/Receive/components/VerifyAddressTooltip/index.messages.js b/src/views/Wallet/views/Account/Receive/components/VerifyAddressTooltip/index.messages.js new file mode 100644 index 00000000..628ce4cc --- /dev/null +++ b/src/views/Wallet/views/Account/Receive/components/VerifyAddressTooltip/index.messages.js @@ -0,0 +1,24 @@ +/* @flow */ +import { defineMessages } from 'react-intl'; +import type { Messages } from 'flowtype/npm/react-intl'; + +const definedMessages: Messages = defineMessages({ + TR_UNVERIFIED_ADDRESS_COMMA_CONNECT: { + id: 'TR_UNVERIFIED_ADDRESS_COMMA_CONNECT', + defaultMessage: 'Unverified address, connect your Trezor to verify it', + }, + TR_UNVERIFIED_ADDRESS_COMMA_SHOW: { + id: 'TR_UNVERIFIED_ADDRESS_COMMA_SHOW', + defaultMessage: 'Unverified address, show on Trezor.', + }, + TR_SHOW_ON_TREZOR: { + id: 'TR_SHOW_ON_TREZOR', + defaultMessage: 'Show on Trezor', + }, + TR_CONNECT_YOUR_TREZOR_TO_CHECK: { + id: 'TR_CONNECT_YOUR_TREZOR_TO_CHECK', + defaultMessage: 'Connect your Trezor to verify this address', + }, +}); + +export default definedMessages; \ No newline at end of file diff --git a/src/views/Wallet/views/Account/Receive/ethereum/index.js b/src/views/Wallet/views/Account/Receive/ethereum/index.js index f700b1a9..c727a8e5 100644 --- a/src/views/Wallet/views/Account/Receive/ethereum/index.js +++ b/src/views/Wallet/views/Account/Receive/ethereum/index.js @@ -2,6 +2,7 @@ import React from 'react'; import { QRCode } from 'react-qr-svg'; import styled from 'styled-components'; +import { FormattedMessage } from 'react-intl'; import Title from 'views/Wallet/components/Title'; import Button from 'components/Button'; @@ -17,6 +18,9 @@ import { CONTEXT_DEVICE } from 'actions/constants/modal'; import Content from 'views/Wallet/components/Content'; import VerifyAddressTooltip from '../components/VerifyAddressTooltip'; +import l10nMessages from './index.messages'; +import l10nCommonMessages from '../common.messages'; + import type { Props } from './Container'; const Label = styled.div` @@ -120,7 +124,7 @@ const AccountReceive = (props: Props) => { return ( - Receive Ethereum or tokens + <FormattedMessage {...l10nMessages.TR_RECEIVE_ETHEREUM_OR_TOKENS} /> { trezorAction={isAddressVerifying ? ( - Check address on your Trezor + ) : null} icon={((addressVerified || addressUnverified) && !isAddressVerifying) && ( @@ -158,13 +162,13 @@ const AccountReceive = (props: Props) => { /> {!(addressVerified || addressUnverified) && ( props.showAddress(account.accountPath)} isDisabled={device.connected && !discovery.completed}> - Show full address + )} {(addressVerified || addressUnverified) && !isAddressVerifying && ( - + { return ( - Receive Ripple + <FormattedMessage {...l10nMessages.TR_RECEIVE_RIPPLE} /> { trezorAction={isAddressVerifying ? ( - Check address on your Trezor + ) : null} icon={((addressVerified || addressUnverified) && !isAddressVerifying) && ( @@ -158,13 +162,13 @@ const AccountReceive = (props: Props) => { /> {!(addressVerified || addressUnverified) && ( props.showAddress(account.accountPath)} isDisabled={device.connected && !discovery.completed}> - Show full address + )} {(addressVerified || addressUnverified) && !isAddressVerifying && ( - + { topLabel={( - Gas limit + - Gas limit refers to the maximum amount of gas user is willing to spendon a particular transaction.{' '} - Transaction fee = gas limit * gas price.{' '}Increasing the gas limit will not get the transaction confirmed sooner. - Default value for sending {gasLimitTooltipCurrency} is {gasLimitTooltipValue}. - + , + gasLimitTooltipValue: {gasLimitTooltipValue}, + gasLimitTooltipCurrency, + }} + /> )} maxWidth={410} readMoreLink="https://wiki.trezor.io/Ethereum_Wallet#Gas_limit" @@ -199,14 +205,14 @@ const AdvancedForm = (props: Props) => { { showDefaultGasLimitButton && ( - Set default + ) } )} bottomText={errors.gasLimit || warnings.gasLimit || infos.gasLimit} - value={calculatingGasLimit ? 'Calculating...' : gasLimit} + value={calculatingGasLimit ? 'Calculating...' : gasLimit} // TODO: figure out translations in inputs isDisabled={networkSymbol === currency && data.length > 0} onChange={event => onGasLimitChange(event.target.value)} /> @@ -220,14 +226,17 @@ const AdvancedForm = (props: Props) => { topLabel={( - Gas price + - Gas price refers to the amount of ether you are willing to pay for every - unit of gas, and is usually measured in “Gwei”. Transaction fee = gas limit * gas price. Increasing the gas price will get the transaction confirmed sooner but - makes it more expensive. The recommended gas price is {recommendedGasPrice} GWEI. - + , + recommendedGasPrice: {recommendedGasPrice}, + }} + + /> )} maxWidth={400} readMoreLink="https://wiki.trezor.io/Ethereum_Wallet#Gas_price" @@ -252,13 +261,9 @@ const AdvancedForm = (props: Props) => { topLabel={( - Data + - Data is usually used when you send transactions to contracts. - - )} + content={} placement="top" > { return ( - Send Ethereum or tokens + <FormattedMessage {...l10nMessages.TR_SEND_ETHEREUM_OR_TOKENS} /> { spellCheck="false" topLabel={( - Amount + {(isCurrentCurrencyToken && selectedToken) && ( - You have: {selectedTokenBalance} {selectedToken.symbol} + + + )} )} @@ -360,7 +369,7 @@ const AccountSend = (props: Props) => { color={colors.WHITE} /> )} - Set max + ), ( @@ -388,7 +397,7 @@ const AccountSend = (props: Props) => { color={colors.WARNING_PRIMARY} size={20} /> - Recommended fees updated. Click here to use them + )} @@ -414,7 +423,7 @@ const AccountSend = (props: Props) => { isTransparent onClick={toggleAdvanced} > - Advanced settings + { isWhite onClick={() => onClear()} > - Clear + { isWhite onClick={() => onClear()} > - Clear + { topLabel={( - Fee + - Transfer cost in XRP drops - - )} + content={} maxWidth={100} readMoreLink="https://developers.ripple.com/transaction-cost.html" placement="top" @@ -161,13 +160,9 @@ const AdvancedForm = (props: Props) => { topLabel={( - Destination tag + - An arbitrary unsigned 32-bit integer that identifies a reason for payment or a non-Ripple account. - - )} + content={} maxWidth={200} readMoreLink="https://developers.ripple.com/rippleapi-reference.html#payment" placement="top" diff --git a/src/views/Wallet/views/Account/Send/ripple/components/AdvancedForm/index.messages.js b/src/views/Wallet/views/Account/Send/ripple/components/AdvancedForm/index.messages.js new file mode 100644 index 00000000..240aed2f --- /dev/null +++ b/src/views/Wallet/views/Account/Send/ripple/components/AdvancedForm/index.messages.js @@ -0,0 +1,20 @@ +/* @flow */ +import { defineMessages } from 'react-intl'; +import type { Messages } from 'flowtype/npm/react-intl'; + +const definedMessages: Messages = defineMessages({ + TR_XRP_TRANSFER_COST: { + id: 'TR_XRP_TRANSFER_COST', + defaultMessage: 'Transfer cost in XRP drops', + }, + TR_XRP_DESTINATION_TAG: { + id: 'TR_XRP_DESTINATION_TAG', + defaultMessage: 'Destination tag', + }, + TR_XRP_DESTINATION_TAG_EXPLAINED: { + id: 'TR_XRP_DESTINATION_TAG_EXPLAINED', + defaultMessage: 'Number that identifies a reason for payment or a non-Ripple account.', + }, +}); + +export default definedMessages; \ No newline at end of file diff --git a/src/views/Wallet/views/Account/Send/ripple/index.js b/src/views/Wallet/views/Account/Send/ripple/index.js index 096a63ef..ec1fa56f 100644 --- a/src/views/Wallet/views/Account/Send/ripple/index.js +++ b/src/views/Wallet/views/Account/Send/ripple/index.js @@ -3,6 +3,7 @@ import React from 'react'; import styled, { css } from 'styled-components'; import { Select } from 'components/Select'; +import { FormattedMessage } from 'react-intl'; import Button from 'components/Button'; import Input from 'components/inputs/Input'; import Icon from 'components/Icon'; @@ -12,10 +13,14 @@ import { FONT_SIZE, FONT_WEIGHT, TRANSITION } from 'config/variables'; import colors from 'config/colors'; import Title from 'views/Wallet/components/Title'; import P from 'components/Paragraph'; +import l10nCommonMessages from 'views/common.messages'; import Content from 'views/Wallet/components/Content'; import PendingTransactions from '../components/PendingTransactions'; import AdvancedForm from './components/AdvancedForm'; +import l10nMessages from './index.messages'; +import l10nSendMessages from '../common.messages'; + import type { Props } from './Container'; // TODO: Decide on a small screen width for the whole app @@ -268,7 +273,7 @@ const AccountSend = (props: Props) => { return ( - Send Ripple + <FormattedMessage {...l10nMessages.TR_SEND_RIPPLE} /> { spellCheck="false" topLabel={( - Amount + {accountReserve && ( - Reserve: {accountReserve} {network.symbol} + + + )} )} @@ -334,7 +344,7 @@ const AccountSend = (props: Props) => { color={colors.WHITE} /> )} - Set max + ), ( @@ -353,7 +363,7 @@ const AccountSend = (props: Props) => { - Fee + {feeNeedsUpdate && ( { color={colors.WARNING_PRIMARY} size={20} /> - Recommended fees updated. Click here to use them + )} @@ -387,7 +397,7 @@ const AccountSend = (props: Props) => { isTransparent onClick={toggleAdvanced} > - Advanced settings + { isWhite onClick={() => onClear()} > - Clear + { isWhite onClick={() => onClear()} > - Clear +