Add Cards search: wrap arrow-key selection around the result list

Closes #29

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-26 21:26:22 +00:00
parent d286d3420c
commit cf49d2a68d

View File

@@ -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]);