diff --git a/frontend/components/forms/LoginForm/LoginForm.jsx b/frontend/components/forms/LoginForm/LoginForm.jsx index 059f520558..0c21b90da1 100644 --- a/frontend/components/forms/LoginForm/LoginForm.jsx +++ b/frontend/components/forms/LoginForm/LoginForm.jsx @@ -1,5 +1,6 @@ import React, { Component, PropTypes } from 'react'; import { Link } from 'react-router'; +import { noop } from 'lodash'; import radium from 'radium'; import avatar from '../../../../assets/images/avatar.svg'; import componentStyles from './styles'; @@ -8,12 +9,21 @@ import InputFieldWithIcon from '../fields/InputFieldWithIcon'; import paths from '../../../router/paths'; import validatePresence from '../validators/validate_presence'; - class LoginForm extends Component { static propTypes = { + serverErrors: PropTypes.shape({ + username: PropTypes.string, + password: PropTypes.string, + }), + onChange: PropTypes.func, onSubmit: PropTypes.func, }; + static defaultProps = { + onChange: noop, + serverErrors: {}, + }; + constructor (props) { super(props); @@ -32,8 +42,11 @@ class LoginForm extends Component { onInputChange = (formField) => { return ({ target }) => { const { errors, formData } = this.state; + const { onChange } = this.props; const { value } = target; + onChange(value); + this.setState({ errors: { ...errors, @@ -131,22 +144,24 @@ class LoginForm extends Component { formStyles, submitButtonStyles, } = componentStyles; + const { serverErrors } = this.props; const { errors } = this.state; const { onInputChange, onFormSubmit } = this; + return (