mirror of
https://github.com/flarum/framework.git
synced 2025-02-19 07:13:24 +08:00
74 lines
1.9 KiB
JavaScript
74 lines
1.9 KiB
JavaScript
![]() |
import Modal from 'flarum/components/Modal';
|
||
|
import Button from 'flarum/components/Button';
|
||
|
import extractText from 'flarum/utils/extractText';
|
||
|
|
||
|
export default class ConfirmPasswordModal extends Modal {
|
||
|
init() {
|
||
|
super.init();
|
||
|
|
||
|
this.password = m.prop('');
|
||
|
}
|
||
|
|
||
|
className() {
|
||
|
return 'ConfirmPasswordModal Modal--small';
|
||
|
}
|
||
|
|
||
|
title() {
|
||
|
return app.translator.trans('core.forum.confirm_password.title');
|
||
|
}
|
||
|
|
||
|
content() {
|
||
|
return (
|
||
|
<div className="Modal-body">
|
||
|
<div className="Form Form--centered">
|
||
|
<div className="Form-group">
|
||
|
<input
|
||
|
type="password"
|
||
|
className="FormControl"
|
||
|
bidi={this.password}
|
||
|
placeholder={extractText(app.translator.trans('core.forum.confirm_password.password_placeholder'))}
|
||
|
disabled={this.loading}/>
|
||
|
</div>
|
||
|
|
||
|
<div className="Form-group">
|
||
|
<Button
|
||
|
type="submit"
|
||
|
className="Button Button--primary Button--block"
|
||
|
loading={this.loading}>
|
||
|
{app.translator.trans('core.forum.confirm_password.submit_button')}
|
||
|
</Button>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
);
|
||
|
}
|
||
|
|
||
|
onsubmit(e) {
|
||
|
e.preventDefault();
|
||
|
|
||
|
this.loading = true;
|
||
|
|
||
|
app.session.login(app.session.user.email(), this.password(), {errorHandler: this.onerror.bind(this)})
|
||
|
.then(() => {
|
||
|
this.success = true;
|
||
|
this.hide();
|
||
|
app.request(this.props.deferredRequest).then(response => this.props.deferred.resolve(response), response => this.props.deferred.reject(response));
|
||
|
})
|
||
|
.catch(this.loaded.bind(this));
|
||
|
}
|
||
|
|
||
|
onerror(error) {
|
||
|
if (error.status === 401) {
|
||
|
error.alert.props.children = app.translator.trans('core.forum.log_in.invalid_login_message');
|
||
|
}
|
||
|
|
||
|
super.onerror(error);
|
||
|
}
|
||
|
|
||
|
onhide() {
|
||
|
if (this.success) return;
|
||
|
|
||
|
this.props.deferred.reject(this.props.error);
|
||
|
}
|
||
|
}
|