fix(multi-select): correctly select correct item in filterable multiselect

Fixes #922
This commit is contained in:
Eric Liu 2021-11-27 09:58:24 -08:00
commit f6c9c8cea1

View file

@ -392,10 +392,22 @@
on:keydown|stopPropagation="{({ key }) => {
if (key === 'Enter') {
if (highlightedIndex > -1) {
if (filterable) {
const filteredItemId = filteredItems[highlightedIndex].id;
const filteredItemIndex = sortedItems
.map((item) => item.id)
.indexOf(filteredItemId);
sortedItems = sortedItems.map((item, i) => {
if (i !== filteredItemIndex) return item;
return { ...item, checked: !item.checked };
});
} else {
sortedItems[highlightedIndex].checked = !sortedItems[
highlightedIndex
].checked;
}
}
} else if (key === 'Tab') {
open = false;
} else if (key === 'ArrowDown') {