From ba5fe8ff0e6fdfa3ce437fa7c88006b471b96b67 Mon Sep 17 00:00:00 2001 From: Maximilian Harz Date: Mon, 7 Apr 2025 13:53:54 +0200 Subject: [PATCH] Fix initial type; implement and simplify button disable logic --- webapp/pages/settings/notifications.vue | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/webapp/pages/settings/notifications.vue b/webapp/pages/settings/notifications.vue index 5d56bbd74..934110f34 100644 --- a/webapp/pages/settings/notifications.vue +++ b/webapp/pages/settings/notifications.vue @@ -27,7 +27,7 @@ import { updateUserMutation } from '~/graphql/User' export default { data() { return { - emailNotificationSettings: {}, + emailNotificationSettings: [], } }, computed: { @@ -35,19 +35,18 @@ export default { currentUser: 'auth/user', }), isSubmitDisabled() { - return Object.entries(this.emailNotificationSettings).every( - // TODO deep equals - (value, index) => value === this.currentUser.emailNotificationSettings[index], + return this.emailNotificationSettings.every( + (topic) => topic.settings.every(setting => setting.value === this.currentUser.emailNotificationSettings.find(t => t.type === topic.type).settings.find(s => s.name === setting.name).value), ) }, isCheckAllDisabled() { - return Object.entries(this.emailNotificationSettings).every( - (topic) => topic[1].settings.every(setting => setting.value), + return this.emailNotificationSettings.every( + (topic) => topic.settings.every(setting => setting.value), ) }, isUncheckAllDisabled() { - return Object.entries(this.emailNotificationSettings).every( - (topic) => topic[1].settings.every(setting => !setting.value), + return this.emailNotificationSettings.every( + (topic) => topic.settings.every(setting => !setting.value), ) }, },