feat: Improve knowledge base creation popup input focus

This commit is contained in:
ousugo 2025-02-23 23:27:44 +08:00 committed by 亢奋猫
parent c61dde5085
commit 8d61cbcae9

View File

@ -10,7 +10,7 @@ import { getErrorMessage } from '@renderer/utils/error'
import { Form, Input, Modal, Select } from 'antd' import { Form, Input, Modal, Select } from 'antd'
import { find, sortBy } from 'lodash' import { find, sortBy } from 'lodash'
import { nanoid } from 'nanoid' import { nanoid } from 'nanoid'
import { useState } from 'react' import { useRef, useState } from 'react'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
interface ShowParams { interface ShowParams {
@ -28,15 +28,16 @@ interface Props extends ShowParams {
const PopupContainer: React.FC<Props> = ({ title, resolve }) => { const PopupContainer: React.FC<Props> = ({ title, resolve }) => {
const [open, setOpen] = useState(true) const [open, setOpen] = useState(true)
const [loading, setLoading] = useState(false)
const [form] = Form.useForm<FormData>() const [form] = Form.useForm<FormData>()
const { t } = useTranslation() const { t } = useTranslation()
const { providers } = useProviders() const { providers } = useProviders()
const { addKnowledgeBase } = useKnowledgeBases() const { addKnowledgeBase } = useKnowledgeBases()
const [loading, setLoading] = useState(false)
const allModels = providers const allModels = providers
.map((p) => p.models) .map((p) => p.models)
.flat() .flat()
.filter((model) => isEmbeddingModel(model)) .filter((model) => isEmbeddingModel(model))
const nameInputRef = useRef<any>(null)
const selectOptions = providers const selectOptions = providers
.filter((p) => p.models.length > 0) .filter((p) => p.models.length > 0)
@ -114,6 +115,7 @@ const PopupContainer: React.FC<Props> = ({ title, resolve }) => {
onOk={onOk} onOk={onOk}
onCancel={onCancel} onCancel={onCancel}
afterClose={onClose} afterClose={onClose}
afterOpenChange={(visible) => visible && nameInputRef.current?.focus()}
destroyOnClose destroyOnClose
centered centered
okButtonProps={{ loading }}> okButtonProps={{ loading }}>
@ -122,7 +124,7 @@ const PopupContainer: React.FC<Props> = ({ title, resolve }) => {
name="name" name="name"
label={t('common.name')} label={t('common.name')}
rules={[{ required: true, message: t('message.error.enter.name') }]}> rules={[{ required: true, message: t('message.error.enter.name') }]}>
<Input placeholder={t('common.name')} /> <Input placeholder={t('common.name')} ref={nameInputRef} />
</Form.Item> </Form.Item>
<Form.Item <Form.Item