import React from 'react'; // jshint ignore:line import ReactDOM from 'react-dom'; // jshint ignore:line import misago from 'misago/index'; import Button from 'misago/components/button'; // jshint ignore:line import Form from 'misago/components/form'; import SignInModal from 'misago/components/sign-in.js'; import ajax from 'misago/services/ajax'; import auth from 'misago/services/auth'; // jshint ignore:line import modal from 'misago/services/modal'; import snackbar from 'misago/services/snackbar'; import * as validators from 'misago/utils/validators'; import showBannedPage from 'misago/utils/banned-page'; export class ResetPasswordForm extends Form { constructor(props) { super(props); this.state = { 'isLoading': false, 'password': '', 'validators': { 'password': [ validators.passwordMinLength(misago.get('SETTINGS')) ] } }; } clean() { if (this.isValid()) { return true; } else { if (this.state.password.trim().length) { snackbar.error(this.state.errors.password[0]); } else { snackbar.error(gettext("Enter new password.")); } return false; } } send() { return ajax.post(misago.get('CHANGE_PASSWORD_API'), { 'password': this.state.password }); } handleSuccess(apiResponse) { this.props.callback(apiResponse); } handleError(rejection) { if (rejection.status === 403 && rejection.ban) { showBannedPage(rejection.ban); } else { snackbar.apiError(rejection); } } render() { /* jshint ignore:start */ return
; /* jshint ignore:end */ } } export class PasswordChangedPage extends React.Component { getMessage() { return interpolate(gettext("%(username)s, your password has been changed successfully."), { username: this.props.user.username }, true); } showSignIn() { modal.show(SignInModal); } render() { /* jshint ignore:start */ return
check

{this.getMessage()}

{gettext("You will have to sign in using new password before continuing.")}

; /* jshint ignore:end */ } } export default class extends React.Component { /* jshint ignore:start */ complete = (apiResponse) => { auth.softSignOut(); // nuke "redirect_to" field so we don't end // coming back to error page after sign in $('#hidden-login-form input[name="redirect_to"]').remove(); ReactDOM.render( , document.getElementById('page-mount') ); } /* jshint ignore:end */ render() { /* jshint ignore:start */ return ; /* jshint ignore:end */ } }