Просмотр исходного кода

fix(app): support ctrl-n/p in lists (#10036)

Ryan Miville 2 месяцев назад
Родитель
Сommit
9aa54fd71b
1 измененных файлов с 9 добавлено и 0 удалено
  1. 9 0
      packages/ui/src/hooks/use-filtered-list.tsx

+ 9 - 0
packages/ui/src/hooks/use-filtered-list.tsx

@@ -82,6 +82,15 @@ export function useFilteredList<T>(props: FilteredListProps<T>) {
       const selectedIndex = flat().findIndex((x) => props.key(x) === list.active())
       const selected = flat()[selectedIndex]
       if (selected) props.onSelect?.(selected, selectedIndex)
+    } else if (event.ctrlKey && !event.metaKey && !event.altKey && !event.shiftKey) {
+      if (event.key === "n" || event.key === "p") {
+        event.preventDefault()
+        const navEvent = new KeyboardEvent("keydown", {
+          key: event.key === "n" ? "ArrowDown" : "ArrowUp",
+          bubbles: true,
+        })
+        list.onKeyDown(navEvent)
+      }
     } else {
       // Skip list navigation for text editing shortcuts (e.g., Option+Arrow, Option+Backspace on macOS)
       if (event.altKey || event.metaKey) return