From 7e18f22306719dcfe0545b051161ccce1d0d8972 Mon Sep 17 00:00:00 2001 From: Danilo Prates Date: Wed, 7 Aug 2019 11:15:05 -0300 Subject: [PATCH 1/4] DDW-811 Remove the new wallet creation process from the create button --- .../components/wallet/WalletCreateDialog.js | 289 ++++++++++++++++++ .../components/wallet/WalletCreateDialog.scss | 1 + .../app/containers/wallet/WalletAddPage.js | 23 +- .../dialogs/WalletCreateDialogContainerOld.js | 32 ++ source/renderer/app/i18n/locales/en-US.json | 10 +- source/renderer/app/stores/WalletsStore.js | 7 + 6 files changed, 358 insertions(+), 4 deletions(-) create mode 100644 source/renderer/app/components/wallet/WalletCreateDialog.js create mode 100644 source/renderer/app/containers/wallet/dialogs/WalletCreateDialogContainerOld.js diff --git a/source/renderer/app/components/wallet/WalletCreateDialog.js b/source/renderer/app/components/wallet/WalletCreateDialog.js new file mode 100644 index 0000000000..7eb20ac3e7 --- /dev/null +++ b/source/renderer/app/components/wallet/WalletCreateDialog.js @@ -0,0 +1,289 @@ +// @flow +// TODO: Remove once the new wallet creation process is ready +import React, { Component } from 'react'; +import { observer } from 'mobx-react'; +import classnames from 'classnames'; +import { Checkbox } from 'react-polymorph/lib/components/Checkbox'; +import { Input } from 'react-polymorph/lib/components/Input'; +import { SwitchSkin } from 'react-polymorph/lib/skins/simple/SwitchSkin'; +import { InputSkin } from 'react-polymorph/lib/skins/simple/InputSkin'; +import { IDENTIFIERS } from 'react-polymorph/lib/themes/API'; +import { defineMessages, intlShape } from 'react-intl'; +import ReactToolboxMobxForm, { + handleFormErrors, +} from '../../utils/ReactToolboxMobxForm'; +import DialogCloseButton from '../widgets/DialogCloseButton'; +import Dialog from '../widgets/Dialog'; +import { + isValidWalletName, + isValidSpendingPassword, + isValidRepeatPassword, +} from '../../utils/validations'; +import globalMessages from '../../i18n/global-messages'; +import styles from './WalletCreateDialog.scss'; +import { FORM_VALIDATION_DEBOUNCE_WAIT } from '../../config/timingConfig'; +import { submitOnEnter } from '../../utils/form'; + +const messages = defineMessages({ + dialogTitle: { + id: 'wallet.create.dialog.title', + defaultMessage: '!!!Create a new wallet', + description: 'Title "Create a new wallet" in the wallet create form.', + }, + walletName: { + id: 'wallet.create.dialog.name.label', + defaultMessage: '!!!Wallet Name', + description: + 'Label for the "Wallet Name" text input in the wallet create form.', + }, + walletNameHint: { + id: 'wallet.create.dialog.walletNameHint', + defaultMessage: '!!!e.g: Shopping Wallet', + description: + 'Hint for the "Wallet Name" text input in the wallet create form.', + }, + createPersonalWallet: { + id: 'wallet.create.dialog.create.personal.wallet.button.label', + defaultMessage: '!!!Create personal wallet', + description: + 'Label for the "Create personal wallet" button on create wallet dialog.', + }, + passwordSwitchPlaceholder: { + id: 'wallet.create.dialog.passwordSwitchPlaceholder', + defaultMessage: + '!!!Keep your private keys safely encrypted by setting the spending password', + description: + 'Text for the "Activate to create password" switch in the create wallet dialog.', + }, + passwordSwitchLabel: { + id: 'wallet.create.dialog.passwordSwitchLabel', + defaultMessage: '!!!Spending password', + description: + 'Label for the "Activate to create password" switch in the create wallet dialog.', + }, + spendingPasswordLabel: { + id: 'wallet.create.dialog.spendingPasswordLabel', + defaultMessage: '!!!Enter password', + description: + 'Label for the "Wallet password" input in the create wallet dialog.', + }, + repeatPasswordLabel: { + id: 'wallet.create.dialog.repeatPasswordLabel', + defaultMessage: '!!!Repeat password', + description: + 'Label for the "Repeat password" input in the create wallet dialog.', + }, + passwordFieldPlaceholder: { + id: 'wallet.create.dialog.passwordFieldPlaceholder', + defaultMessage: '!!!Password', + description: + 'Placeholder for the "Password" inputs in the create wallet dialog.', + }, +}); + +type Props = { + onSubmit: Function, + onCancel: Function, +}; + +type State = { + isSubmitting: boolean, + createPassword: boolean, +}; + +@observer +export default class WalletCreateDialog extends Component { + static contextTypes = { + intl: intlShape.isRequired, + }; + + state = { + isSubmitting: false, + createPassword: true, + }; + + componentDidMount() { + setTimeout(() => { + this.walletNameInput.focus(); + }); + } + + walletNameInput: Input; + + form = new ReactToolboxMobxForm( + { + fields: { + walletName: { + label: this.context.intl.formatMessage(messages.walletName), + placeholder: this.context.intl.formatMessage(messages.walletNameHint), + value: '', + validators: [ + ({ field }) => [ + isValidWalletName(field.value), + this.context.intl.formatMessage(globalMessages.invalidWalletName), + ], + ], + }, + spendingPassword: { + type: 'password', + label: this.context.intl.formatMessage( + messages.spendingPasswordLabel + ), + placeholder: this.context.intl.formatMessage( + messages.passwordFieldPlaceholder + ), + value: '', + validators: [ + ({ field, form }) => { + if (!this.state.createPassword) return [true]; + const repeatPasswordField = form.$('repeatPassword'); + if (repeatPasswordField.value.length > 0) { + repeatPasswordField.validate({ showErrors: true }); + } + return [ + isValidSpendingPassword(field.value), + this.context.intl.formatMessage( + globalMessages.invalidSpendingPassword + ), + ]; + }, + ], + }, + repeatPassword: { + type: 'password', + label: this.context.intl.formatMessage(messages.repeatPasswordLabel), + placeholder: this.context.intl.formatMessage( + messages.passwordFieldPlaceholder + ), + value: '', + validators: [ + ({ field, form }) => { + if (!this.state.createPassword) return [true]; + const spendingPassword = form.$('spendingPassword').value; + if (spendingPassword.length === 0) return [true]; + return [ + isValidRepeatPassword(spendingPassword, field.value), + this.context.intl.formatMessage( + globalMessages.invalidRepeatPassword + ), + ]; + }, + ], + }, + }, + }, + { + options: { + validateOnChange: true, + validationDebounceWait: FORM_VALIDATION_DEBOUNCE_WAIT, + }, + } + ); + + submit = () => { + this.form.submit({ + onSuccess: form => { + this.setState({ isSubmitting: true }); + const { createPassword } = this.state; + const { walletName, spendingPassword } = form.values(); + const walletData = { + name: walletName, + spendingPassword: createPassword ? spendingPassword : null, + }; + this.props.onSubmit(walletData); + }, + onError: () => { + handleFormErrors('.SimpleFormField_error', { focusElement: true }); + this.setState({ isSubmitting: false }); + }, + }); + }; + + handleSubmitOnEnter = submitOnEnter.bind(this, this.submit); + + handlePasswordSwitchToggle = (value: boolean) => { + this.setState({ createPassword: value }); + }; + + render() { + const { form } = this; + const { intl } = this.context; + const { onCancel } = this.props; + const { createPassword, isSubmitting } = this.state; + const dialogClasses = classnames([styles.component, 'WalletCreateDialog']); + const spendingPasswordFieldsClasses = classnames([ + styles.spendingPasswordFields, + createPassword ? styles.show : null, + ]); + + const actions = [ + { + className: isSubmitting ? styles.isSubmitting : null, + label: this.context.intl.formatMessage(messages.createPersonalWallet), + primary: true, + onClick: this.submit, + }, + ]; + + const walletNameField = form.$('walletName'); + const spendingPasswordField = form.$('spendingPassword'); + const repeatedPasswordField = form.$('repeatPassword'); + + return ( + {}} + closeButton={} + > + { + this.walletNameInput = input; + }} + {...walletNameField.bind()} + error={walletNameField.error} + skin={InputSkin} + /> + +
+
+
+ {intl.formatMessage(messages.passwordSwitchLabel)} +
+ +
+ +
+ + +

+ {intl.formatMessage(globalMessages.passwordInstructions)} +

+
+
+
+ ); + } +} diff --git a/source/renderer/app/components/wallet/WalletCreateDialog.scss b/source/renderer/app/components/wallet/WalletCreateDialog.scss index 65433ccc49..5d537df224 100644 --- a/source/renderer/app/components/wallet/WalletCreateDialog.scss +++ b/source/renderer/app/components/wallet/WalletCreateDialog.scss @@ -1,3 +1,4 @@ +// TODO: Remove once the new wallet creation process is ready @import '../../themes/mixins/loading-spinner'; @import '../../themes/mixins/place-form-field-error-below-input'; diff --git a/source/renderer/app/containers/wallet/WalletAddPage.js b/source/renderer/app/containers/wallet/WalletAddPage.js index 19898f2005..5f5dc22b49 100644 --- a/source/renderer/app/containers/wallet/WalletAddPage.js +++ b/source/renderer/app/containers/wallet/WalletAddPage.js @@ -12,6 +12,10 @@ import WalletCreateDialogContainer from './dialogs/WalletCreateDialogContainer'; import Layout from '../MainLayout'; import type { InjectedProps } from '../../types/injectedPropsType'; +// TODO: Remove once the new wallet creation process is ready +import WalletCreateDialogContainerOld from './dialogs/WalletCreateDialogContainerOld'; +import WalletCreateDialog from '../../components/wallet/WalletCreateDialog'; + type Props = InjectedProps; @inject('actions', 'stores') @@ -26,14 +30,27 @@ export default class WalletAddPage extends Component { render() { const { actions, stores } = this.props; const { wallets, uiDialogs, app } = stores; - const { isRestoreActive } = wallets; + const { + isRestoreActive, + createWalletStep, + useNewWalletCreationProcess, + } = wallets; const { environment: { isMainnet, isTestnet }, } = app; + const walletCreationAction = useNewWalletCreationProcess + ? () => actions.wallets.createWalletBegin.trigger() + : // TODO: Remove once the new wallet creation process is ready + () => actions.dialogs.open.trigger({ dialog: WalletCreateDialog }); + let content = null; - if (wallets.createWalletStep !== null) { + // TODO: Remove once the new wallet creation process is ready + if (uiDialogs.isOpen(WalletCreateDialog)) { + content = ; + // ---- + } else if (createWalletStep !== null) { content = ; } else if (uiDialogs.isOpen(WalletBackupDialog)) { content = ; @@ -46,7 +63,7 @@ export default class WalletAddPage extends Component { actions.wallets.createWalletBegin.trigger()} + onCreate={walletCreationAction} onRestore={() => actions.dialogs.open.trigger({ dialog: WalletRestoreDialog }) } diff --git a/source/renderer/app/containers/wallet/dialogs/WalletCreateDialogContainerOld.js b/source/renderer/app/containers/wallet/dialogs/WalletCreateDialogContainerOld.js new file mode 100644 index 0000000000..d7aafc35e1 --- /dev/null +++ b/source/renderer/app/containers/wallet/dialogs/WalletCreateDialogContainerOld.js @@ -0,0 +1,32 @@ +// @flow +// TODO: Remove once the new wallet creation process is ready +import React, { Component } from 'react'; +import { observer, inject } from 'mobx-react'; +import WalletCreateDialog from '../../../components/wallet/WalletCreateDialog'; +import type { InjectedDialogContainerProps } from '../../../types/injectedPropsType'; + +type Props = InjectedDialogContainerProps; + +@inject('stores', 'actions') +@observer +export default class WalletCreateDialogContainer extends Component { + static defaultProps = { + actions: null, + stores: null, + children: null, + onClose: () => {}, + }; + + onSubmit = (values: { name: string, spendingPassword: ?string }) => { + this.props.actions.wallets.createWallet.trigger(values); + }; + + render() { + return ( + + ); + } +} diff --git a/source/renderer/app/i18n/locales/en-US.json b/source/renderer/app/i18n/locales/en-US.json index 3c63357877..926675358d 100644 --- a/source/renderer/app/i18n/locales/en-US.json +++ b/source/renderer/app/i18n/locales/en-US.json @@ -435,6 +435,14 @@ "wallet.backup.recovery.phrase.display.dialog.button.label.iHaveWrittenItDown": "Yes, I have written it down.", "wallet.backup.recovery.phrase.entry.dialog.terms.and.condition.device": "I understand that my wallet and tokens are held securely on this device only and not on any servers.", "wallet.backup.recovery.phrase.entry.dialog.terms.and.condition.recovery": "I understand that if this application is moved to another device or is deleted, my wallet can be only recovered with the backup phrase that I have written down and saved in a secure place", + "wallet.create.dialog.create.personal.wallet.button.label": "Create personal wallet", + "wallet.create.dialog.name.label": "Wallet Name", + "wallet.create.dialog.passwordFieldPlaceholder": "Password", + "wallet.create.dialog.passwordSwitchLabel": "Spending password", + "wallet.create.dialog.passwordSwitchPlaceholder": "Keep your private keys safely encrypted by setting the spending password", + "wallet.create.dialog.repeatPasswordLabel": "Repeat password", + "wallet.create.dialog.spendingPasswordLabel": "Enter password", + "wallet.create.dialog.walletNameHint": "e.g: Shopping Wallet", "wallet.backup.recovery.phrase.entry.dialog.verification.instructions": "Tap each word in the correct order to verify your recovery phrase", "wallet.create.dialog.configStep": "Config", "wallet.create.dialog.hashImageStep": "Hash & Image", @@ -623,4 +631,4 @@ "wallet.transaction.type.exchange": "Exchange", "wallet.transactions.no.transactions": "No transactions", "wallet.transactions.no.transactions.found": "No transactions found" -} \ No newline at end of file +} diff --git a/source/renderer/app/stores/WalletsStore.js b/source/renderer/app/stores/WalletsStore.js index 3badbed99f..ba13af698c 100644 --- a/source/renderer/app/stores/WalletsStore.js +++ b/source/renderer/app/stores/WalletsStore.js @@ -82,6 +82,8 @@ export default class WalletsStore extends Store { @observable additionalMnemonicWords = null; @observable createWalletStep = null; @observable createWalletShowAbortConfirmation = false; + // TODO: Remove once the new wallet creation process is ready + @observable useNewWalletCreationProcess = false; _newWalletDetails: { name: string, @@ -138,6 +140,11 @@ export default class WalletsStore extends Store { } }; + // TODO: Remove once the new wallet creation process is ready + @action _tooggleUseNewWalletCreationProcess = () => { + this.useNewWalletCreationProcess = !this.useNewWalletCreationProcess; + }; + @action _createWalletBegin = () => { this.createWalletStep = 0; this.createWalletShowAbortConfirmation = false; From 9a058ffeef80a379a268ec2a0614f2ebe8d84c79 Mon Sep 17 00:00:00 2001 From: Danilo Prates Date: Wed, 7 Aug 2019 12:08:13 -0300 Subject: [PATCH 2/4] [DDW-811][DDW-792] CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b48528b53b..f19e54e76e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Changelog ### Features +- Implemented the New Wallet Creation process ([PR 1499](https://github.com/input-output-hk/daedalus/pull/1499), [PR 1515](https://github.com/input-output-hk/daedalus/pull/1515)) - Implemented css rules automatic sort ([PR 1483](https://github.com/input-output-hk/daedalus/pull/1483)) - Improved scrollbar look and feel on wallets list ([PR 1475](https://github.com/input-output-hk/daedalus/pull/1475)) - Implemented new delegation countdown design ([PR 1481](https://github.com/input-output-hk/daedalus/pull/1481)) From e9cbf4315d1cd19b40aa3011be5adc5e72a4e59a Mon Sep 17 00:00:00 2001 From: Nikola Glumac Date: Thu, 8 Aug 2019 10:36:51 +0200 Subject: [PATCH 3/4] [DDW-811] Run translation manager --- source/renderer/app/i18n/locales/de-DE.json | 8 ++ .../app/i18n/locales/defaultMessages.json | 131 ++++++++++++++++++ source/renderer/app/i18n/locales/en-US.json | 14 +- source/renderer/app/i18n/locales/hr-HR.json | 8 ++ source/renderer/app/i18n/locales/ja-JP.json | 8 ++ source/renderer/app/i18n/locales/ko-KR.json | 8 ++ source/renderer/app/i18n/locales/zh-CN.json | 8 ++ 7 files changed, 178 insertions(+), 7 deletions(-) diff --git a/source/renderer/app/i18n/locales/de-DE.json b/source/renderer/app/i18n/locales/de-DE.json index eba3385327..9dc517c2c7 100644 --- a/source/renderer/app/i18n/locales/de-DE.json +++ b/source/renderer/app/i18n/locales/de-DE.json @@ -437,13 +437,21 @@ "wallet.backup.recovery.phrase.entry.dialog.terms.and.condition.recovery": "!!!I understand that if this application is moved to another device or deleted, my money can\n be only recovered with the backup phrase which were written down in a secure place", "wallet.backup.recovery.phrase.entry.dialog.verification.instructions": "!!!Tap each word in the correct order to verify your recovery phrase", "wallet.create.dialog.configStep": "!!!Config", + "wallet.create.dialog.create.personal.wallet.button.label": "!!!Create personal wallet", "wallet.create.dialog.hashImageStep": "!!!Hash & Image", "wallet.create.dialog.instructionsStep": "!!!Instructions", "wallet.create.dialog.mnemonicsStep": "!!!Mnemonics", + "wallet.create.dialog.name.label": "!!!Wallet Name", + "wallet.create.dialog.passwordFieldPlaceholder": "!!!Password", + "wallet.create.dialog.passwordSwitchLabel": "!!!Spending password", + "wallet.create.dialog.passwordSwitchPlaceholder": "!!!Keep your private keys safely encrypted by setting the spending password", + "wallet.create.dialog.repeatPasswordLabel": "!!!Repeat password", + "wallet.create.dialog.spendingPasswordLabel": "!!!Enter password", "wallet.create.dialog.stepsCounter": "!!!Step {currentStep} of {totalSteps}", "wallet.create.dialog.templateStep": "!!!Template", "wallet.create.dialog.title": "!!!Create a new wallet", "wallet.create.dialog.validateStep": "!!!Validate", + "wallet.create.dialog.walletNameHint": "!!!e.g: Shopping Wallet", "wallet.file.import.dialog.headline": "!!!Import Wallet", "wallet.file.import.dialog.passwordFieldPlaceholder": "!!!Password", "wallet.file.import.dialog.passwordSwitchLabel": "!!!Password", diff --git a/source/renderer/app/i18n/locales/defaultMessages.json b/source/renderer/app/i18n/locales/defaultMessages.json index 5dfbb50153..1c45bc6b0c 100644 --- a/source/renderer/app/i18n/locales/defaultMessages.json +++ b/source/renderer/app/i18n/locales/defaultMessages.json @@ -7603,6 +7603,137 @@ ], "path": "source/renderer/app/components/wallet/WalletAdd.json" }, + { + "descriptors": [ + { + "defaultMessage": "!!!Create a new wallet", + "description": "Title \"Create a new wallet\" in the wallet create form.", + "end": { + "column": 3, + "line": 32 + }, + "file": "source/renderer/app/components/wallet/WalletCreateDialog.js", + "id": "wallet.create.dialog.title", + "start": { + "column": 15, + "line": 28 + } + }, + { + "defaultMessage": "!!!Wallet Name", + "description": "Label for the \"Wallet Name\" text input in the wallet create form.", + "end": { + "column": 3, + "line": 38 + }, + "file": "source/renderer/app/components/wallet/WalletCreateDialog.js", + "id": "wallet.create.dialog.name.label", + "start": { + "column": 14, + "line": 33 + } + }, + { + "defaultMessage": "!!!e.g: Shopping Wallet", + "description": "Hint for the \"Wallet Name\" text input in the wallet create form.", + "end": { + "column": 3, + "line": 44 + }, + "file": "source/renderer/app/components/wallet/WalletCreateDialog.js", + "id": "wallet.create.dialog.walletNameHint", + "start": { + "column": 18, + "line": 39 + } + }, + { + "defaultMessage": "!!!Create personal wallet", + "description": "Label for the \"Create personal wallet\" button on create wallet dialog.", + "end": { + "column": 3, + "line": 50 + }, + "file": "source/renderer/app/components/wallet/WalletCreateDialog.js", + "id": "wallet.create.dialog.create.personal.wallet.button.label", + "start": { + "column": 24, + "line": 45 + } + }, + { + "defaultMessage": "!!!Keep your private keys safely encrypted by setting the spending password", + "description": "Text for the \"Activate to create password\" switch in the create wallet dialog.", + "end": { + "column": 3, + "line": 57 + }, + "file": "source/renderer/app/components/wallet/WalletCreateDialog.js", + "id": "wallet.create.dialog.passwordSwitchPlaceholder", + "start": { + "column": 29, + "line": 51 + } + }, + { + "defaultMessage": "!!!Spending password", + "description": "Label for the \"Activate to create password\" switch in the create wallet dialog.", + "end": { + "column": 3, + "line": 63 + }, + "file": "source/renderer/app/components/wallet/WalletCreateDialog.js", + "id": "wallet.create.dialog.passwordSwitchLabel", + "start": { + "column": 23, + "line": 58 + } + }, + { + "defaultMessage": "!!!Enter password", + "description": "Label for the \"Wallet password\" input in the create wallet dialog.", + "end": { + "column": 3, + "line": 69 + }, + "file": "source/renderer/app/components/wallet/WalletCreateDialog.js", + "id": "wallet.create.dialog.spendingPasswordLabel", + "start": { + "column": 25, + "line": 64 + } + }, + { + "defaultMessage": "!!!Repeat password", + "description": "Label for the \"Repeat password\" input in the create wallet dialog.", + "end": { + "column": 3, + "line": 75 + }, + "file": "source/renderer/app/components/wallet/WalletCreateDialog.js", + "id": "wallet.create.dialog.repeatPasswordLabel", + "start": { + "column": 23, + "line": 70 + } + }, + { + "defaultMessage": "!!!Password", + "description": "Placeholder for the \"Password\" inputs in the create wallet dialog.", + "end": { + "column": 3, + "line": 81 + }, + "file": "source/renderer/app/components/wallet/WalletCreateDialog.js", + "id": "wallet.create.dialog.passwordFieldPlaceholder", + "start": { + "column": 28, + "line": 76 + } + } + ], + "path": "source/renderer/app/components/wallet/WalletCreateDialog.json" + }, { "descriptors": [ { diff --git a/source/renderer/app/i18n/locales/en-US.json b/source/renderer/app/i18n/locales/en-US.json index 926675358d..53d2b1d8aa 100644 --- a/source/renderer/app/i18n/locales/en-US.json +++ b/source/renderer/app/i18n/locales/en-US.json @@ -435,23 +435,23 @@ "wallet.backup.recovery.phrase.display.dialog.button.label.iHaveWrittenItDown": "Yes, I have written it down.", "wallet.backup.recovery.phrase.entry.dialog.terms.and.condition.device": "I understand that my wallet and tokens are held securely on this device only and not on any servers.", "wallet.backup.recovery.phrase.entry.dialog.terms.and.condition.recovery": "I understand that if this application is moved to another device or is deleted, my wallet can be only recovered with the backup phrase that I have written down and saved in a secure place", + "wallet.backup.recovery.phrase.entry.dialog.verification.instructions": "Tap each word in the correct order to verify your recovery phrase", + "wallet.create.dialog.configStep": "Config", "wallet.create.dialog.create.personal.wallet.button.label": "Create personal wallet", + "wallet.create.dialog.hashImageStep": "Hash & Image", + "wallet.create.dialog.instructionsStep": "Instructions", + "wallet.create.dialog.mnemonicsStep": "Mnemonics", "wallet.create.dialog.name.label": "Wallet Name", "wallet.create.dialog.passwordFieldPlaceholder": "Password", "wallet.create.dialog.passwordSwitchLabel": "Spending password", "wallet.create.dialog.passwordSwitchPlaceholder": "Keep your private keys safely encrypted by setting the spending password", "wallet.create.dialog.repeatPasswordLabel": "Repeat password", "wallet.create.dialog.spendingPasswordLabel": "Enter password", - "wallet.create.dialog.walletNameHint": "e.g: Shopping Wallet", - "wallet.backup.recovery.phrase.entry.dialog.verification.instructions": "Tap each word in the correct order to verify your recovery phrase", - "wallet.create.dialog.configStep": "Config", - "wallet.create.dialog.hashImageStep": "Hash & Image", - "wallet.create.dialog.instructionsStep": "Instructions", - "wallet.create.dialog.mnemonicsStep": "Mnemonics", "wallet.create.dialog.stepsCounter": "Step {currentStep} of {totalSteps}", "wallet.create.dialog.templateStep": "Template", "wallet.create.dialog.title": "Create wallet", "wallet.create.dialog.validateStep": "Validate", + "wallet.create.dialog.walletNameHint": "e.g: Shopping Wallet", "wallet.file.import.dialog.headline": "Import Wallet", "wallet.file.import.dialog.passwordFieldPlaceholder": "Password", "wallet.file.import.dialog.passwordSwitchLabel": "Password", @@ -631,4 +631,4 @@ "wallet.transaction.type.exchange": "Exchange", "wallet.transactions.no.transactions": "No transactions", "wallet.transactions.no.transactions.found": "No transactions found" -} +} \ No newline at end of file diff --git a/source/renderer/app/i18n/locales/hr-HR.json b/source/renderer/app/i18n/locales/hr-HR.json index 917495e7ea..816228bb56 100644 --- a/source/renderer/app/i18n/locales/hr-HR.json +++ b/source/renderer/app/i18n/locales/hr-HR.json @@ -437,13 +437,21 @@ "wallet.backup.recovery.phrase.entry.dialog.terms.and.condition.recovery": "!!!I understand that if this application is moved to another device or deleted, my money can\n be only recovered with the backup phrase which were written down in a secure place", "wallet.backup.recovery.phrase.entry.dialog.verification.instructions": "!!!Tap each word in the correct order to verify your recovery phrase", "wallet.create.dialog.configStep": "!!!Config", + "wallet.create.dialog.create.personal.wallet.button.label": "!!!Create personal wallet", "wallet.create.dialog.hashImageStep": "!!!Hash & Image", "wallet.create.dialog.instructionsStep": "!!!Instructions", "wallet.create.dialog.mnemonicsStep": "!!!Mnemonics", + "wallet.create.dialog.name.label": "!!!Wallet Name", + "wallet.create.dialog.passwordFieldPlaceholder": "!!!Password", + "wallet.create.dialog.passwordSwitchLabel": "!!!Spending password", + "wallet.create.dialog.passwordSwitchPlaceholder": "!!!Keep your private keys safely encrypted by setting the spending password", + "wallet.create.dialog.repeatPasswordLabel": "!!!Repeat password", + "wallet.create.dialog.spendingPasswordLabel": "!!!Enter password", "wallet.create.dialog.stepsCounter": "!!!Step {currentStep} of {totalSteps}", "wallet.create.dialog.templateStep": "!!!Template", "wallet.create.dialog.title": "!!!Create a new wallet", "wallet.create.dialog.validateStep": "!!!Validate", + "wallet.create.dialog.walletNameHint": "!!!e.g: Shopping Wallet", "wallet.file.import.dialog.headline": "!!!Import Wallet", "wallet.file.import.dialog.passwordFieldPlaceholder": "!!!Password", "wallet.file.import.dialog.passwordSwitchLabel": "!!!Password", diff --git a/source/renderer/app/i18n/locales/ja-JP.json b/source/renderer/app/i18n/locales/ja-JP.json index 4040f3aac3..73e8f8e71e 100644 --- a/source/renderer/app/i18n/locales/ja-JP.json +++ b/source/renderer/app/i18n/locales/ja-JP.json @@ -437,13 +437,21 @@ "wallet.backup.recovery.phrase.entry.dialog.terms.and.condition.recovery": "もしこのアプリケーションが別のデバイスに移動、または消去された場合、私の資金は安全な場所に書き留めた復元フレーズでのみ復元出来ることを理解しました。", "wallet.backup.recovery.phrase.entry.dialog.verification.instructions": "正しい順番で復元フレーズを選択してください。", "wallet.create.dialog.configStep": "!!!Config", + "wallet.create.dialog.create.personal.wallet.button.label": "!!!Create personal wallet", "wallet.create.dialog.hashImageStep": "!!!Hash & Image", "wallet.create.dialog.instructionsStep": "!!!Instructions", "wallet.create.dialog.mnemonicsStep": "!!!Mnemonics", + "wallet.create.dialog.name.label": "!!!Wallet Name", + "wallet.create.dialog.passwordFieldPlaceholder": "!!!Password", + "wallet.create.dialog.passwordSwitchLabel": "!!!Spending password", + "wallet.create.dialog.passwordSwitchPlaceholder": "!!!Keep your private keys safely encrypted by setting the spending password", + "wallet.create.dialog.repeatPasswordLabel": "!!!Repeat password", + "wallet.create.dialog.spendingPasswordLabel": "!!!Enter password", "wallet.create.dialog.stepsCounter": "!!!Step {currentStep} of {totalSteps}", "wallet.create.dialog.templateStep": "!!!Template", "wallet.create.dialog.title": "ウォレット新規作成", "wallet.create.dialog.validateStep": "!!!Validate", + "wallet.create.dialog.walletNameHint": "!!!e.g: Shopping Wallet", "wallet.file.import.dialog.headline": "ウォレットをインポート", "wallet.file.import.dialog.passwordFieldPlaceholder": "パスワード", "wallet.file.import.dialog.passwordSwitchLabel": "パスワード", diff --git a/source/renderer/app/i18n/locales/ko-KR.json b/source/renderer/app/i18n/locales/ko-KR.json index 47440a8bb9..a74fdac2a3 100644 --- a/source/renderer/app/i18n/locales/ko-KR.json +++ b/source/renderer/app/i18n/locales/ko-KR.json @@ -437,13 +437,21 @@ "wallet.backup.recovery.phrase.entry.dialog.terms.and.condition.recovery": "!!!I understand that if this application is moved to another device or deleted, my money can\n be only recovered with the backup phrase which were written down in a secure place", "wallet.backup.recovery.phrase.entry.dialog.verification.instructions": "!!!Tap each word in the correct order to verify your recovery phrase", "wallet.create.dialog.configStep": "!!!Config", + "wallet.create.dialog.create.personal.wallet.button.label": "!!!Create personal wallet", "wallet.create.dialog.hashImageStep": "!!!Hash & Image", "wallet.create.dialog.instructionsStep": "!!!Instructions", "wallet.create.dialog.mnemonicsStep": "!!!Mnemonics", + "wallet.create.dialog.name.label": "!!!Wallet Name", + "wallet.create.dialog.passwordFieldPlaceholder": "!!!Password", + "wallet.create.dialog.passwordSwitchLabel": "!!!Spending password", + "wallet.create.dialog.passwordSwitchPlaceholder": "!!!Keep your private keys safely encrypted by setting the spending password", + "wallet.create.dialog.repeatPasswordLabel": "!!!Repeat password", + "wallet.create.dialog.spendingPasswordLabel": "!!!Enter password", "wallet.create.dialog.stepsCounter": "!!!Step {currentStep} of {totalSteps}", "wallet.create.dialog.templateStep": "!!!Template", "wallet.create.dialog.title": "!!!Create a new wallet", "wallet.create.dialog.validateStep": "!!!Validate", + "wallet.create.dialog.walletNameHint": "!!!e.g: Shopping Wallet", "wallet.file.import.dialog.headline": "!!!Import Wallet", "wallet.file.import.dialog.passwordFieldPlaceholder": "!!!Password", "wallet.file.import.dialog.passwordSwitchLabel": "!!!Password", diff --git a/source/renderer/app/i18n/locales/zh-CN.json b/source/renderer/app/i18n/locales/zh-CN.json index 938aabda01..f12375b532 100644 --- a/source/renderer/app/i18n/locales/zh-CN.json +++ b/source/renderer/app/i18n/locales/zh-CN.json @@ -437,13 +437,21 @@ "wallet.backup.recovery.phrase.entry.dialog.terms.and.condition.recovery": "!!!I understand that if this application is moved to another device or deleted, my money can\n be only recovered with the backup phrase which were written down in a secure place", "wallet.backup.recovery.phrase.entry.dialog.verification.instructions": "!!!Tap each word in the correct order to verify your recovery phrase", "wallet.create.dialog.configStep": "!!!Config", + "wallet.create.dialog.create.personal.wallet.button.label": "!!!Create personal wallet", "wallet.create.dialog.hashImageStep": "!!!Hash & Image", "wallet.create.dialog.instructionsStep": "!!!Instructions", "wallet.create.dialog.mnemonicsStep": "!!!Mnemonics", + "wallet.create.dialog.name.label": "!!!Wallet Name", + "wallet.create.dialog.passwordFieldPlaceholder": "!!!Password", + "wallet.create.dialog.passwordSwitchLabel": "!!!Spending password", + "wallet.create.dialog.passwordSwitchPlaceholder": "!!!Keep your private keys safely encrypted by setting the spending password", + "wallet.create.dialog.repeatPasswordLabel": "!!!Repeat password", + "wallet.create.dialog.spendingPasswordLabel": "!!!Enter password", "wallet.create.dialog.stepsCounter": "!!!Step {currentStep} of {totalSteps}", "wallet.create.dialog.templateStep": "!!!Template", "wallet.create.dialog.title": "!!!Create a new wallet", "wallet.create.dialog.validateStep": "!!!Validate", + "wallet.create.dialog.walletNameHint": "!!!e.g: Shopping Wallet", "wallet.file.import.dialog.headline": "!!!Import Wallet", "wallet.file.import.dialog.passwordFieldPlaceholder": "!!!Password", "wallet.file.import.dialog.passwordSwitchLabel": "!!!Password", From ee0edd72005df7781dc3419734da57e5517b40e2 Mon Sep 17 00:00:00 2001 From: Nikola Glumac Date: Thu, 8 Aug 2019 12:08:40 +0200 Subject: [PATCH 4/4] [DDW-811] Small CHANGELOG and code improvements --- CHANGELOG.md | 2 +- source/renderer/app/stores/WalletsStore.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f886b06bbb..2a1c8179a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ Changelog ### Features -- Implemented the New Wallet Creation process ([PR 1499](https://github.com/input-output-hk/daedalus/pull/1499), [PR 1515](https://github.com/input-output-hk/daedalus/pull/1515)) +- Implemented the new "Wallet Creation" process ([PR 1499](https://github.com/input-output-hk/daedalus/pull/1499), [PR 1515](https://github.com/input-output-hk/daedalus/pull/1515)) - Implemented css rules automatic sort ([PR 1483](https://github.com/input-output-hk/daedalus/pull/1483)) - Improved scrollbar look and feel on wallets list ([PR 1475](https://github.com/input-output-hk/daedalus/pull/1475)) - Implemented new delegation countdown design ([PR 1481](https://github.com/input-output-hk/daedalus/pull/1481)) diff --git a/source/renderer/app/stores/WalletsStore.js b/source/renderer/app/stores/WalletsStore.js index ba13af698c..16b22af33c 100644 --- a/source/renderer/app/stores/WalletsStore.js +++ b/source/renderer/app/stores/WalletsStore.js @@ -141,7 +141,7 @@ export default class WalletsStore extends Store { }; // TODO: Remove once the new wallet creation process is ready - @action _tooggleUseNewWalletCreationProcess = () => { + @action _toggleUseNewWalletCreationProcess = () => { this.useNewWalletCreationProcess = !this.useNewWalletCreationProcess; };