diff options
author | Lia Lenckowski <lialenck@protonmail.com> | 2023-08-09 23:46:30 +0200 |
---|---|---|
committer | Lia Lenckowski <lialenck@protonmail.com> | 2023-08-09 23:46:30 +0200 |
commit | 07c60f4f45685bc97510e4938aef0f36b63a542e (patch) | |
tree | 8a9834a4b01d11e1c0ed8ec4f380c545f73348d7 /frontend/start.ts | |
parent | a6a8ad317d42ad29f0902f9ae1f820d92f9bf737 (diff) | |
download | fastbangs-07c60f4f45685bc97510e4938aef0f36b63a542e.tar fastbangs-07c60f4f45685bc97510e4938aef0f36b63a542e.tar.bz2 fastbangs-07c60f4f45685bc97510e4938aef0f36b63a542e.tar.zst |
css/infrastructure for bang search suggestions dropdown
Diffstat (limited to 'frontend/start.ts')
-rw-r--r-- | frontend/start.ts | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/frontend/start.ts b/frontend/start.ts index c7d50d2..3b4ca1e 100644 --- a/frontend/start.ts +++ b/frontend/start.ts @@ -30,22 +30,54 @@ export function section_engine_select() { } }) + const searchResults = e("ul", {class: "dropdown"}) + const input = e("input", {type: "text"}) input.addEventListener("keydown", ev => { if (ev.code == "Enter") select(input.value) }) + input.addEventListener("keyup", _ => { + setSearchResults(searchResults, input) + }) const submit = e("button", {}, "Select") submit.addEventListener("click", () => select(input.value)) - listing.append(e("li", {}, + const inputLi = e("li", {id: "select-engine-li"}, e("label", {}, "Select other engine by bang:"), input, - submit - )) + submit, + searchResults + ) + + listing.append(inputLi) return e("section", { class: "engine-select" }, e("h2", {}, "Select a search engine"), listing ) } + +function setSearchResults(ul, input) { + bangs.then(bangs => { + ul.innerHTML = "" + + let results = bangs[input.value] ? [bangs[input.value]] : [] + + if (results.length === 0) + ul.style.display = "none" + else { + ul.style.display = "flex" + for (const r of results) { + const li = e("li", {}, + e("p", {class: "name"}, r.name), + e("p", {class: "bang"}, "TODO")) + li.addEventListener("click", () => { + input.value = "TODO" + }) + ul.appendChild(li) + } + console.log(ul) + } + }) +} |