From 15fb605eb45ab553b6ecb5b7eaa818d227574d83 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Thu, 2 Jan 2025 16:58:58 +0800 Subject: [PATCH] feat: improved form validation and model addition functionality --- .../ProviderSettings/AddModelPopup.tsx | 31 ++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/src/renderer/src/pages/settings/ProviderSettings/AddModelPopup.tsx b/src/renderer/src/pages/settings/ProviderSettings/AddModelPopup.tsx index 3f8b18d9..80576f20 100644 --- a/src/renderer/src/pages/settings/ProviderSettings/AddModelPopup.tsx +++ b/src/renderer/src/pages/settings/ProviderSettings/AddModelPopup.tsx @@ -41,22 +41,39 @@ const PopupContainer: React.FC = ({ title, provider, resolve }) => { resolve({}) } - const onFinish: FormProps['onFinish'] = (values) => { - if (find(models, { id: values.id })) { - Modal.error({ title: 'Error', content: 'Model ID already exists' }) + const onAddModel = (values: FieldType) => { + const id = values.id.trim() + + if (find(models, { id })) { + window.message.error('Model ID already exists') return } const model: Model = { + id, provider: provider.id, - id: values.id, - name: values.name ? values.name : values.id.toUpperCase(), - group: getDefaultGroupName(values.group || values.id) + name: values.name ? values.name : id.toUpperCase(), + group: getDefaultGroupName(values.group || id) } addModel(model) - resolve(model) + return true + } + + const onFinish: FormProps['onFinish'] = (values) => { + const id = values.id.trim().replaceAll(',', ',') + + if (id.includes(',')) { + const ids = id.split(',') + ids.forEach((id) => onAddModel({ id, name: id } as FieldType)) + resolve({}) + return + } + + if (onAddModel(values)) { + resolve({}) + } } return (