| import React, { useEffect, useState } from 'react' | |
| import { connect, Dispatch } from 'umi'; | |
| import i18n from 'i18next'; | |
| import { useTranslation, Trans } from 'react-i18next' | |
| import { Input, Modal, Form } from 'antd' | |
| import styles from './index.less'; | |
| import type { chunkModelState } from './model' | |
| import EditTag from './editTag' | |
| type FieldType = { | |
| content_ltks?: string; | |
| }; | |
| interface kFProps { | |
| dispatch: Dispatch; | |
| chunkModel: chunkModelState; | |
| getChunkList: () => void; | |
| doc_id: string | |
| } | |
| const Index: React.FC<kFProps> = ({ chunkModel, dispatch, getChunkList, doc_id }) => { | |
| const { isShowCreateModal, chunk_id, chunkInfo } = chunkModel | |
| const [important_kwd, setImportantKwd] = useState(['Unremovable', 'Tag 2', 'Tag 3']); | |
| const { t } = useTranslation() | |
| const handleCancel = () => { | |
| dispatch({ | |
| type: 'chunkModel/updateState', | |
| payload: { | |
| isShowCreateModal: false | |
| } | |
| }); | |
| }; | |
| useEffect(() => { | |
| if (chunk_id && isShowCreateModal) { | |
| dispatch({ | |
| type: 'chunkModel/get_chunk', | |
| payload: { | |
| chunk_id | |
| }, | |
| callback(info: any) { | |
| console.log(info) | |
| const { content_ltks, important_kwd = [] } = info | |
| form.setFieldsValue({ content_ltks }) | |
| setImportantKwd(important_kwd) | |
| } | |
| }); | |
| } | |
| }, [chunk_id, isShowCreateModal]) | |
| const [form] = Form.useForm() | |
| const handleOk = async () => { | |
| try { | |
| const values = await form.validateFields(); | |
| dispatch({ | |
| type: 'chunkModel/create_hunk', | |
| payload: { | |
| content_ltks: values.content_ltks, | |
| doc_id, | |
| chunk_id, | |
| important_kwd | |
| }, | |
| callback: () => { | |
| dispatch({ | |
| type: 'chunkModel/updateState', | |
| payload: { | |
| isShowCreateModal: false | |
| } | |
| }); | |
| getChunkList && getChunkList() | |
| } | |
| }); | |
| } catch (errorInfo) { | |
| console.log('Failed:', errorInfo); | |
| } | |
| }; | |
| return ( | |
| <Modal title="Basic Modal" open={isShowCreateModal} onOk={handleOk} onCancel={handleCancel}> | |
| <Form | |
| form={form} | |
| name="validateOnly" | |
| labelCol={{ span: 5 }} | |
| wrapperCol={{ span: 19 }} | |
| style={{ maxWidth: 600 }} | |
| autoComplete="off" | |
| > | |
| <Form.Item<FieldType> | |
| label="chunk 内容" | |
| name="content_ltks" | |
| rules={[{ required: true, message: 'Please input name!' }]} | |
| > | |
| <Input.TextArea /> | |
| </Form.Item> | |
| <EditTag tags={important_kwd} setTags={setImportantKwd} /> | |
| </Form> | |
| </Modal > | |
| ); | |
| } | |
| export default connect(({ chunkModel, loading }) => ({ chunkModel, loading }))(Index); | |