From 6513ddad07987a613e81dc859764e949d1324c31 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Mon, 8 Apr 2024 13:04:57 +0200 Subject: [PATCH 1/4] Update satus.js limit writes to essential ones Dont save storage if new value is same as old value. The way satus works the mere act of displaying for example themes performs useless redundant writes. --- menu/satus.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/menu/satus.js b/menu/satus.js index b1a4c6bd2..72236ce31 100644 --- a/menu/satus.js +++ b/menu/satus.js @@ -777,11 +777,13 @@ satus.render = function(skeleton, container, property, childrenOnly, prepend, sk set: function(val) { value = val; - if (skeleton.storage !== false) { - satus.storage.set(key, val); + if (satus.storage.get(key) != val) { + if (skeleton.storage !== false) { + satus.storage.set(key, val); + } + + parent.dispatchEvent(new CustomEvent('change')); } - - parent.dispatchEvent(new CustomEvent('change')); } } }); From 7bd8d3ae7db01767589d37e28ca4f48d4baf74e8 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Mon, 8 Apr 2024 20:19:08 +0200 Subject: [PATCH 2/4] Update satus.js stop radio from writing on every render --- menu/satus.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/menu/satus.js b/menu/satus.js index 72236ce31..972790348 100644 --- a/menu/satus.js +++ b/menu/satus.js @@ -1937,6 +1937,8 @@ satus.components.colorPicker = function(component, skeleton) { --------------------------------------------------------------*/ satus.components.radio = function(component, skeleton) { + let value; + component.nativeControl = component.createChildElement('input', 'input'); component.createChildElement('i'); @@ -1954,10 +1956,10 @@ satus.components.radio = function(component, skeleton) { component.nativeControl.value = skeleton.value; } - component.storage.value = satus.storage.get(component.storage.key); + value = satus.storage.get(component.storage.key); - if (satus.isset(component.storage.value)) { - component.nativeControl.checked = component.storage.value === skeleton.value; + if (satus.isset(value)) { + component.nativeControl.checked = value === skeleton.value; } else if (skeleton.checked) { component.nativeControl.checked = true; } From 8a165111a5fc5158b74e51b64a0dc0becd24cac1 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Mon, 8 Apr 2024 21:19:52 +0200 Subject: [PATCH 3/4] Update satus.js actually save just the value saved, not everything --- menu/satus.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/menu/satus.js b/menu/satus.js index 972790348..5a93469bc 100644 --- a/menu/satus.js +++ b/menu/satus.js @@ -983,13 +983,7 @@ satus.storage.set = function(key, value, callback) { } } - for (let key in this.data) { - if (typeof this.data[key] !== 'function') { - items[key] = this.data[key]; - } - } - - chrome.storage.local.set(items, function() { + chrome.storage.local.set({[key]: value}, function() { satus.events.trigger('storage-set'); if (callback) { From da4132b537c81ea684faa710915882a15395afa2 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Tue, 9 Apr 2024 02:53:31 +0200 Subject: [PATCH 4/4] Update satus.js color picker no longer writes during render --- menu/satus.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/menu/satus.js b/menu/satus.js index 5a93469bc..46982cab2 100644 --- a/menu/satus.js +++ b/menu/satus.js @@ -1765,8 +1765,6 @@ satus.components.colorPicker = function(component, skeleton) { set: function(value) { array = value; - this.parentNode.storage.value = array; - element.style.backgroundColor = 'rgb(' + value.join(',') + ')'; } }); @@ -1894,6 +1892,7 @@ satus.components.colorPicker = function(component, skeleton) { component = modal.parentElement; component.color.value = component.skeleton.value || [0, 0, 0]; + satus.storage.remove(component.storage.key); modal.rendered.close(); } @@ -1917,6 +1916,7 @@ satus.components.colorPicker = function(component, skeleton) { component = modal.parentElement; component.color.value = satus.color.hslToRgb(modal.value); + component.storage.value = component.color.value; modal.rendered.close(); }