1
0
mirror of https://github.com/flarum/core.git synced 2025-07-12 12:26:23 +02:00
Files
php-flarum/js/src/forum/utils/alertEmailConfirmation.js
2020-04-17 11:57:55 +02:00

59 lines
1.7 KiB
JavaScript

import Alert from '../../common/components/Alert';
import Button from '../../common/components/Button';
import icon from '../../common/helpers/icon';
/**
* Shows an alert if the user has not yet confirmed their email address.
*
* @param {ForumApp} app
*/
export default function alertEmailConfirmation(app) {
const user = app.session.user;
if (!user || user.isEmailConfirmed()) return;
const resendButton = Button.component({
className: 'Button Button--link',
children: app.translator.trans('core.forum.user_email_confirmation.resend_button'),
onclick: function () {
resendButton.props.loading = true;
m.redraw();
app
.request({
method: 'POST',
url: app.forum.attribute('apiUrl') + '/users/' + user.id() + '/send-confirmation',
})
.then(() => {
resendButton.props.loading = false;
resendButton.props.children = [icon('fas fa-check'), ' ', app.translator.trans('core.forum.user_email_confirmation.sent_message')];
resendButton.props.disabled = true;
m.redraw();
})
.catch(() => {
resendButton.props.loading = false;
m.redraw();
});
},
});
class ContainedAlert extends Alert {
view() {
const vdom = super.view();
vdom.children = [<div className="container">{vdom.children}</div>];
return vdom;
}
}
m.mount(
$('<div/>').insertBefore('#content')[0],
ContainedAlert.component({
dismissible: false,
children: app.translator.trans('core.forum.user_email_confirmation.alert_message', { email: <strong>{user.email()}</strong> }),
controls: [resendButton],
})
);
}