ragflow
/
web
/src
/pages
/add-knowledge
/components
/knowledge-file
/parsing-status-cell
/index.tsx
import { IKnowledgeFile } from '@/interfaces/database/knowledge'; | |
import { Badge, DescriptionsProps, Flex, Popover, Space, Tag } from 'antd'; | |
import { RunningStatus, RunningStatusMap } from '../constant'; | |
import styles from './index.less'; | |
interface IProps { | |
record: IKnowledgeFile; | |
} | |
const PopoverContent = ({ record }: IProps) => { | |
const items: DescriptionsProps['items'] = [ | |
{ | |
key: 'process_begin_at', | |
label: 'Process Begin At', | |
children: record.process_begin_at, | |
}, | |
{ | |
key: 'process_duation', | |
label: 'Process Duration', | |
children: record.process_duation, | |
}, | |
{ | |
key: 'progress_msg', | |
label: 'Progress Msg', | |
children: record.progress_msg, | |
}, | |
]; | |
return ( | |
<Flex vertical className={styles['popover-content']}> | |
{items.map((x) => { | |
return ( | |
<div> | |
<b>{x.label}:</b> | |
<p>{x.children}</p> | |
</div> | |
); | |
})} | |
</Flex> | |
); | |
}; | |
export const ParsingStatusCell = ({ record }: IProps) => { | |
const text = record.run; | |
const runningStatus = RunningStatusMap[text]; | |
const isRunning = text === RunningStatus.RUNNING; | |
return ( | |
<Popover | |
content={isRunning && <PopoverContent record={record}></PopoverContent>} | |
> | |
<Tag color={runningStatus.color}> | |
{isRunning ? ( | |
<Space> | |
<Badge color={runningStatus.color} /> | |
`${runningStatus.label}${record.progress * 100}%` | |
</Space> | |
) : ( | |
runningStatus.label | |
)} | |
</Tag> | |
</Popover> | |
); | |
}; | |
export default ParsingStatusCell; | |