From f1659977ec5e21c4373d71ae0baf946b8e8d3db2 Mon Sep 17 00:00:00 2001 From: undefined Date: Tue, 29 Jul 2025 13:45:05 +0800 Subject: [PATCH] ui: UserSelectAutoComplete: add byId option (fix #1023) --- .../autocomplete/components/UserSelectAutoComplete.tsx | 4 ++-- packages/ui-default/components/dialog/index.tsx | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/ui-default/components/autocomplete/components/UserSelectAutoComplete.tsx b/packages/ui-default/components/autocomplete/components/UserSelectAutoComplete.tsx index 04d50f0d8..788355117 100644 --- a/packages/ui-default/components/autocomplete/components/UserSelectAutoComplete.tsx +++ b/packages/ui-default/components/autocomplete/components/UserSelectAutoComplete.tsx @@ -4,14 +4,14 @@ import PropTypes from 'prop-types'; import { forwardRef } from 'react'; import { api } from 'vj/utils'; -const UserSelectAutoComplete = forwardRef, AutoCompleteProps>((props, ref) => ( +const UserSelectAutoComplete = forwardRef, AutoCompleteProps & { byId?: boolean }>((props, ref) => ( ref={ref as any} cacheKey="user" queryItems={(query) => api('users', { search: query }, ['_id', 'uname', 'displayName', 'avatarUrl'])} fetchItems={(ids) => api('users', { auto: ids }, ['_id', 'uname', 'displayName'])} itemText={(user) => user.uname + (user.displayName ? ` (${user.displayName})` : '')} - itemKey={(user) => ((props.multi || /^[+-]?\d+$/.test(user.uname.trim())) ? user._id.toString() : user.uname)} + itemKey={(user) => ((props.multi || props.byId || /^[+-]?\d+$/.test(user.uname.trim())) ? user._id.toString() : user.uname)} renderItem={(user) => (
diff --git a/packages/ui-default/components/dialog/index.tsx b/packages/ui-default/components/dialog/index.tsx index 5e91e1e94..0ac1e3bdd 100644 --- a/packages/ui-default/components/dialog/index.tsx +++ b/packages/ui-default/components/dialog/index.tsx @@ -150,8 +150,9 @@ export async function prompt(title: string, fields: Record : field.type === 'user' ? setValues({ ...values, [name]: e })} + data-autofocus={field.autofocus} selectedKeys={values[name] ? [values[name].toString()] : []} + onChange={(e) => setValues({ ...values, [name]: +e })} + byId /> :