diff options
Diffstat (limited to 'static/js')
| -rw-r--r-- | static/js/dropdown.js | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/static/js/dropdown.js b/static/js/dropdown.js index 0bfcc88..5b1fb25 100644 --- a/static/js/dropdown.js +++ b/static/js/dropdown.js @@ -13,23 +13,29 @@ function initDropdowns() { trigger.addEventListener("click", function () { dropdown.classList.toggle("open"); - if (dropdown.classList.contains("open")) { + if (dropdown.classList.contains("open") && search) { search.value = ""; filterOptions(""); search.focus(); } }); - search.addEventListener("input", function () { - filterOptions(search.value.toLowerCase()); - }); + if (search) { + search.addEventListener("input", function () { + filterOptions(search.value.toLowerCase()); + }); + } options.forEach(function (option) { option.addEventListener("click", function () { - hiddenInput.value = option.dataset.value; - label.textContent = option.dataset.label; - label.classList.remove("text-zinc-500"); - label.classList.add("text-zinc-200"); + if (hiddenInput) { + hiddenInput.value = option.dataset.value; + } + if (label) { + label.textContent = option.dataset.label; + label.classList.remove("text-zinc-500"); + label.classList.add("text-zinc-200"); + } options.forEach(function (other) { other.classList.remove("selected"); @@ -47,7 +53,9 @@ function initDropdowns() { option.style.display = matches ? "" : "none"; if (matches) visibleCount++; }); - empty.classList.toggle("hidden", visibleCount > 0); + if (empty) { + empty.classList.toggle("hidden", visibleCount > 0); + } } document.addEventListener("click", function (event) { |
