From 1c2e8690302bad4f22d03736ce5c9c323b8e9808 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Istv=C3=A1n=20Pat=C3=B3?= Date: Thu, 4 Aug 2022 08:32:51 +0200 Subject: [PATCH] fix(ComboBox): selection via typing only find the enabled item, resolves #1222 --- src/ComboBox/ComboBox.svelte | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/src/ComboBox/ComboBox.svelte b/src/ComboBox/ComboBox.svelte index 60d42bd0..48a05283 100644 --- a/src/ComboBox/ComboBox.svelte +++ b/src/ComboBox/ComboBox.svelte @@ -205,9 +205,7 @@ $: menuId = `menu-${id}`; $: comboId = `combo-${id}`; $: highlightedId = items[highlightedIndex] ? items[highlightedIndex].id : 0; - $: /** @type Array */ filteredItems = items.filter((item) => - shouldFilterItem(item, value) - ); + $: filteredItems = items.filter((item) => shouldFilterItem(item, value)); */ - const listOfItems = filteredItems.map((e) => { - return { - id: e.id, - text: e.text?.toLowerCase(), - disabled: e.disabled, - }; - }); - const matchedItem = listOfItems.find( - (e) => e.text === value?.toLowerCase() + const matchedItem = filteredItems.find( + (e) => + e.text.toLowerCase() === value?.toLowerCase() && !e.disabled ); if (matchedItem) { // typed value has matched open = false; - selectedItem = filteredItems.find( - (e) => e.id === matchedItem.id - ); + selectedItem = matchedItem; value = selectedItem.text; selectedId = selectedItem.id; } else {