// - Import external components import React, { Component } from 'react' import { connect } from 'react-redux' import { NavLink, withRouter } from 'react-router-dom' import { push } from 'react-router-redux' import Paper from 'material-ui/Paper' import TextField from 'material-ui/TextField' import RaisedButton from 'material-ui/RaisedButton' import FlatButton from 'material-ui/FlatButton' // - Import actions import * as authorizeActions from 'authorizeActions' /** * Create component class * * @export * @class Settings * @extends {Component} */ export class Settings extends Component { /** * Component constructor * @param {object} props is an object properties of component */ constructor(props) { super(props); this.state = { passwordInput: '', passwordInputError: '', confirmInput: '', confirmInputError: '', } // Binding function to `this` this.handleForm = this.handleForm.bind(this) } /** * Handle data on input change * @param {event} evt is an event of inputs of element on change */ handleInputChange = (evt) => { const target = evt.target; const value = target.type === 'checkbox' ? target.checked : target.value; const name = target.name; this.setState({ [name]: value }); switch (name) { case 'passwordInput': this.setState({ passwordInputError: '' }) break case 'confirmInput': this.setState({ confirmInputError: '', passwordInputError: '' }) break; default: } } /** * Handle register form */ handleForm = () => { var error = false if (this.state.passwordInput === '') { this.setState({ passwordInputError: 'This field is required' }) error = true } else if (this.state.confirmInput === '') { this.setState({ confirmInputError: 'This field is required' }) error = true } else if(this.state.confirmInput !== this.state.passwordInput) { this.setState({ confirmInputError: 'Password and confirm password should be equal!' }) error = true } if (!error) { this.props.login( this.state.passwordInput, this.state.confirmInput ) } } /** * Reneder component DOM * @return {react element} return the DOM which rendered by component */ render() { const paperStyle = { minHeight: 370, width: 450, textAlign: 'center', display: 'block', margin: "auto" }; return (