From e00ee66cf5fe2aefb98a7653b29e4f025cbd6f36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Istv=C3=A1n=20Pat=C3=B3?= Date: Wed, 5 Jan 2022 15:32:07 +0100 Subject: [PATCH] fix(ComboBox): selectedIndex prog. setting on filtered items --- src/ComboBox/ComboBox.svelte | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/ComboBox/ComboBox.svelte b/src/ComboBox/ComboBox.svelte index f37f3675..4949b5c6 100644 --- a/src/ComboBox/ComboBox.svelte +++ b/src/ComboBox/ComboBox.svelte @@ -138,6 +138,7 @@ ref?.focus(); } + let prevInputValue; afterUpdate(() => { if (open) { ref.focus(); @@ -164,13 +165,8 @@ highlightedIndex = -1; highlightedId = undefined; } else { - if (filteredItems?.length === 1) { - selectedId = filteredItems[0].id; - selectedItem = filteredItems[0]; - } else { - selectedId = items[selectedIndex].id; - selectedItem = items[selectedIndex]; - } + selectedId = items[selectedIndex].id; + selectedItem = items[selectedIndex]; } dispatch("select", { selectedId, selectedIndex, selectedItem }); } @@ -268,8 +264,8 @@ inputValue = filteredItems[selectedIndex].text; selectedItem = filteredItems[selectedIndex]; selectedId = filteredItems[selectedIndex].id; - } else { } + selectedIndex = items.findIndex((item) => item.id === selectedId); } else { selectedIndex = 0; open = false; @@ -278,6 +274,9 @@ inputValue = filteredItems[selectedIndex].text; selectedItem = filteredItems[selectedIndex]; selectedId = filteredItems[selectedIndex].id; + selectedIndex = items.findIndex( + (item) => item.id === selectedId + ); } } } else if (key === 'Tab') {