From a3845b7e7c36f0ddb6abdd415a8009395dfeb12c Mon Sep 17 00:00:00 2001 From: Ayo Date: Sat, 18 Nov 2023 23:38:06 +0100 Subject: [PATCH] refactor: prevent attribute changing twice --- src/WebComponent.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/WebComponent.js b/src/WebComponent.js index 5f3c2fd..2a3f4b2 100644 --- a/src/WebComponent.js +++ b/src/WebComponent.js @@ -154,27 +154,26 @@ export class WebComponent extends HTMLElement { * @returns */ #handler = (setter) => ({ - set(obj, prop, newval) { - const oldval = obj[prop]; - console.log(">>> old value:", oldval, typeof oldval); + set(obj, prop, newValue) { + const oldValue = obj[prop]; - obj[prop] = newval; + obj[prop] = newValue; /** * Converts camelCaps string into kebab-case * @param {string} str * @returns {string} */ - const kebabize = (str) => + const getKebab = (str) => str.replace( /[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? "-" : "") + $.toLowerCase() ); - if (JSON.stringify(oldval) !== newval) { - console.log(oldval, newval); - const kebab = kebabize(prop); - setter(kebab, newval); + if (oldValue != newValue) { + console.log("value changed", oldValue, newValue); + const kebab = getKebab(prop); + setter(kebab, newValue); } return true;