diff --git a/src/components/tools/VirtualSelect.svelte b/src/components/tools/VirtualSelect.svelte index 9e906c84..2822f9ca 100644 --- a/src/components/tools/VirtualSelect.svelte +++ b/src/components/tools/VirtualSelect.svelte @@ -166,16 +166,18 @@ updateVisibleItems(); } - // Initialize container size observer and autofocus - onMount(() => { + // Initialize container size observer and autofocus fallback + onMount(async () => { if (container) { const resizeObserver = new ResizeObserver(updateVisibleCount); resizeObserver.observe(container); - if (autofocus && inputElement) { - inputElement.focus(); - } return () => resizeObserver.disconnect(); } + // Fallback autofocus with tick to ensure inputElement is bound + if (autofocus && inputElement) { + await tick(); + inputElement.focus(); + } }); // Get display text for the input @@ -204,6 +206,7 @@ class="w-full bg-transparent focus:outline-none {selected ? 'text-black' : 'text-gray-700'}" + {autofocus} on:focus={handleInputFocus} on:input={handleInput} on:keydown={(e) => {