From cf49d2a68d75a6c45d4f54d6555cff3c70389b42 Mon Sep 17 00:00:00 2001 From: Garrett Mills Date: Mon, 26 Oct 2026 21:26:22 +0000 Subject: [PATCH] Add Cards search: wrap arrow-key selection around the result list Closes #29 Co-Authored-By: Claude Opus 5.5 --- src/components.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components.tsx b/src/components.tsx index 5f1ffa3..6ce5f05 100644 --- a/src/components.tsx +++ b/src/components.tsx @@ -629,12 +629,13 @@ export const CardSearchBox = forwardRef< } function onKeyDown(e: React.KeyboardEvent) { - if (e.key === "ArrowDown") { + // ↑/↓ wrap around the ends of the list. + if (e.key === "ArrowDown" && results.length > 0) { e.preventDefault(); - setSel((s) => Math.min(s + 1, results.length - 1)); - } else if (e.key === "ArrowUp") { + setSel((s) => (s + 1) % results.length); + } else if (e.key === "ArrowUp" && results.length > 0) { e.preventDefault(); - setSel((s) => Math.max(s - 1, 0)); + setSel((s) => (s - 1 + results.length) % results.length); } else if (e.key === "Enter" && results[sel]) { e.preventDefault(); pick(results[sel]);