From 3e79c3e3ff894541a38e978a2f97e233b8740efd Mon Sep 17 00:00:00 2001 From: Alexander Skvortsov Date: Mon, 10 Aug 2020 00:19:33 -0400 Subject: [PATCH] update: forum/components/EditUserModal --- js/src/forum/components/EditUserModal.js | 60 +++++++++++++----------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/js/src/forum/components/EditUserModal.js b/js/src/forum/components/EditUserModal.js index 3ad31b059..4de93fcd7 100644 --- a/js/src/forum/components/EditUserModal.js +++ b/js/src/forum/components/EditUserModal.js @@ -9,22 +9,22 @@ import ItemList from '../../common/utils/ItemList'; * The `EditUserModal` component displays a modal dialog with a login form. */ export default class EditUserModal extends Modal { - init() { - super.init(); + oninit(vnode) { + super.oninit(vnode); - const user = this.props.user; + const user = this.attrs.user; - this.username = m.prop(user.username() || ''); - this.email = m.prop(user.email() || ''); - this.isEmailConfirmed = m.prop(user.isEmailConfirmed() || false); - this.setPassword = m.prop(false); - this.password = m.prop(user.password() || ''); + this.username = m.stream(user.username() || ''); + this.email = m.stream(user.email() || ''); + this.isEmailConfirmed = m.stream(user.isEmailConfirmed() || false); + this.setPassword = m.stream(false); + this.password = m.stream(user.password() || ''); this.groups = {}; app.store .all('groups') .filter((group) => [Group.GUEST_ID, Group.MEMBER_ID].indexOf(group.id()) === -1) - .forEach((group) => (this.groups[group.id()] = m.prop(user.groups().indexOf(group) !== -1))); + .forEach((group) => (this.groups[group.id()] = m.stream(user.groups().indexOf(group) !== -1))); } className() { @@ -55,7 +55,7 @@ export default class EditUserModal extends Modal { 40 ); - if (app.session.user !== this.props.user) { + if (app.session.user !== this.attrs.user) { items.add( 'email',
@@ -65,12 +65,14 @@ export default class EditUserModal extends Modal {
{!this.isEmailConfirmed() ? (
- {Button.component({ - className: 'Button Button--block', - children: app.translator.trans('core.forum.edit_user.activate_button'), - loading: this.loading, - onclick: this.activate.bind(this), - })} + {Button.component( + { + className: 'Button Button--block', + loading: this.loading, + onclick: this.activate.bind(this), + }, + app.translator.trans('core.forum.edit_user.activate_button') + )}
) : ( '' @@ -89,9 +91,9 @@ export default class EditUserModal extends Modal { type="checkbox" onchange={(e) => { this.setPassword(e.target.checked); - m.redraw(true); + m.redraw.sync(); if (e.target.checked) this.$('[name=password]').select(); - m.redraw.strategy('none'); + e.redraw = false; }} /> {app.translator.trans('core.forum.edit_user.set_password_label')} @@ -125,7 +127,7 @@ export default class EditUserModal extends Modal { {GroupBadge.component({ group, label: '' })} {group.nameSingular()} @@ -138,12 +140,14 @@ export default class EditUserModal extends Modal { items.add( 'submit',
- {Button.component({ - className: 'Button Button--primary', - type: 'submit', - loading: this.loading, - children: app.translator.trans('core.forum.edit_user.submit_button'), - })} + {Button.component( + { + className: 'Button Button--primary', + type: 'submit', + loading: this.loading, + }, + app.translator.trans('core.forum.edit_user.submit_button') + )}
, -10 ); @@ -157,7 +161,7 @@ export default class EditUserModal extends Modal { username: this.username(), isEmailConfirmed: true, }; - this.props.user + this.attrs.user .save(data, { errorHandler: this.onerror.bind(this) }) .then(() => { this.isEmailConfirmed(true); @@ -180,7 +184,7 @@ export default class EditUserModal extends Modal { relationships: { groups }, }; - if (app.session.user !== this.props.user) { + if (app.session.user !== this.attrs.user) { data.email = this.email(); } @@ -196,7 +200,7 @@ export default class EditUserModal extends Modal { this.loading = true; - this.props.user + this.attrs.user .save(this.data(), { errorHandler: this.onerror.bind(this) }) .then(this.hide.bind(this)) .catch(() => {