]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blame - cmd/web/js/signin.jsx
initial commit
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / cmd / web / js / signin.jsx
CommitLineData
7a9e5112 1var Api = require('./api.js').Api;
2var App = require('./app.js');
3var classNames = require('classnames');
4
5module.exports.SigninForm = React.createClass({
6 getInitialState: function() {
7 return {'hideMsg': true, 'msg': '', 'msgOk': false, 'password': '', 'email': ''};
8 },
9 handleSubmit: function(e) {
10 Api.Call('SIGNIN', {'password': this.state.password, 'email': this.state.email}, function(err, status, data) {
11 if (err) {
12 console.error(err, data);
13 this.displayMessage(App.errorCodeToMessage(err.code), false);
14 return;
15 }
16
17 this.displayMessage('OK', true);
18 this.props.onSuccess(data.token);
19
20 }.bind(this));
21 e.preventDefault();
22 },
23 handlePasswordChange: function(event) {
24 this.setState({'password': event.target.value});
25 },
26 handleEmailChange: function(event) {
27 this.setState({'email': event.target.value});
28 },
29 hideMessage: function() {
30 this.setState({'hideMsg': true});
31 },
32 displayMessage: function(msg, ok) {
33 this.setState({'msg': msg, 'msgOk': ok, 'hideMsg': false});
34 },
35 render: function() {
36 var cName = classNames('form-message', {'hidden': this.state.hideMsg, 'message-ok': this.state.msgOk});
37 return (
38 <div className='row justify-content-center sign-in'>
39 <div className='col-lg-offset-4 col-lg-4 col-md-offset-4 col-md-4 col-sm-offset-4 col-sm-4 col-xs-offset-1 col-xs-10'>
40 <form role='form' onSubmit={this.handleSubmit}>
41 <input className='form-control' type='email' placeholder='email' onChange={this.handleEmailChange} />
42 <input className='form-control' type='password' placeholder='password' onChange={this.handlePasswordChange} />
43 <input className='form-control submit' type='submit' value='Sign In' />
44 <div className={cName} ref='message'>{this.state.msg}</div>
45 </form>
46 <a href='#' onClick={App.onInternNavigation.bind(this, '/signup')}><u>Sign up</u></a>
47 </div>
48 </div>
49 );
50 }
51});
52