diff --git a/js/src/admin/components/AdminLinkButton.js b/js/src/admin/components/AdminLinkButton.js
index b09cbdef8..ff98f7130 100644
--- a/js/src/admin/components/AdminLinkButton.js
+++ b/js/src/admin/components/AdminLinkButton.js
@@ -11,10 +11,6 @@ import LinkButton from '../../common/components/LinkButton';
export default class AdminLinkButton extends LinkButton {
getButtonContent(children) {
- const content = super.getButtonContent(children);
-
- content.push(
{this.attrs.description}
);
-
- return content;
+ return [...super.getButtonContent(children), {this.attrs.description}
];
}
}
diff --git a/js/src/admin/components/AppearancePage.js b/js/src/admin/components/AppearancePage.js
index fc55a55ac..f77d50d98 100644
--- a/js/src/admin/components/AppearancePage.js
+++ b/js/src/admin/components/AppearancePage.js
@@ -28,18 +28,8 @@ export default class AppearancePage extends Page {
{app.translator.trans('core.admin.appearance.colors_text')}
-
-
+
+
{Switch.component(
diff --git a/js/src/admin/components/PermissionDropdown.js b/js/src/admin/components/PermissionDropdown.js
index bd395bb57..f5e7990f0 100644
--- a/js/src/admin/components/PermissionDropdown.js
+++ b/js/src/admin/components/PermissionDropdown.js
@@ -40,7 +40,7 @@ export default class PermissionDropdown extends Dropdown {
}
view(vnode) {
- vnode.children = [];
+ const children = [];
let groupIds = app.data.permissions[this.attrs.permission] || [];
@@ -60,7 +60,7 @@ export default class PermissionDropdown extends Dropdown {
if (this.showing) {
if (this.attrs.allowGuest) {
- vnode.children.push(
+ children.push(
Button.component(
{
icon: everyone ? 'fas fa-check' : true,
@@ -72,7 +72,7 @@ export default class PermissionDropdown extends Dropdown {
);
}
- vnode.children.push(
+ children.push(
Button.component(
{
icon: members ? 'fas fa-check' : true,
@@ -98,7 +98,7 @@ export default class PermissionDropdown extends Dropdown {
);
[].push.apply(
- vnode.children,
+ children,
app.store
.all('groups')
.filter((group) => [Group.ADMINISTRATOR_ID, Group.GUEST_ID, Group.MEMBER_ID].indexOf(group.id()) === -1)
@@ -118,7 +118,7 @@ export default class PermissionDropdown extends Dropdown {
);
}
- return super.view(vnode);
+ return super.view({ ...vnode, children });
}
save(groupIds) {
diff --git a/js/src/admin/components/SessionDropdown.js b/js/src/admin/components/SessionDropdown.js
index 3f7d29a59..1c49119c4 100644
--- a/js/src/admin/components/SessionDropdown.js
+++ b/js/src/admin/components/SessionDropdown.js
@@ -18,9 +18,7 @@ export default class SessionDropdown extends Dropdown {
}
view(vnode) {
- vnode.children = this.items().toArray();
-
- return super.view(vnode);
+ return super.view({ ...vnode, children: this.items().toArray() });
}
getButtonContent() {
diff --git a/js/src/admin/components/SettingDropdown.js b/js/src/admin/components/SettingDropdown.js
index 41c42b853..c8224169c 100644
--- a/js/src/admin/components/SettingDropdown.js
+++ b/js/src/admin/components/SettingDropdown.js
@@ -13,19 +13,20 @@ export default class SettingDropdown extends SelectDropdown {
}
view(vnode) {
- vnode.children = this.attrs.options.map(({ value, label }) => {
- const active = app.data.settings[this.attrs.key] === value;
+ return super.view({
+ ...vnode,
+ children: this.attrs.options.map(({ value, label }) => {
+ const active = app.data.settings[this.attrs.key] === value;
- return Button.component(
- {
- icon: active ? 'fas fa-check' : true,
- onclick: saveSettings.bind(this, { [this.attrs.key]: value }),
- active,
- },
- label
- );
+ return Button.component(
+ {
+ icon: active ? 'fas fa-check' : true,
+ onclick: saveSettings.bind(this, { [this.attrs.key]: value }),
+ active,
+ },
+ label
+ );
+ }),
});
-
- return super.view(vnode);
}
}
diff --git a/js/src/admin/components/UploadImageButton.js b/js/src/admin/components/UploadImageButton.js
index 42d10c2f8..bc11f1035 100644
--- a/js/src/admin/components/UploadImageButton.js
+++ b/js/src/admin/components/UploadImageButton.js
@@ -9,22 +9,20 @@ export default class UploadImageButton extends Button {
if (app.data.settings[this.attrs.name + '_path']) {
this.attrs.onclick = this.remove.bind(this);
- vnode.children = app.translator.trans('core.admin.upload_image.remove_button');
return (
-
{super.view(vnode)}
+
{super.view({ ...vnode, children: app.translator.trans('core.admin.upload_image.remove_button') })}
);
} else {
this.attrs.onclick = this.upload.bind(this);
- vnode.children = app.translator.trans('core.admin.upload_image.upload_button');
}
- return super.view(vnode);
+ return super.view({ ...vnode, children: app.translator.trans('core.admin.upload_image.upload_button')});
}
/**
diff --git a/js/src/forum/components/SessionDropdown.js b/js/src/forum/components/SessionDropdown.js
index 9363e0ad8..f6426091f 100644
--- a/js/src/forum/components/SessionDropdown.js
+++ b/js/src/forum/components/SessionDropdown.js
@@ -20,9 +20,7 @@ export default class SessionDropdown extends Dropdown {
}
view(vnode) {
- vnode.children = this.items().toArray();
-
- return super.view(vnode);
+ return super.view({ ...vnode, children: this.items().toArray() });
}
getButtonContent() {
diff --git a/js/src/forum/utils/alertEmailConfirmation.js b/js/src/forum/utils/alertEmailConfirmation.js
index 5459b9813..75bd0d3cd 100644
--- a/js/src/forum/utils/alertEmailConfirmation.js
+++ b/js/src/forum/utils/alertEmailConfirmation.js
@@ -57,9 +57,7 @@ export default function alertEmailConfirmation(app) {
view(vnode) {
const vdom = super.view(vnode);
- vdom.children = [{vdom.children}
];
-
- return vdom;
+ return { ...vdom, children: [{vdom.children}
]};
}
}