balibabu
Feat: Bind the route to the navigation bar in the head #3221 (#3863)
1660911
raw
history blame
1.63 kB
import { useTranslate } from '@/hooks/common-hooks';
import { useFetchKnowledgeList } 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 } = useFetchKnowledgeList();
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;