This commit is contained in:
@@ -228,7 +228,7 @@ function getResultItems() {
|
||||
return Array.from(modalResults.querySelectorAll(".search-modal-result"));
|
||||
}
|
||||
|
||||
function updateActiveResult() {
|
||||
function updateActiveResult(focusActive = false) {
|
||||
const items = getResultItems();
|
||||
|
||||
items.forEach((item, index) => {
|
||||
@@ -242,10 +242,11 @@ function updateActiveResult() {
|
||||
block: "nearest",
|
||||
behavior: "smooth",
|
||||
});
|
||||
if (focusActive) items[activeIndex].focus({ preventScroll: true });
|
||||
}
|
||||
}
|
||||
|
||||
function setActiveResult(index) {
|
||||
function setActiveResult(index, focusActive = false) {
|
||||
const items = getResultItems();
|
||||
if (!items.length) {
|
||||
activeIndex = -1;
|
||||
@@ -253,7 +254,7 @@ function setActiveResult(index) {
|
||||
}
|
||||
|
||||
activeIndex = Math.max(0, Math.min(index, items.length - 1));
|
||||
updateActiveResult();
|
||||
updateActiveResult(focusActive);
|
||||
}
|
||||
|
||||
function openActiveResult() {
|
||||
@@ -339,25 +340,25 @@ function handleSearchKeydown(e) {
|
||||
switch (e.key) {
|
||||
case "ArrowDown":
|
||||
e.preventDefault();
|
||||
if (items.length) setActiveResult(activeIndex + 1);
|
||||
if (items.length) setActiveResult(activeIndex + 1, true);
|
||||
break;
|
||||
|
||||
case "ArrowUp":
|
||||
e.preventDefault();
|
||||
if (items.length) setActiveResult(activeIndex <= 0 ? items.length - 1 : activeIndex - 1);
|
||||
if (items.length) setActiveResult(activeIndex <= 0 ? items.length - 1 : activeIndex - 1, true);
|
||||
break;
|
||||
|
||||
case "Home":
|
||||
if (items.length) {
|
||||
e.preventDefault();
|
||||
setActiveResult(0);
|
||||
setActiveResult(0, true);
|
||||
}
|
||||
break;
|
||||
|
||||
case "End":
|
||||
if (items.length) {
|
||||
e.preventDefault();
|
||||
setActiveResult(items.length - 1);
|
||||
setActiveResult(items.length - 1, true);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user