mirror of
https://github.com/infinilabs/coco-app.git
synced 2026-09-01 19:51:52 +02:00
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:
@@ -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
|
||||
|
||||
|
||||
@@ -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 || "");
|
||||
|
||||
@@ -120,7 +120,7 @@ export function useSearch() {
|
||||
type: id,
|
||||
},
|
||||
document: {
|
||||
index: 1000000,
|
||||
index: -1,
|
||||
id,
|
||||
category: id,
|
||||
payload: {
|
||||
|
||||
Reference in New Issue
Block a user