Fix search always selected the 1st suggestion on enter

This commit is contained in:
WardPearce
2026-02-14 05:26:32 +13:00
parent c151198e94
commit c8cd692b78
@@ -39,6 +39,7 @@
}
function onSubmit(event: Event | undefined = undefined) {
clearTimeout(debounceTimer);
event?.preventDefault();
goToSearch(search);
@@ -51,6 +52,7 @@
function handleKeyDown(event: KeyboardEvent) {
if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
event.preventDefault();
const direction = event.key === 'ArrowUp' ? -1 : 1;
const container = document.querySelector('.suggestions-container');
if (container) {
@@ -73,12 +75,18 @@
}
}
} else if (event.key === 'Enter' && selectedSuggestionIndex !== -1) {
event.preventDefault();
search = suggestionsForSearch[selectedSuggestionIndex];
onSubmit();
} else if ((event.ctrlKey || event.metaKey) && event.key === 'k') {
event.preventDefault();
resetSearch();
event.preventDefault();
} else if (event.key === 'Escape') {
event.preventDefault();
resetSearch();
}
}
@@ -139,6 +147,7 @@
bind:value={search}
onkeydown={handleKeyDown}
onkeyup={(event) => {
event.preventDefault();
if (event.key === 'Enter') {
onSubmit();
} else {
@@ -156,6 +165,7 @@
search = suggestion;
onSubmit();
}}
type="reset"
class="transparent suggestion"
class:selected={index === selectedSuggestionIndex}
>
@@ -171,6 +181,7 @@
onclick={() => {
search = history;
}}
type="reset"
class="transparent suggestion"
>
<div>{history}</div>