all repos — searchix @ 84acac6ddf46351d4c049c7bb25d72584b2c0fb7

Search engine for NixOS, nix-darwin, home-manager and NUR users

fix(js): make reload after error execute attempted search

Alan Pearce
commit

84acac6ddf46351d4c049c7bb25d72584b2c0fb7

parent

00ff3a75357d295d2f7432888a146954ed9f0b7a

1 file changed, 7 insertions(+), 6 deletions(-)

changed files
M frontend/static/search.jsfrontend/static/search.js
@@ -66,6 +66,8 @@ }
async function getResults(url) { try { + state.url = url.toJSON(); + history.pushState(state, null, url); const res = await fetch(url, { headers: { fetch: "true",
@@ -74,7 +76,8 @@ });
if (res.ok) { state.fragment = await res.text(); - history.pushState(state, null, url); + state.opened = []; + history.replaceState(state, null, url); renderFragmentHTML(state.fragment); } else { throw new Error(`${res.status} ${res.statusText}: ${await res.text()}`);
@@ -83,16 +86,14 @@ } catch (error) {
range.deleteContents(); range.insertNode(new Text(error.message)); console.error("fetch failed", error); - } finally { - state.url = url.toJSON(); - state.opened = []; - history.pushState(state, null, url); } } search.addEventListener("submit", function (ev) { const url = new URL(this.action); - url.search = new URLSearchParams(new FormData(this)).toString(); + const formData = new FormData(this); + url.search = new URLSearchParams(formData).toString(); + state.input = formData.get("query"); getResults(url); ev.preventDefault(); });