99 lines
3.2 KiB
TypeScript
99 lines
3.2 KiB
TypeScript
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);
|