File size: 2,520 Bytes
7b71fb2 c22c6b5 7b71fb2 c22c6b5 84f80c5 7b71fb2 825281b 7b71fb2 c22c6b5 7b71fb2 c22c6b5 7b71fb2 f305776 825281b 7b71fb2 c22c6b5 7b71fb2 825281b 7b71fb2 84f80c5 7b71fb2 c22c6b5 7b71fb2 825281b 7b71fb2 825281b 7b71fb2 825281b 84f80c5 7b71fb2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
import showDeleteConfirm from '@/components/deleting-confirm';
import { useRemoveDocument } from '@/hooks/documentHooks';
import { IKnowledgeFile } from '@/interfaces/database/knowledge';
import { api_host } from '@/utils/api';
import { downloadFile } from '@/utils/fileUtil';
import {
DeleteOutlined,
DownloadOutlined,
EditOutlined,
ToolOutlined,
} from '@ant-design/icons';
import { Button, Dropdown, MenuProps, Space, Tooltip } from 'antd';
import { isParserRunning } from '../utils';
import styles from './index.less';
interface IProps {
record: IKnowledgeFile;
setDocumentAndParserId: () => void;
showRenameModal: () => void;
showChangeParserModal: () => void;
}
const ParsingActionCell = ({
record,
setDocumentAndParserId,
showRenameModal,
showChangeParserModal,
}: IProps) => {
const documentId = record.id;
const isRunning = isParserRunning(record.run);
const removeDocument = useRemoveDocument(documentId);
const onRmDocument = () => {
if (!isRunning) {
showDeleteConfirm({ onOk: removeDocument });
}
};
const onDownloadDocument = () => {
downloadFile({
url: `${api_host}/document/get/${documentId}`,
filename: record.name,
});
};
const chunkItems: MenuProps['items'] = [
{
key: '1',
label: (
<div>
<Button type="link" onClick={showChangeParserModal}>
Chunk Method
</Button>
</div>
),
},
];
return (
<Space size={0}>
<Dropdown
menu={{ items: chunkItems }}
trigger={['click']}
disabled={isRunning}
>
<Button
type="text"
onClick={setDocumentAndParserId}
className={styles.iconButton}
>
<ToolOutlined size={20} />
</Button>
</Dropdown>
<Tooltip title="Rename">
<Button
type="text"
disabled={isRunning}
onClick={showRenameModal}
className={styles.iconButton}
>
<EditOutlined size={20} />
</Button>
</Tooltip>
<Button
type="text"
disabled={isRunning}
onClick={onRmDocument}
className={styles.iconButton}
>
<DeleteOutlined size={20} />
</Button>
<Button
type="text"
disabled={isRunning}
onClick={onDownloadDocument}
className={styles.iconButton}
>
<DownloadOutlined size={20} />
</Button>
</Space>
);
};
export default ParsingActionCell;
|