fix: fix problem with up and down key indexing (#676)

* fix: fix problem with up and down key indexing

* refactor: update

* docs: update changelog
This commit is contained in:
ayangweb
2025-06-13 10:39:27 +08:00
committed by GitHub
parent 0b018cd24f
commit dc5cd9aecb
3 changed files with 31 additions and 9 deletions

View File

@@ -37,6 +37,7 @@ Information about release notes of Coco Server is provided here.
- fix: web page unmount event #645
- fix: fix the problem of local path not opening #650
- fix: number keys not following settings #661
- fix: fix problem with up and down key indexing #676
### ✈️ Improvements

View File

@@ -52,20 +52,41 @@ export function useKeyboardNavigation({
const modifierKeyPressed = getModifierKeyPressed(e);
const indexes = suggests.map((item) => item.document.index!);
if (e.key === "ArrowUp") {
e.preventDefault();
//console.log("ArrowUp pressed", selectedIndex, suggests.length);
setSelectedIndex((prev) =>
prev === null || prev === 0 ? suggests.length - 1 : prev - 1
);
// console.log("ArrowUp pressed", selectedIndex, suggests.length);
setSelectedIndex((prev) => {
if (prev == null) {
return Math.min(...indexes);
}
const nextIndex = prev - 1;
if (indexes.includes(nextIndex)) {
return nextIndex;
}
return Math.max(...indexes);
});
} else if (e.key === "ArrowDown") {
e.preventDefault();
//console.log("ArrowDown pressed", selectedIndex, suggests.length);
setSelectedIndex((prev) =>
prev === null || prev === suggests.length - 1 ? 0 : prev + 1
);
setSelectedIndex((prev) => {
if (prev == null) {
return Math.min(...indexes);
}
const nextIndex = prev + 1;
if (indexes.includes(nextIndex)) {
return nextIndex;
}
return Math.min(...indexes);
});
} else if (modifierKeyPressed) {
e.preventDefault();
if (selectedIndex !== null) {
const item = globalItemIndexMap[selectedIndex];
setSelectedName(item?.source?.name || "");

View File

@@ -120,7 +120,7 @@ export function useSearch() {
type: id,
},
document: {
index: 1000000,
index: -1,
id,
category: id,
payload: {