core&ui: UserSelectAutoComplete: support pasting username/email

This commit is contained in:
undefined committed 2025-03-19 10:13:04 +08:00
1 parent 74a3ee90c7
commit 706a9a0928
4 files changed
+27 -10

No files matched your search

@@ -307,10 +307,10 @@ const AutoComplete = forwardRef(function Impl<T>(props: AutoCompleteProps<T>, re
e.preventDefault();
const ids = text.replace(/,/g, ',').split(',').filter((v) => v?.trim().length && !selectedKeys.includes(v));
if (!ids.length) return;
const fetched = await props.fetchItems(ids.filter((v) => !valueCache[v]));
const fetched = await props.fetchItems(ids);
for (const item of fetched) valueCache[itemKey(item)] = item;
setSelected([...selected, ...ids.map((id) => valueCache[id])]);
setSelectedKeys([...selectedKeys, ...ids.map((id) => itemKey(valueCache[id]))]);
setSelected([...selected, ...fetched]);
setSelectedKeys([...selectedKeys, ...fetched.map((val) => itemKey(val))]);
}}
placeholder={props.placeholder}
onBlur={() => setFocused(false)}
@@ -19,7 +19,7 @@ const UserSelectAutoComplete = forwardRef<AutoCompleteHandle<Udoc>, AutoComplete
}
`, ['data', 'users'])}
fetchItems={(ids) => api(gql`
users(ids: ${ids.map((i) => +i)}) {
users(auto: ${ids}) {
_id
uname
displayName