/* exported LocalStorageTools */ /* globals BookWyrm */ let LocalStorageTools = new (class { constructor() { document.querySelectorAll("[data-hide]").forEach((t) => this.setDisplay(t)); document .querySelectorAll(".set-display") .forEach((t) => t.addEventListener("click", this.updateDisplay.bind(this))); } /** * Update localStorage, then display content based on keys in localStorage. * * @param {Event} event * @return {undefined} */ updateDisplay(event) { // Used in set reading goal let key = event.target.dataset.id; let value = event.target.dataset.value; window.localStorage.setItem(key, value); document .querySelectorAll('[data-hide="' + key + '"]') .forEach((node) => this.setDisplay(node)); } /** * Toggle display of a DOM node based on its value in the localStorage. * * @param {object} node - DOM node to toggle. * @return {undefined} */ setDisplay(node) { // Used in set reading goal let key = node.dataset.hide; let value = window.localStorage.getItem(key); BookWyrm.addRemoveClass(node, "is-hidden", value); } })();