From f6eb958732048545b09946599a85162fc16e6323 Mon Sep 17 00:00:00 2001 From: Eric Liu Date: Mon, 10 Jan 2022 13:05:32 -1000 Subject: [PATCH] fix(combo-box): reset values when manually clearing input field (#992) --- src/ComboBox/ComboBox.svelte | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/ComboBox/ComboBox.svelte b/src/ComboBox/ComboBox.svelte index f7267f70..1227db29 100644 --- a/src/ComboBox/ComboBox.svelte +++ b/src/ComboBox/ComboBox.svelte @@ -108,11 +108,12 @@ const dispatch = createEventDispatcher(); let selectedId = undefined; + let selectedItem = undefined; let inputValue = value; + let prevInputValue = undefined; + let prevSelectedIndex = undefined; let highlightedIndex = -1; - let selectedItem; - function change(dir) { let index = highlightedIndex + dir; let _items = !filteredItems?.length ? items : filteredItems; @@ -132,13 +133,13 @@ selectedIndex = -1; highlightedIndex = -1; highlightedId = undefined; + selectedId = undefined; selectedItem = undefined; open = false; inputValue = ""; ref?.focus(); } - let prevInputValue; afterUpdate(() => { if (open) { ref.focus(); @@ -156,7 +157,6 @@ } }); - let prevSelectedIndex; $: if (selectedIndex > -1 && prevSelectedIndex !== selectedIndex) { prevSelectedIndex = selectedIndex; if (filteredItems?.length === 1 && open) { @@ -250,6 +250,10 @@ } inputValue = target.value; + if (!inputValue.length) { + clear(); + open = true; + } }}" on:keydown on:keydown|stopPropagation="{({ key }) => {