| 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; | |