]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blob - cmd/web/js/password_reset.jsx
b6a10ecbceec8852710276f44438a77d48909785
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / cmd / web / js / password_reset.jsx
1 import Api from './api.js';
2 import App from './app.js';
3 import classNames from 'classnames';
4 import React from 'react';
5
6 class PasswordResetForm extends React.Component {
7 constructor(props) {
8 super(props);
9 this.state = {'hideMsg': true, 'msg': '', 'msgOk': false, 'email': ''};
10 }
11
12 handleSubmit = (e) => {
13 Api.Call('RESET_PASSWORD', {'email': this.state.email}, function(err, status, data) {
14 if (err) {
15 console.error(err, data);
16 this.displayMessage(App.errorCodeToMessage(err.code), false);
17 return;
18 }
19
20 this.displayMessage('You will receive a reset link to reset your password.', true);
21 if (this.props.onSuccess) {
22 this.props.onSuccess();
23 }
24
25 }.bind(this));
26 e.preventDefault();
27 }
28
29 handleEmailChange = (event) => {
30 this.setState({'email': event.target.value});
31 }
32
33 hideMessage = () => {
34 this.setState({'hideMsg': true});
35 }
36
37 displayMessage = (msg, ok) => {
38 this.setState({'msg': msg, 'msgOk': ok, 'hideMsg': false});
39 }
40
41 render = () => {
42 var cName = classNames('form-message', {'hidden': this.state.hideMsg, 'message-ok': this.state.msgOk});
43 return (
44 <div className="row sign-in">
45 <div className="offset-1 col-10 offset-md-4 col-md-4 text-center">
46 <form role="form" onSubmit={this.handleSubmit}>
47 <input className="form-control" type="email" placeholder="email" onChange={this.handleEmailChange} />
48 <input className="form-control submit" type="submit" value="Reset" />
49 <div className={cName}>{this.state.msg}</div>
50 </form>
51 </div>
52 </div>
53 );
54 }
55 }
56
57 export default PasswordResetForm;