From c5ae6c3d3a5e736d87f8914eb8c6fcce16908cc3 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Fri, 5 Jan 2024 17:13:15 +0800 Subject: [PATCH] :art: fix https://github.com/siyuan-note/siyuan/issues/10083 --- app/src/util/upDownHint.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/app/src/util/upDownHint.ts b/app/src/util/upDownHint.ts index 3b2b39969..35bc760a2 100644 --- a/app/src/util/upDownHint.ts +++ b/app/src/util/upDownHint.ts @@ -59,5 +59,35 @@ export const upDownHint = (listElement: Element, event: KeyboardEvent, classActi currentHintElement.scrollIntoView(overTop); } return currentHintElement; + } else if (event.key === "Home") { + event.preventDefault(); + event.stopPropagation(); + currentHintElement.classList.remove(classActiveName); + currentHintElement = listElement.children[0] as HTMLElement; + while (currentHintElement && + (currentHintElement.classList.contains("fn__none") || !currentHintElement.classList.contains(className))) { + currentHintElement = currentHintElement.nextElementSibling as HTMLElement; + } + if (!currentHintElement) { + return; + } + currentHintElement.classList.add(classActiveName); + currentHintElement.scrollIntoView(); + return currentHintElement; + } else if (event.key === "End") { + event.preventDefault(); + event.stopPropagation(); + currentHintElement.classList.remove(classActiveName); + currentHintElement = listElement.children[listElement.children.length - 1] as HTMLElement; + while (currentHintElement && + (currentHintElement.classList.contains("fn__none") || !currentHintElement.classList.contains(className))) { + currentHintElement = currentHintElement.previousElementSibling as HTMLElement; + } + if (!currentHintElement) { + return; + } + currentHintElement.classList.add(classActiveName); + currentHintElement.scrollIntoView(false); + return currentHintElement; } };