search key nav fixes
All checks were successful
Build Org Website / build (push) Successful in 43s

This commit is contained in:
gitea-actions
2026-05-14 14:14:40 +01:00
parent cc958b74af
commit a45015fae8
3 changed files with 38 additions and 8 deletions

View File

@@ -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;