Newer
Older
// Copyright 2015-2018 Parity Technologies (UK) Ltd.
// This file is part of Parity.
//
import { AccountCard, FormField } from 'fether-ui';
import debounce from 'lodash/debounce';
import { inject, observer } from 'mobx-react';
@inject('createAccountStore')
@observer
class AccountRewritePhrase extends Component {
handleChange = ({ target: { value } }) => {
const {
createAccountStore: { isImport }
} = this.props;
this.setState({ value });
// If we're importing, we show the current address generated by the current
// recovery phrase
if (isImport) {
this.setState({ isLoading: true });
this.handleSavePhrase();
}
};
const {
history,
location: { pathname }
} = this.props;
const currentStep = pathname.slice(-1);
history.push(`/accounts/new/${+currentStep + 1}`);
};
const {
createAccountStore: { setPhrase }
} = this.props;
return setPhrase(value).then(() => {
this.setState({ isLoading: false });
});
}, 1000);
const {
createAccountStore: { address, isImport, name }
} = this.props;
const { value } = this.state;
return (
<AccountCard
address={address}
name={address && !name ? '(no name)' : name}
drawers={[
<div key='createAccount'>
<div className='text'>
{isImport ? (
<p>Type your Recovery phrase</p>
) : (
<p>
Type your secret phrase to confirm that you wrote it down
correctly:
</p>
)}
</div>
<FormField
input={
<textarea onChange={this.handleChange} required value={value} />
}
label='Recovery phrase'
/>
<nav className='form-nav'>{this.renderButton()}</nav>
</div>
]}
/>
const {
createAccountStore: { isImport, phrase }
} = this.props;
const { isLoading, value } = this.state;
// If we are creating a new account, the button just checks the phrase has
// been correctly written by the user.
if (!isImport) {
return (
<button
className='button'
disabled={isLoading || value !== phrase}
onClick={this.handleNextStep}
>
Next
</button>
);
// If we are importing an existing account, the button goes to the next step
<button
className='button'
disabled={isLoading || !value.length}
onClick={this.handleNextStep}
export default AccountRewritePhrase;