From 2d88a78cf3a2b636e7d6cadb05ed58299c1cfd72 Mon Sep 17 00:00:00 2001 From: Ole Eskild Steensen Date: Sun, 8 Jan 2023 15:55:12 +0100 Subject: [PATCH] Visual feedback when search is loading --- .../_includes/components/searchContainer.njk | 2 +- .../_includes/components/searchScript.njk | 46 ++++++++++++++++++- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/src/site/_includes/components/searchContainer.njk b/src/site/_includes/components/searchContainer.njk index 5f986ce..8de8fee 100644 --- a/src/site/_includes/components/searchContainer.njk +++ b/src/site/_includes/components/searchContainer.njk @@ -8,7 +8,7 @@ diff --git a/src/site/_includes/components/searchScript.njk b/src/site/_includes/components/searchScript.njk index 367da67..39fbdc3 100644 --- a/src/site/_includes/components/searchScript.njk +++ b/src/site/_includes/components/searchScript.njk @@ -11,6 +11,48 @@ } } + const loadingSvg = ` + + + + + + + + + + + + + + + +`; + function debounce(func, wait, immediate) { var timeout; return function() { @@ -111,7 +153,7 @@ } }); - const debouncedSearch = debounce(search, 250, false); + const debouncedSearch = debounce(search, 200, false); field = document.querySelector('#term'); field.addEventListener('keydown', (e) => { if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp') { @@ -137,6 +179,8 @@ if(search == lastSearch) return; console.log(`search for ${search}`); window.lastSearch = search; + + resultsDiv.innerHTML = loadingSvg; let searchRequest = await fetch(`/api/search?term=${encodeURIComponent(search)}`); let results = await searchRequest.json(); let resultsHTML = '';