1 var Api = require('./api.js').Api;
2 var App = require('./app.js');
3 var classNames = require('classnames');
5 var OtpQrCode = React.createClass({
9 <img src={this.props.img} />
10 <p>{this.props.secret}</p>
16 module.exports.OtpEnrollForm = React.createClass({
17 getInitialState: function() {
18 return {'hideMsg': true, 'msg': '', 'msgOk': false, 'pass': ''};
20 handleSubmit: function(e) {
21 Api.Call('OTP_VALIDATE', {'pass': this.state.pass}, function(err, status, data) {
23 console.error(err, data);
24 this.displayMessage(App.errorCodeToMessage(err.code), false);
28 this.displayMessage('OK', true);
29 this.props.onSuccess(data.token);
35 handlePassChange: function(event) {
36 this.setState({'pass': event.target.value});
38 hideMessage: function() {
39 this.setState({'hideMsg': true});
41 displayMessage: function(msg, ok) {
42 this.setState({'msg': msg, 'msgOk': ok, 'hideMsg': false});
45 var cName = classNames('form-message', {'hidden': this.state.hideMsg, 'message-ok': this.state.msgOk});
50 <div className='row justify-content-center'>
51 <OtpQrCode img={this.props.img} secret={this.props.secret} />
56 <div className='row otp-enroll'>
57 <div className='offset-4 col-4 col-xs-offset-1 col-xs-10 text-center'>
59 <div className='row justify-content-center'>
60 <form role='form' onSubmit={this.handleSubmit}>
61 <input className='form-control' type='pass' placeholder='code' onChange={this.handlePassChange} />
62 <input className='form-control submit' type='submit' value='Validate' />
63 <div className={cName} ref='message'>{this.state.msg}</div>