From 1b2b4f21fd9388b8415762e4c8e03cc86169b4d2 Mon Sep 17 00:00:00 2001 From: Tony Peng Date: Fri, 20 Sep 2024 16:56:40 +0800 Subject: [PATCH] Trigger search event when user presses Ctrl + K (#804) Co-authored-by: Mimi --- source/js/third-party/search/algolia-search.js | 7 +++++++ source/js/third-party/search/local-search.js | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/source/js/third-party/search/algolia-search.js b/source/js/third-party/search/algolia-search.js index 10a70c3..6a07078 100644 --- a/source/js/third-party/search/algolia-search.js +++ b/source/js/third-party/search/algolia-search.js @@ -114,6 +114,13 @@ document.addEventListener('DOMContentLoaded', () => { }); document.querySelector('.popup-btn-close').addEventListener('click', onPopupClose); document.addEventListener('pjax:success', onPopupClose); + window.addEventListener('keydown', event => { + if ((event.ctrlKey || event.metaKey) && event.key === 'k') { + event.preventDefault(); + document.body.classList.add('search-active'); + setTimeout(() => input.focus(), 500); + } + }); window.addEventListener('keyup', event => { if (event.key === 'Escape') { onPopupClose(); diff --git a/source/js/third-party/search/local-search.js b/source/js/third-party/search/local-search.js index 0bcdeac..1241f92 100644 --- a/source/js/third-party/search/local-search.js +++ b/source/js/third-party/search/local-search.js @@ -79,6 +79,14 @@ document.addEventListener('DOMContentLoaded', () => { localSearch.highlightSearchWords(document.querySelector('.post-body')); onPopupClose(); }); + window.addEventListener('keydown', event => { + if ((event.ctrlKey || event.metaKey) && event.key === 'k') { + event.preventDefault(); + document.body.classList.add('search-active'); + setTimeout(() => input.focus(), 500); + if (!localSearch.isfetched) localSearch.fetchData(); + } + }); window.addEventListener('keyup', event => { if (event.key === 'Escape') { onPopupClose();