const input = document.getElementById("search");
const results = document.getElementById("results");
input.addEventListener("input", function(event) {
const query = event.target.value;
if (query.length == 0) {
results.innerHTML = "";
return;
}
fetch(`/search?q=${query}`)
.then(response => response.json())
.then(data => {
results.innerHTML = "";
data.forEach(result => {
const li = document.createElement("li");
li.textContent = result;
results.appendChild(li);
});
});
});
input.addEventListener("keydown", function(event) {
if (event.key == "ArrowDown") {
const active = results.querySelector(".active");
if (active) {
active.classList.remove("active");
active.nextSibling.classList.add("active");
} else {
results.firstChild.classList.add("active");
}
} else if (event.key == "ArrowUp") {
const active = results.querySelector(".active");
if (active) {
active.classList.remove("active");
active.previousSibling.classList.add("active");
} else {
results.lastChild.classList.add("active");
}
}
});
results.addEventListener("mousedown", function(event) {
input.value = event.target.textContent;
results.innerHTML = "";
});