diff --git a/bookwyrm/static/js/localstorage.js b/bookwyrm/static/js/localstorage.js new file mode 100644 index 000000000..ff4027e68 --- /dev/null +++ b/bookwyrm/static/js/localstorage.js @@ -0,0 +1,27 @@ +// set javascript listeners +window.onload = function() { + // display based on localstorage vars + document.querySelectorAll('[data-hide]') + .forEach(t => setDisplay(t)); + + // update localstorage + Array.from(document.getElementsByClassName('set-display')) + .forEach(t => t.onclick = updateDisplay); +}; + +function updateDisplay(e) { + // used in set reading goal + var key = e.target.getAttribute('data-id'); + var value = e.target.getAttribute('data-value'); + window.localStorage.setItem(key, value); + + document.querySelectorAll('[data-hide="' + key + '"]') + .forEach(t => setDisplay(t)); +} + +function setDisplay(el) { + // used in set reading goal + var key = el.getAttribute('data-hide'); + var value = window.localStorage.getItem(key); + addRemoveClass(el, 'hidden', value); +} diff --git a/bookwyrm/static/js/shared.js b/bookwyrm/static/js/shared.js index 391efcc2c..a7f30660a 100644 --- a/bookwyrm/static/js/shared.js +++ b/bookwyrm/static/js/shared.js @@ -23,14 +23,6 @@ window.onload = function() { Array.from(document.getElementsByClassName('pulldown-menu')) .forEach(t => t.onclick = toggleMenu); - // display based on localstorage vars - document.querySelectorAll('[data-hide]') - .forEach(t => setDisplay(t)); - - // update localstorage - Array.from(document.getElementsByClassName('set-display')) - .forEach(t => t.onclick = updateDisplay); - // hidden submit button in a form document.querySelectorAll('.hidden-form input') .forEach(t => t.onchange = revealForm); @@ -78,24 +70,6 @@ function revealForm(e) { } -function updateDisplay(e) { - // used in set reading goal - var key = e.target.getAttribute('data-id'); - var value = e.target.getAttribute('data-value'); - window.localStorage.setItem(key, value); - - document.querySelectorAll('[data-hide="' + key + '"]') - .forEach(t => setDisplay(t)); -} - -function setDisplay(el) { - // used in set reading goal - var key = el.getAttribute('data-hide'); - var value = window.localStorage.getItem(key); - addRemoveClass(el, 'hidden', value); -} - - function toggleAction(e) { var el = e.currentTarget; var pressed = el.getAttribute('aria-pressed') == 'false';