AccountName.js 1.89 KiB
Newer Older
// Copyright 2015-2018 Parity Technologies (UK) Ltd.
// This file is part of Parity.
//
Amaury Martiny's avatar
Amaury Martiny committed
// SPDX-License-Identifier: BSD-3-Clause
import React, { Component } from 'react';
import { FormField } from 'fether-ui';
import { inject, observer } from 'mobx-react';
import { Link } from 'react-router-dom';

Amaury Martiny's avatar
Amaury Martiny committed
import CreateAccountContainer from '../CreateAccountContainer';
@inject('createAccountStore')
@observer
class AccountName extends Component {
  componentDidMount () {
    const { createAccountStore } = this.props;
    // Generate a new public address if there's none yet
    if (!createAccountStore.address) {
      createAccountStore.generateNewAccount();
    }
Amaury Martiny's avatar
Amaury Martiny committed
  handleChangeName = ({ target: { value } }) =>
    this.props.createAccountStore.setName(value);

  render () {
    const {
Amaury Martiny's avatar
Amaury Martiny committed
      createAccountStore: { generateNewAccount, isImport, name },
      location: { pathname }
    } = this.props;
    const currentStep = pathname.slice(-1);

    return (
Amaury Martiny's avatar
Amaury Martiny committed
      <CreateAccountContainer>
        {!isImport && (
          <div className='box -pull-up text -right'>
            <button
              onClick={generateNewAccount}
              className='button -tiny -reload'
            >
              Regenerate address
            </button>
Amaury Martiny's avatar
Amaury Martiny committed
        <div className='text'>
          <p>Please give this account a name:</p>
        </div>
        <FormField
          label='Name'
          onChange={this.handleChangeName}
          required
          type='text'
          value={name}
        />
        <nav className='form-nav'>
          {name ? (
            <Link to={`/accounts/new/${+currentStep + 1}`}>
              <button className='button'>Next</button>
            </Link>
          ) : (
            <button className='button' disabled>
              Next
            </button>
          )}
        </nav>
      </CreateAccountContainer>
export default AccountName;