diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-04-20 11:12:55 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-04-20 12:34:29 -0300 |
commit | 24fad7940d75da3d987dd8118e288d1e63d98119 (patch) | |
tree | 4a506c1c4a8e8e4741bf4c7ccd5f41b5cdbc4161 /src/static/js | |
parent | 3f2d714478a7c9582c492b9cdacc364cb63f417d (diff) |
client: sidebar-search: I-beam blink for typed filter
Diffstat (limited to 'src/static/js')
-rw-r--r-- | src/static/js/client/sidebar-search.js | 16 | ||||
-rw-r--r-- | src/static/js/search-worker.js | 7 |
2 files changed, 21 insertions, 2 deletions
diff --git a/src/static/js/client/sidebar-search.js b/src/static/js/client/sidebar-search.js index 051ba079..c8f42e91 100644 --- a/src/static/js/client/sidebar-search.js +++ b/src/static/js/client/sidebar-search.js @@ -809,7 +809,7 @@ function showSidebarSearchResults(results) { function tidyResults(results) { const tidiedResults = - results.map(({doc, id}) => ({ + results.results.map(({doc, id}) => ({ reference: id ?? null, referenceType: (id ? id.split(':')[0] : null), directory: (id ? id.split(':')[1] : null), @@ -851,6 +851,8 @@ function fillResultElements(results, { } function showFilterElements(results) { + const {queriedKind} = results; + const tidiedResults = tidyResults(results); const allReferenceTypes = @@ -864,6 +866,18 @@ function showFilterElements(results) { if (allReferenceTypes.includes(type)) { shownAny = true; cssProp(filterLink, 'display', null); + + if (queriedKind) { + filterLink.setAttribute('inert', 'inert'); + } else { + filterLink.removeAttribute('inert'); + } + + if (type === queriedKind) { + filterLink.classList.add('active-from-query'); + } else { + filterLink.classList.remove('active-from-query'); + } } else { cssProp(filterLink, 'display', 'none'); } diff --git a/src/static/js/search-worker.js b/src/static/js/search-worker.js index 5ecb6eb4..8c265735 100644 --- a/src/static/js/search-worker.js +++ b/src/static/js/search-worker.js @@ -373,6 +373,8 @@ function postActionResult(id, status, value) { function performSearchAction({query, options}) { const {generic, verbatim} = indexes; + const {queriedKind} = processTerms(query); + const genericResults = queryGenericIndex(generic, query, options); @@ -388,7 +390,10 @@ function performSearchAction({query, options}) { .filter(({id}) => verbatimIDs.has(id)) : verbatimResults ?? genericResults); - return commonResults; + return { + results: commonResults, + queriedKind, + }; } const interestingFieldCombinations = [ |