Spaces:
Paused
Paused
import { useTranslate } from '@/hooks/common-hooks'; | |
import { useNextFetchKnowledgeList } from '@/hooks/knowledge-hooks'; | |
import { IModalProps } from '@/interfaces/common'; | |
import { filterOptionsByInput } from '@/utils/common-util'; | |
import { Form, Modal, Select } from 'antd'; | |
import { useEffect } from 'react'; | |
const ConnectToKnowledgeModal = ({ | |
visible, | |
hideModal, | |
onOk, | |
initialValue, | |
loading, | |
}: IModalProps<string[]> & { initialValue: string[] }) => { | |
const [form] = Form.useForm(); | |
const { list } = useNextFetchKnowledgeList(); | |
const { t } = useTranslate('fileManager'); | |
const options = list?.map((item) => ({ | |
label: item.name, | |
value: item.id, | |
})); | |
const handleOk = async () => { | |
const values = await form.getFieldsValue(); | |
const knowledgeIds = values.knowledgeIds ?? []; | |
return onOk?.(knowledgeIds); | |
}; | |
useEffect(() => { | |
if (visible) { | |
form.setFieldValue('knowledgeIds', initialValue); | |
} | |
}, [visible, initialValue, form]); | |
return ( | |
<Modal | |
title={t('addToKnowledge')} | |
open={visible} | |
onOk={handleOk} | |
onCancel={hideModal} | |
confirmLoading={loading} | |
> | |
<Form form={form}> | |
<Form.Item name="knowledgeIds" noStyle> | |
<Select | |
mode="multiple" | |
allowClear | |
showSearch | |
style={{ width: '100%' }} | |
placeholder={t('pleaseSelect')} | |
options={options} | |
optionFilterProp="children" | |
filterOption={filterOptionsByInput} | |
/> | |
</Form.Item> | |
</Form> | |
</Modal> | |
); | |
}; | |
export default ConnectToKnowledgeModal; | |