From f41e7f1384c41595104de3d21799326ea6242600 Mon Sep 17 00:00:00 2001 From: chris Date: Thu, 20 Feb 2025 14:22:02 +0100 Subject: [PATCH] REFA: provided an HTMLElement ToggleVisibility --- src/context/generalHelpers.js | 49 ++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/src/context/generalHelpers.js b/src/context/generalHelpers.js index 3691ec8..522cb3f 100644 --- a/src/context/generalHelpers.js +++ b/src/context/generalHelpers.js @@ -79,40 +79,41 @@ class ObjectAccessObject { } - -/** - * - * @param {string} autocompelSelector - * @returns {boolean} for true element is now hidden and false it is not hidden. - */ -function toggleElementVisibility(autocompelSelector, ensureHidden = false) { - /** - * @type {HTMLElement} - */ - let el = document.querySelector(autocompelSelector); - let name = el.getAttribute("data-autocompel"); - - console.log("De-/hiding", name, autocompelSelector); - console.log(el); - - - el.classList.toggle("compel-mech-hidden"); +function toggleElementVisibility(element, ensureHidden = false) { + element.classList.toggle("compel-mech-hidden"); let isNowHidden = false; - if (el.hasAttribute("hidden")) { - el.removeAttribute("hidden"); - el.style["display"] = "flex"; + if (element.hasAttribute("hidden")) { + element.removeAttribute("hidden"); + element.style["display"] = "flex"; isNowHidden = false; } else { - el.setAttribute("hidden", "hidden"); - el.style.removeProperty("display"); + element.setAttribute("hidden", "hidden"); + element.style.removeProperty("display"); isNowHidden = true; } if (ensureHidden && !isNowHidden) { - return toggleElementVisibility(autocompelSelector) + return toggleSelectorElementVisibility(selector) } else { return isNowHidden; } } + +/** + * + * @param {string} selector + * @returns {boolean} for true element is now hidden and false it is not hidden. + */ +function toggleSelectorElementVisibility(selector, ensureHidden = false) { + /** + * @type {HTMLElement} + */ + let el = document.querySelector(selector); + let name = el.getAttribute("data-autocompel"); + + console.log("De-/hiding", name, selector); + + return toggleElementVisibility(el, ensureHidden); +}