From 85545aba62546f219a9c9730945511412a3174ef Mon Sep 17 00:00:00 2001 From: jloup Date: Fri, 4 May 2018 11:55:15 +0200 Subject: Password reset. --- cmd/web/js/password_reset.jsx | 57 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 cmd/web/js/password_reset.jsx (limited to 'cmd/web/js/password_reset.jsx') diff --git a/cmd/web/js/password_reset.jsx b/cmd/web/js/password_reset.jsx new file mode 100644 index 0000000..8cbdc60 --- /dev/null +++ b/cmd/web/js/password_reset.jsx @@ -0,0 +1,57 @@ +import Api from './api.js'; +import App from './app.js'; +import classNames from 'classnames'; +import React from 'react'; + +class PasswordResetForm extends React.Component { + constructor(props) { + super(props); + this.state = {'hideMsg': true, 'msg': '', 'msgOk': false, 'email': ''}; + } + + handleSubmit = (e) => { + Api.Call('RESET_PASSWORD', {'email': this.state.email}, function(err, status, data) { + if (err) { + console.error(err, data); + this.displayMessage(App.errorCodeToMessage(err.code), false); + return; + } + + this.displayMessage('You will receive a reset link to reset your password.', true); + if (this.props.onSuccess) { + this.props.onSuccess(); + } + + }.bind(this)); + e.preventDefault(); + } + + handleEmailChange = (event) => { + this.setState({'email': event.target.value}); + } + + hideMessage = () => { + this.setState({'hideMsg': true}); + } + + displayMessage = (msg, ok) => { + this.setState({'msg': msg, 'msgOk': ok, 'hideMsg': false}); + } + + render = () => { + var cName = classNames('form-message', {'hidden': this.state.hideMsg, 'message-ok': this.state.msgOk}); + return ( +
+
+
+ + +
{this.state.msg}
+
+
+
+ ); + } +} + +export default PasswordResetForm; \ No newline at end of file -- cgit v1.2.3