From 7d625ab7b8e9216ea6301162176dbe3af0c2a19f Mon Sep 17 00:00:00 2001 From: Shanmughapriyan S Date: Sat, 24 Dec 2022 19:51:53 +0530 Subject: [PATCH 1/3] fix: searchbar focus on `Esc` press --- src/assets/js/search.js | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/assets/js/search.js b/src/assets/js/search.js index 75149e026..29e5f5fd7 100644 --- a/src/assets/js/search.js +++ b/src/assets/js/search.js @@ -108,7 +108,7 @@ function maintainScrollVisibility(activeElement, scrollParent) { else if (isBelow) { scrollParent.scrollTo(0, offsetTop - parentOffsetHeight + offsetHeight); } - + } function debounce(callback, delay) { let timerId; @@ -134,7 +134,7 @@ const debouncedFetchSearchResults = debounce((query) => { searchInput.addEventListener('keyup', function (e) { const query = searchInput.value; - if(query === searchQuery) return; + if (query === searchQuery) return; if (query.length) searchClearBtn.removeAttribute('hidden'); else searchClearBtn.setAttribute('hidden', ''); @@ -142,8 +142,8 @@ searchInput.addEventListener('keyup', function (e) { if (query.length > 2) { debouncedFetchSearchResults(query); - document.addEventListener('click', function(e) { - if(e.target !== resultsElement) clearSearchResults(); + document.addEventListener('click', function (e) { + if (e.target !== resultsElement) clearSearchResults(); }); } else { clearSearchResults(); @@ -152,28 +152,31 @@ searchInput.addEventListener('keyup', function (e) { searchQuery = query }); -searchClearBtn.addEventListener('click', function(e) { +searchClearBtn.addEventListener('click', function (e) { searchInput.value = ''; searchInput.focus(); clearSearchResults(); searchClearBtn.setAttribute('hidden', ''); }); -document.addEventListener('keydown', function(e) { +document.addEventListener('keydown', function (e) { + + const searchResults = Array.from(document.querySelectorAll('.search-results__item')); - if(e.key === 'Escape'){ + if (e.key === 'Escape') { e.preventDefault(); - clearSearchResults(); - searchInput.focus(); + if (searchResults.length) { + clearSearchResults(); + searchInput.focus(); + } } - if((e.metaKey || e.ctrlKey) && e.key === 'k'){ + if ((e.metaKey || e.ctrlKey) && e.key === 'k') { e.preventDefault(); searchInput.focus(); - document.querySelector('.search').scrollIntoView({behaviour:"smooth",block: "start"}); + document.querySelector('.search').scrollIntoView({ behaviour: "smooth", block: "start" }); } - const searchResults = Array.from(document.querySelectorAll('.search-results__item')); if (!searchResults.length) return; switch (e.key) { From 1a281cea029d7abf83a35b2af749d464a3265bd5 Mon Sep 17 00:00:00 2001 From: Shanmughapriyan S Date: Sat, 24 Dec 2022 22:26:40 +0530 Subject: [PATCH 2/3] fix: blur input field --- src/assets/js/search.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/assets/js/search.js b/src/assets/js/search.js index 29e5f5fd7..a70fdef62 100644 --- a/src/assets/js/search.js +++ b/src/assets/js/search.js @@ -168,6 +168,8 @@ document.addEventListener('keydown', function (e) { if (searchResults.length) { clearSearchResults(); searchInput.focus(); + } else if (!searchResults.length && document.activeElement === searchInput) { + searchInput.blur() } } From 51b967d57c5f6c76d6c5c631bde09fb12889a9f4 Mon Sep 17 00:00:00 2001 From: Shanmughapriyan S Date: Sat, 24 Dec 2022 22:43:47 +0530 Subject: [PATCH 3/3] chore: add semi colon --- src/assets/js/search.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/js/search.js b/src/assets/js/search.js index a70fdef62..f5bf11aae 100644 --- a/src/assets/js/search.js +++ b/src/assets/js/search.js @@ -169,7 +169,7 @@ document.addEventListener('keydown', function (e) { clearSearchResults(); searchInput.focus(); } else if (!searchResults.length && document.activeElement === searchInput) { - searchInput.blur() + searchInput.blur(); } }