@@ -2,8 +2,11 @@ var React = require('react');
22var ReactDOM = require ( 'react-dom' ) ;
33var FormattedMessage = require ( 'react-intl' ) . FormattedMessage ;
44
5+ var log = require ( '../../lib/log.js' ) ;
6+
57var Input = require ( '../forms/input.jsx' ) ;
68var Button = require ( '../forms/button.jsx' ) ;
9+ var Spinner = require ( '../spinner/spinner.jsx' ) ;
710
811require ( './login.scss' ) ;
912
@@ -13,12 +16,21 @@ var Login = React.createClass({
1316 onLogIn : React . PropTypes . func ,
1417 error : React . PropTypes . string
1518 } ,
19+ getInitialState : function ( ) {
20+ return {
21+ waiting : false
22+ } ;
23+ } ,
1624 handleSubmit : function ( event ) {
1725 event . preventDefault ( ) ;
26+ this . setState ( { waiting : true } ) ;
1827 this . props . onLogIn ( {
1928 'username' : ReactDOM . findDOMNode ( this . refs . username ) . value ,
2029 'password' : ReactDOM . findDOMNode ( this . refs . password ) . value
21- } ) ;
30+ } , function ( err ) {
31+ if ( err ) log . error ( err ) ;
32+ this . setState ( { waiting : false } ) ;
33+ } . bind ( this ) ) ;
2234 } ,
2335 render : function ( ) {
2436 var error ;
@@ -40,11 +52,17 @@ var Login = React.createClass({
4052 defaultMessage = { 'Password' } />
4153 </ label >
4254 < Input type = "password" ref = "password" name = "password" />
43- < Button className = "submit-button white" type = "submit" >
44- < FormattedMessage
45- id = 'general.signIn'
46- defaultMessage = { 'Sign in' } />
47- </ Button >
55+ { this . state . waiting ? [
56+ < Button className = "submit-button white" type = "submit" disabled = "disabled" >
57+ < Spinner />
58+ </ Button >
59+ ] : [
60+ < Button className = "submit-button white" type = "submit" >
61+ < FormattedMessage
62+ id = 'general.signIn'
63+ defaultMessage = { 'Sign in' } />
64+ </ Button >
65+ ] }
4866 < a className = "right" href = "/accounts/password_reset/" >
4967 < FormattedMessage
5068 id = 'login.forgotPassword'
0 commit comments