diff --git a/src/lib/components/chat/ModelSelector/Selector.svelte b/src/lib/components/chat/ModelSelector/Selector.svelte index b055cd4eb..868a51404 100644 --- a/src/lib/components/chat/ModelSelector/Selector.svelte +++ b/src/lib/components/chat/ModelSelector/Selector.svelte @@ -44,7 +44,7 @@ let searchValue = ''; let ollamaVersion = null; - let pseudoSelectedIndex = 0; + let selectedModelIdx = 0; $: filteredItems = items.filter( (item) => @@ -205,7 +205,7 @@ bind:open={show} onOpenChange={async () => { searchValue = ''; - pseudoSelectedIndex = 0; // when the dropdown is closed, reset the selected index + selectedModelIdx = 0; window.setTimeout(() => document.getElementById('model-search-input')?.focus(), 0); }} closeFocus={false} @@ -244,19 +244,19 @@ autocomplete="off" on:keydown={(e) => { if (e.code === 'Enter') { - value = filteredItems[pseudoSelectedIndex].value; + value = filteredItems[selectedModelIdx].value; show = false; return; // dont need to scroll on selection } else if (e.code === 'ArrowDown') { - pseudoSelectedIndex = Math.min(pseudoSelectedIndex + 1, filteredItems.length - 1); + selectedModelIdx = Math.min(selectedModelIdx + 1, filteredItems.length - 1); } else if (e.code === 'ArrowUp') { - pseudoSelectedIndex = Math.max(pseudoSelectedIndex - 1, 0); + selectedModelIdx = Math.max(selectedModelIdx - 1, 0); } else { // if the user types something, reset to the top selection. - pseudoSelectedIndex = 0; + selectedModelIdx = 0; } - const item = document.querySelector(`[data-pseudo-selected="true"]`); + const item = document.querySelector(`[data-arrow-selected="true"]`); item?.scrollIntoView({ block: 'center', inline: 'nearest', behavior: 'instant' }); }} /> @@ -270,13 +270,13 @@