diff --git a/packages/ui-default/components/autocomplete/UserSelectAutoComplete.tsx b/packages/ui-default/components/autocomplete/UserSelectAutoComplete.tsx index ba83ca9f7..63bf13375 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 3c9dc5e45..6da9e5a06 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]);