From 89c065e401d52522c7a62ae8ae2c94a167c81c31 Mon Sep 17 00:00:00 2001 From: Matiss Janis Aboltins <matiss@mja.lv> Date: Sun, 23 Apr 2023 17:31:07 +0100 Subject: [PATCH] :bug: (autocomplete) fix multi-select (#947) --- .../src/components/autocomplete/Autocomplete.js | 12 ++++++++---- upcoming-release-notes/947.md | 6 ++++++ 2 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 upcoming-release-notes/947.md diff --git a/packages/desktop-client/src/components/autocomplete/Autocomplete.js b/packages/desktop-client/src/components/autocomplete/Autocomplete.js index 1e205ab90..18e791215 100644 --- a/packages/desktop-client/src/components/autocomplete/Autocomplete.js +++ b/packages/desktop-client/src/components/autocomplete/Autocomplete.js @@ -126,6 +126,7 @@ function SingleAutocomplete({ onSelect, tableBehavior, value: initialValue, + isMulti = false, }) { const [selectedItem, setSelectedItem] = useState(() => findItem(strict, suggestions, initialValue), @@ -174,7 +175,12 @@ function SingleAutocomplete({ onSelect={(item, { inputValue }) => { setSelectedItem(item); setHighlightedIndex(null); - setIsOpen(false); + + if (isMulti) { + setValue(''); + } else { + setIsOpen(false); + } if (onSelect) { // I AM NOT PROUD OF THIS OK?? @@ -267,9 +273,6 @@ function SingleAutocomplete({ ) { setHighlightedIndex(changes.highlightedIndex); } - if ('isOpen' in changes) { - setIsOpen(embedded ? true : changes.isOpen); - } if ('selectedItem' in changes) { setSelectedItem(changes.selectedItem); } @@ -506,6 +509,7 @@ export function MultiAutocomplete({ return ( <Autocomplete {...props} + isMulti value={null} suggestions={suggestions.filter( item => !selectedItems.includes(getItemId(item)), diff --git a/upcoming-release-notes/947.md b/upcoming-release-notes/947.md new file mode 100644 index 000000000..3dc8c5410 --- /dev/null +++ b/upcoming-release-notes/947.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [MatissJanis] +--- + +Autocomplete: fix multi-autocomplete filtering UX -- GitLab