From 5fbff602f593260b7cb0174544cd12713795de69 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sun, 5 May 2024 12:36:15 -0300 Subject: client: stub persistent "active" search --- src/static/js/client.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'src/static/js/client.js') diff --git a/src/static/js/client.js b/src/static/js/client.js index cd5aeea8..0d6cc4e1 100644 --- a/src/static/js/client.js +++ b/src/static/js/client.js @@ -3575,6 +3575,10 @@ const sidebarSearchInfo = initInfo('sidebarSearchInfo', { stoppedTypingTimeout: null, }, + session: { + activeQuery: null, + }, + settings: { stoppedTyingDelay: 800, }, @@ -3643,8 +3647,20 @@ function addSidebarSearchListeners() { }); } +function initializeSidebarSearchState() { + const info = sidebarSearchInfo; + const {session} = info; + + if (!info.searchInput) return; + + if (session.activeQuery) { + info.searchInput.value = session.activeQuery; + activateSidebarSearch(session.activeQuery); + } +} + async function activateSidebarSearch(query) { - const {state} = sidebarSearchInfo; + const {session, state} = sidebarSearchInfo; if (state.stoppedTypingTimeout) { clearTimeout(state.stoppedTypingTimeout); @@ -3653,13 +3669,17 @@ async function activateSidebarSearch(query) { const results = await searchAll(query, {enrich: true}); + session.activeQuery = query; + showSidebarSearchResults(results); } function clearSidebarSearch() { const info = sidebarSearchInfo; + const {session} = info; info.searchInput.value = ''; + session.activeQuery = ''; hideSidebarSearchResults(); } @@ -3759,6 +3779,7 @@ function hideSidebarSearchResults() { clientSteps.getPageReferences.push(getSidebarSearchReferences); clientSteps.mutatePageContent.push(mutateSidebarSearchContent); clientSteps.addPageListeners.push(addSidebarSearchListeners); +clientSteps.initializeState.push(initializeSidebarSearchState); // Sticky commentary sidebar ------------------------------ -- cgit 1.3.0-6-gf8a5