diff --git a/src/Typeahead.svelte b/src/Typeahead.svelte index 3b30532..3989b19 100644 --- a/src/Typeahead.svelte +++ b/src/Typeahead.svelte @@ -73,9 +73,10 @@ async function select() { const result = results[selectedIndex]; - if (result.disabled) return; - - const selectedValue = extract(result.original); + if (result?.disabled) return; + + const original = result ? result.original : null; + const selectedValue = original ? extract(original) : null; const searchedValue = value; if (inputAfterSelect == "clear") value = ""; @@ -85,9 +86,10 @@ selectedIndex, searched: searchedValue, selected: selectedValue, - original: result.original, - originalIndex: result.index, + original: original, + originalIndex: result?.index ?? null, }); + selectedIndex = -1; await tick(); @@ -215,7 +217,7 @@ on:blur on:keydown on:keydown={(e) => { - if (results.length === 0) return; + if (results.length === 0 && e.key !== 'Enter') return; switch (e.key) { case "Enter":