From 3cba358743cd2c1d92b487295774231cef68978d Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Wed, 21 Dec 2022 23:45:35 +0200
Subject: [PATCH] fix nested properties watcher being triggered far too often

---
 src/components/settings_modal/helpers/boolean_setting.js | 6 ++++++
 src/components/settings_modal/tabs/filtering_tab.js      | 9 ---------
 2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/src/components/settings_modal/helpers/boolean_setting.js b/src/components/settings_modal/helpers/boolean_setting.js
index dc8320442c..2e6992cb9a 100644
--- a/src/components/settings_modal/helpers/boolean_setting.js
+++ b/src/components/settings_modal/helpers/boolean_setting.js
@@ -41,7 +41,13 @@ export default {
   },
   methods: {
     update (e) {
+      const [firstSegment, ...rest] = this.path.split('.')
       set(this.$parent, this.path, e)
+      // Updating nested properties does not trigger update on its parent.
+      // probably still not as reliable, but works for depth=1 at least
+      if (rest.length > 0) {
+        set(this.$parent, firstSegment, { ...get(this.$parent, firstSegment) })
+      }
     },
     reset () {
       set(this.$parent, this.path, this.defaultState)
diff --git a/src/components/settings_modal/tabs/filtering_tab.js b/src/components/settings_modal/tabs/filtering_tab.js
index 73413b4882..5354e5dbd0 100644
--- a/src/components/settings_modal/tabs/filtering_tab.js
+++ b/src/components/settings_modal/tabs/filtering_tab.js
@@ -38,15 +38,6 @@ const FilteringTab = {
   },
   // Updating nested properties
   watch: {
-    notificationVisibility: {
-      handler (value) {
-        this.$store.dispatch('setOption', {
-          name: 'notificationVisibility',
-          value: this.$store.getters.mergedConfig.notificationVisibility
-        })
-      },
-      deep: true
-    },
     replyVisibility () {
       this.$store.dispatch('queueFlushAll')
     }
-- 
GitLab