aboutsummaryrefslogtreecommitdiff
path: root/static/js
diff options
context:
space:
mode:
Diffstat (limited to 'static/js')
-rw-r--r--static/js/dropdown.js26
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) {