From 43c4866eb21885dd6132061e577dca8030d64d39 Mon Sep 17 00:00:00 2001 From: undefined Date: Tue, 5 Apr 2022 06:07:30 +0800 Subject: [PATCH] ui: fix user_select_multi --- .../components/autocomplete/UserSelectAutoComplete.tsx | 2 +- .../components/autocomplete/components/AutoComplete.tsx | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/ui-default/components/autocomplete/UserSelectAutoComplete.tsx b/packages/ui-default/components/autocomplete/UserSelectAutoComplete.tsx index ba83ca9f..63bf1337 100644 --- a/packages/ui-default/components/autocomplete/UserSelectAutoComplete.tsx +++ b/packages/ui-default/components/autocomplete/UserSelectAutoComplete.tsx @@ -32,7 +32,7 @@ export default class UserSelectAutoComplete extends AutoC } value(): Multi extends true ? number[] : string { - if (this.options.multi) return this.ref?.getSelectedItems().map((item) => item._id) ?? this.$dom.val(); + if (this.options.multi) return this.ref?.getSelectedItemKeys().map((i) => +i) ?? this.$dom.val(); return this.ref?.getSelectedItems()[0] ?? null; } diff --git a/packages/ui-default/components/autocomplete/components/AutoComplete.tsx b/packages/ui-default/components/autocomplete/components/AutoComplete.tsx index 3c9dc5e4..6da9e5a0 100644 --- a/packages/ui-default/components/autocomplete/components/AutoComplete.tsx +++ b/packages/ui-default/components/autocomplete/components/AutoComplete.tsx @@ -103,14 +103,12 @@ const AutoComplete = forwardRef(function Impl(props: AutoCompleteProps, re setCurrentItem(null); }; - const calculateValue = () => { + const dispatchChange = () => { const query = inputRef.current?.value; - if (!query) return multi ? selectedKeys.join(',') : ''; - return (multi && selectedKeys.length) ? `${selectedKeys.join(',')},${query}` : query; + const val = [...selectedKeys, query].filter((i) => i).join(','); + onChange(val); }; - const dispatchChange = () => onChange(calculateValue()); - useEffect(() => { dispatchChange(); }, [selectedKeys, multi]);