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 f9c2954a3a658526e8cb58fc52e90d06da570313..3d4e663dbcfd54dab07ba425e7a001e4e03ed5e2 100644 --- a/lib/docs/index.html +++ b/lib/docs/index.html @@ -654,7 +654,13 @@ -- 2.54.0 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 | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/lib/docs/main.js b/lib/docs/main.js index 3072918b32bcd9ff6741f5bef466e0e3ccb8a1f4..57cdd3c5130167660ec784a3a60a3119e2ef1ce1 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,19 +3256,18 @@ var zigAnalysis; function onWindowKeyDown(ev) { switch (getKeyString(ev)) { case "Esc": - if (!domHelpModal.classList.contains("hidden")) { - domHelpModal.classList.add("hidden"); + onEscape(ev); + break; + case "s": + if (domHelpModal.classList.contains("hidden")) { + // TODO: scroll the page to the very top + domSearch.focus(); + domSearch.select(); ev.preventDefault(); ev.stopPropagation(); + startAsyncSearch(); } break; - case "s": - domSearch.focus(); - domSearch.select(); - ev.preventDefault(); - ev.stopPropagation(); - startAsyncSearch(); - break; case "?": ev.preventDefault(); ev.stopPropagation(); @@ -3273,6 +3283,7 @@ var zigAnalysis; domHelpModal.style.top = window.innerHeight / 2 - domHelpModal.clientHeight / 2 + "px"; domHelpModal.focus(); + domSearch.blur(); } function clearAsyncSearch() { -- 2.54.0 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 57cdd3c5130167660ec784a3a60a3119e2ef1ce1..b6a6e8332b488cc298ad96a1eec435aff46ac291 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(); -- 2.54.0 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 b6a6e8332b488cc298ad96a1eec435aff46ac291..44a7c88572a6097565c776b0fe83594566f39ebf 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"); -- 2.54.0 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 44a7c88572a6097565c776b0fe83594566f39ebf..680fc1d962afbbb89a1db7f267a6fd6a11bcde8e 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(); -- 2.54.0 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 37025c4e72a93bbe67939bbedaccc1a8178fea90..236923c1d89952bd3d34dd0391c3f7047b05be58 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 680fc1d962afbbb89a1db7f267a6fd6a11bcde8e..e2b5162beb326b7148d610750994ab118a3e5f5a 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(); -- 2.54.0