AccountPassword.js 1.87 KiB
Newer Older
// Copyright 2015-2018 Parity Technologies (UK) Ltd.
// This file is part of Parity.
//
// SPDX-License-Identifier: MIT

import React, { Component } from 'react';
import { FormField } from 'fether-ui';
import { inject, observer } from 'mobx-react';

Amaury Martiny's avatar
Amaury Martiny committed
import CreateAccountContainer from '../CreateAccountContainer';
@inject('createAccountStore')
@observer
class AccountPassword extends Component {
  state = {
    confirm: '',
    password: ''
  };

  handleConfirmChange = ({ target: { value } }) => {
    this.setState({ confirm: value });
  };

  handlePasswordChange = ({ target: { value } }) => {
    this.setState({ password: value });
  };

  handleSubmit = () => {
Amaury Martiny's avatar
Amaury Martiny committed
    const {
      createAccountStore,
      history,
      location: { pathname }
    } = this.props;
    const { password } = this.state;
    createAccountStore.setPassword(password);

    const currentStep = pathname.slice(-1);
    history.push(`/accounts/new/${+currentStep + 1}`);
Amaury Martiny's avatar
Amaury Martiny committed
  render () {
    const { confirm, password } = this.state;

    return (
Amaury Martiny's avatar
Amaury Martiny committed
      <CreateAccountContainer>
        <form onSubmit={this.handleSubmit}>
          <div className='text'>
            <p>Secure your account with a password:</p>
          </div>
Amaury Martiny's avatar
Amaury Martiny committed
          <FormField
            label='Password'
            onChange={this.handlePasswordChange}
            required
            type='password'
            value={password}
          />
Amaury Martiny's avatar
Amaury Martiny committed
          <FormField
            label='Confirm'
Amaury Martiny's avatar
Amaury Martiny committed
            onChange={this.handleConfirmChange}
            required
            type='password'
            value={confirm}
          />
Amaury Martiny's avatar
Amaury Martiny committed
          <nav className='form-nav'>
            <button
              className='button'
              disabled={!password || confirm !== password}
            >
              Next
            </button>
          </nav>
        </form>
      </CreateAccountContainer>
export default AccountPassword;