From dc5174440ca547d787b85d407b6836a77688610b Mon Sep 17 00:00:00 2001 From: r00ster91 Date: Sun, 14 Aug 2022 11:28:12 +0200 Subject: [PATCH 1/8] feat: better No Results Found page This adds some helpful links to the page and makes it look nicer by using etc. --- lib/docs/index.html | 8 +++++++- lib/docs/main.js | 8 ++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/docs/index.html b/lib/docs/index.html index f9c2954a3a..3d4e663dbc 100644 --- a/lib/docs/index.html +++ b/lib/docs/index.html @@ -654,7 +654,13 @@ From 8f6f4bc7caf09a4399a5f2b1fdf5c966b89bab15 Mon Sep 17 00:00:00 2001 From: r00ster91 Date: Sun, 14 Aug 2022 11:49:44 +0200 Subject: [PATCH 4/8] feat: make modal more restrictive and more Esc freedom This makes it so that you can no longer interact with the search bar or the results or anything while the modal is open. That's why it's a "modal" and not a "dialog". It also makes it so that you can now always press Esc to return to the results or the main page. Previously this was only possible when the search field was active. --- lib/docs/main.js | 45 ++++++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/lib/docs/main.js b/lib/docs/main.js index 3072918b32..57cdd3c513 100644 --- a/lib/docs/main.js +++ b/lib/docs/main.js @@ -3148,6 +3148,22 @@ var zigAnalysis; domSearch.blur(); } + function onEscape(ev) { + if (!domHelpModal.classList.contains("hidden")) { + domHelpModal.classList.add("hidden"); + ev.preventDefault(); + ev.stopPropagation(); + } else { + domSearch.value = ""; + domSearch.blur(); + domSearchPlaceholder.classList.remove("hidden"); + curSearchIndex = -1; + ev.preventDefault(); + ev.stopPropagation(); + startSearch(); + } + } + function onSearchKeyDown(ev) { switch (getKeyString(ev)) { case "Enter": @@ -3164,13 +3180,8 @@ var zigAnalysis; ev.stopPropagation(); return; case "Esc": - domSearch.value = ""; - domSearch.blur(); - curSearchIndex = -1; - ev.preventDefault(); - ev.stopPropagation(); - startSearch(); - return; + onEscape(ev); + return case "Up": moveSearchCursor(-1); ev.preventDefault(); @@ -3245,18 +3256,17 @@ var zigAnalysis; function onWindowKeyDown(ev) { switch (getKeyString(ev)) { case "Esc": - if (!domHelpModal.classList.contains("hidden")) { - domHelpModal.classList.add("hidden"); - ev.preventDefault(); - ev.stopPropagation(); - } + onEscape(ev); break; case "s": - domSearch.focus(); - domSearch.select(); - ev.preventDefault(); - ev.stopPropagation(); - startAsyncSearch(); + if (domHelpModal.classList.contains("hidden")) { + // TODO: scroll the page to the very top + domSearch.focus(); + domSearch.select(); + ev.preventDefault(); + ev.stopPropagation(); + startAsyncSearch(); + } break; case "?": ev.preventDefault(); @@ -3273,6 +3283,7 @@ var zigAnalysis; domHelpModal.style.top = window.innerHeight / 2 - domHelpModal.clientHeight / 2 + "px"; domHelpModal.focus(); + domSearch.blur(); } function clearAsyncSearch() { From 2723d8e6e2fea6229a8f9082bc991cb7bef39054 Mon Sep 17 00:00:00 2001 From: r00ster91 Date: Sun, 14 Aug 2022 11:51:43 +0200 Subject: [PATCH 5/8] style: format Some formatting, apparently. --- lib/docs/main.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/docs/main.js b/lib/docs/main.js index 57cdd3c513..b6a6e8332b 100644 --- a/lib/docs/main.js +++ b/lib/docs/main.js @@ -117,10 +117,10 @@ var zigAnalysis; }); domSectSearchAllResultsLink.addEventListener('click', onClickSearchShowAllResults, false); function onClickSearchShowAllResults(ev) { - ev.preventDefault(); - ev.stopPropagation(); - searchTrimResults = false; - onHashChange(); + ev.preventDefault(); + ev.stopPropagation(); + searchTrimResults = false; + onHashChange(); } domPrivDeclsBox.addEventListener( @@ -3309,7 +3309,7 @@ var zigAnalysis; list.sort(); return list; } - + function renderSearch() { let matchedItems = []; let ignoreCase = curNavSearch.toLowerCase() === curNavSearch; @@ -3398,13 +3398,13 @@ var zigAnalysis; const text = lastPkgName + "." + match.path.declNames.join("."); const href = navLink(match.path.pkgNames, match.path.declNames); - matchedItemsHTML += "
  • "+ text + "
  • "; + matchedItemsHTML += "
  • " + text + "
  • "; } // Replace the search results using our newly constructed HTML string domListSearchResults.innerHTML = matchedItemsHTML; if (searchTrimmed) { - domSectSearchAllResultsLink.classList.remove("hidden"); + domSectSearchAllResultsLink.classList.remove("hidden"); } renderSearchCursor(); From e5379e5027d33f5954fc7daa00b835a374f57272 Mon Sep 17 00:00:00 2001 From: r00ster91 Date: Sun, 14 Aug 2022 12:09:17 +0200 Subject: [PATCH 6/8] docs: add comment --- lib/docs/main.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/docs/main.js b/lib/docs/main.js index b6a6e8332b..44a7c88572 100644 --- a/lib/docs/main.js +++ b/lib/docs/main.js @@ -3148,6 +3148,7 @@ var zigAnalysis; domSearch.blur(); } + // hide the modal if it's visible or return to the previous result page and unfocus the search function onEscape(ev) { if (!domHelpModal.classList.contains("hidden")) { domHelpModal.classList.add("hidden"); From af20dfae60bb5c1c1ae0db25339e1f4ad5f8a2e7 Mon Sep 17 00:00:00 2001 From: r00ster91 Date: Sun, 14 Aug 2022 12:20:26 +0200 Subject: [PATCH 7/8] bug: add TODO --- lib/docs/main.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/docs/main.js b/lib/docs/main.js index 44a7c88572..680fc1d962 100644 --- a/lib/docs/main.js +++ b/lib/docs/main.js @@ -3189,6 +3189,7 @@ var zigAnalysis; ev.stopPropagation(); return; case "Down": + // TODO: make the page scroll down if the search cursor is out of the screen moveSearchCursor(1); ev.preventDefault(); ev.stopPropagation(); From 78bb29d1dc45acedf7ec8990e1ca2c47978b5087 Mon Sep 17 00:00:00 2001 From: r00ster91 Date: Sun, 14 Aug 2022 19:17:20 +0200 Subject: [PATCH 8/8] fix: scroll page to very top when S is pressed Credits go to @rudedogg --- lib/docs/index.html | 2 +- lib/docs/main.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/docs/index.html b/lib/docs/index.html index 37025c4e72..236923c1d8 100644 --- a/lib/docs/index.html +++ b/lib/docs/index.html @@ -612,7 +612,7 @@ -
    +
    diff --git a/lib/docs/main.js b/lib/docs/main.js index 680fc1d962..e2b5162beb 100644 --- a/lib/docs/main.js +++ b/lib/docs/main.js @@ -41,7 +41,7 @@ var zigAnalysis; const domSearch = document.getElementById("search"); const domSectSearchResults = document.getElementById("sectSearchResults"); const domSectSearchAllResultsLink = document.getElementById("sectSearchAllResultsLink"); - + const domDocs = document.getElementById("docs"); const domListSearchResults = document.getElementById("listSearchResults"); const domSectSearchNoResults = document.getElementById("sectSearchNoResults"); const domSectInfo = document.getElementById("sectInfo"); @@ -3262,9 +3262,9 @@ var zigAnalysis; break; case "s": if (domHelpModal.classList.contains("hidden")) { - // TODO: scroll the page to the very top domSearch.focus(); domSearch.select(); + domDocs.scrollTo(0, 0); ev.preventDefault(); ev.stopPropagation(); startAsyncSearch();