فهرست منبع

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

Ryan Miville 2 ماه پیش
والد
کامیت
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