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) { 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(); e.preventDefault();
setSel((s) => Math.min(s + 1, results.length - 1)); setSel((s) => (s + 1) % results.length);
} else if (e.key === "ArrowUp") { } else if (e.key === "ArrowUp" && results.length > 0) {
e.preventDefault(); e.preventDefault();
setSel((s) => Math.max(s - 1, 0)); setSel((s) => (s - 1 + results.length) % results.length);
} else if (e.key === "Enter" && results[sel]) { } else if (e.key === "Enter" && results[sel]) {
e.preventDefault(); e.preventDefault();
pick(results[sel]); pick(results[sel]);