From 59085c54966ec1dfabbdcea379d288fa7519c650 Mon Sep 17 00:00:00 2001 From: "amaresh.sm" Date: Fri, 24 Jun 2022 00:01:26 +0530 Subject: [PATCH 1/2] docs: add listener only if element exists --- docs/src/assets/js/search.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/src/assets/js/search.js b/docs/src/assets/js/search.js index 14bf8f7c46e..09f0e1d83b2 100644 --- a/docs/src/assets/js/search.js +++ b/docs/src/assets/js/search.js @@ -92,7 +92,7 @@ function displaySearchResults(results) { //----------------------------------------------------------------------------- // listen for input changes -searchInput.addEventListener('keyup', function (e) { +searchInput && searchInput.addEventListener('keyup', function (e) { const query = searchInput.value; if(query.length) searchClearBtn.removeAttribute('hidden'); @@ -111,13 +111,13 @@ searchInput.addEventListener('keyup', function (e) { } }); -resultsElement.addEventListener('keydown', function(e) { +resultsElement && resultsElement.addEventListener('keydown', function(e) { if(e.key === "Escape") { clearSearchResults(); } }, true); -searchClearBtn.addEventListener('click', function(e) { +searchClearBtn && searchClearBtn.addEventListener('click', function(e) { searchInput.value = ''; searchInput.focus(); clearSearchResults(); From 5dfef411334e3cc3e6479c459f6404ad3a3d5f08 Mon Sep 17 00:00:00 2001 From: "amaresh.sm" Date: Fri, 24 Jun 2022 00:04:47 +0530 Subject: [PATCH 2/2] docs: check before accessing --- docs/src/assets/js/search.js | 57 +++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/docs/src/assets/js/search.js b/docs/src/assets/js/search.js index 09f0e1d83b2..e16458aa236 100644 --- a/docs/src/assets/js/search.js +++ b/docs/src/assets/js/search.js @@ -92,33 +92,36 @@ function displaySearchResults(results) { //----------------------------------------------------------------------------- // listen for input changes -searchInput && searchInput.addEventListener('keyup', function (e) { - const query = searchInput.value; - - if(query.length) searchClearBtn.removeAttribute('hidden'); - else searchClearBtn.setAttribute('hidden', ''); - - if (query.length > 2) { - fetchSearchResults(query) - .then(displaySearchResults) - .catch(clearSearchResults); +if(searchInput) + searchInput.addEventListener('keyup', function (e) { + const query = searchInput.value; + + if(query.length) searchClearBtn.removeAttribute('hidden'); + else searchClearBtn.setAttribute('hidden', ''); + + if (query.length > 2) { + fetchSearchResults(query) + .then(displaySearchResults) + .catch(clearSearchResults); + + document.addEventListener('click', function(e) { + if(e.target !== resultsElement) clearSearchResults(); + }); + } else { + clearSearchResults(); + } + }); - document.addEventListener('click', function(e) { - if(e.target !== resultsElement) clearSearchResults(); - }); - } else { - clearSearchResults(); - } -}); +if(resultsElement) + resultsElement.addEventListener('keydown', function(e) { + if(e.key === "Escape") { + clearSearchResults(); + } + }, true); -resultsElement && resultsElement.addEventListener('keydown', function(e) { - if(e.key === "Escape") { +if(searchClearBtn) + searchClearBtn.addEventListener('click', function(e) { + searchInput.value = ''; + searchInput.focus(); clearSearchResults(); - } -}, true); - -searchClearBtn && searchClearBtn.addEventListener('click', function(e) { - searchInput.value = ''; - searchInput.focus(); - clearSearchResults(); -}); + });