mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
### What problem does this PR solve? Feat: Delete useless request hooks. #10427 ### Type of change - [x] New Feature (non-breaking change which adds functionality)
73 lines
2.3 KiB
TypeScript
73 lines
2.3 KiB
TypeScript
import SvgIcon from '@/components/svg-icon';
|
|
import { useTranslate } from '@/hooks/common-hooks';
|
|
import { useSelectParserList } from '@/hooks/use-user-setting-request';
|
|
import { Col, Divider, Empty, Row, Typography } from 'antd';
|
|
import DOMPurify from 'dompurify';
|
|
import camelCase from 'lodash/camelCase';
|
|
import { useMemo } from 'react';
|
|
import { TagTabs } from './tag-tabs';
|
|
import { ImageMap } from './utils';
|
|
|
|
const { Text } = Typography;
|
|
|
|
const CategoryPanel = ({ chunkMethod }: { chunkMethod: string }) => {
|
|
const parserList = useSelectParserList();
|
|
const { t } = useTranslate('knowledgeConfiguration');
|
|
|
|
const item = useMemo(() => {
|
|
const item = parserList.find((x) => x.value === chunkMethod);
|
|
if (item) {
|
|
return {
|
|
title: item.label,
|
|
description: t(camelCase(item.value)),
|
|
};
|
|
}
|
|
return { title: '', description: '' };
|
|
}, [parserList, chunkMethod, t]);
|
|
|
|
const imageList = useMemo(() => {
|
|
if (chunkMethod in ImageMap) {
|
|
return ImageMap[chunkMethod as keyof typeof ImageMap];
|
|
}
|
|
return [];
|
|
}, [chunkMethod]);
|
|
|
|
return (
|
|
<section>
|
|
{imageList.length > 0 ? (
|
|
<>
|
|
<h5 className="font-semibold text-base mt-0 mb-1">
|
|
{`"${item.title}" ${t('methodTitle')}`}
|
|
</h5>
|
|
<p
|
|
dangerouslySetInnerHTML={{
|
|
__html: DOMPurify.sanitize(item.description),
|
|
}}
|
|
></p>
|
|
<h5 className="font-semibold text-base mt-4 mb-1">{`"${item.title}" ${t('methodExamples')}`}</h5>
|
|
<Text>{t('methodExamplesDescription')}</Text>
|
|
<Row gutter={[10, 10]} className="mt-4">
|
|
{imageList.map((x) => (
|
|
<Col span={12} key={x}>
|
|
<SvgIcon name={x} width={'100%'} className="w-full"></SvgIcon>
|
|
</Col>
|
|
))}
|
|
</Row>
|
|
<h5 className="font-semibold text-base mt-4 mb-1">
|
|
{item.title} {t('dialogueExamplesTitle')}
|
|
</h5>
|
|
<Divider></Divider>
|
|
</>
|
|
) : (
|
|
<Empty description={''} image={null}>
|
|
<p>{t('methodEmpty')}</p>
|
|
<SvgIcon name={'chunk-method/chunk-empty'} width={'100%'}></SvgIcon>
|
|
</Empty>
|
|
)}
|
|
{chunkMethod === 'tag' && <TagTabs></TagTabs>}
|
|
</section>
|
|
);
|
|
};
|
|
|
|
export default CategoryPanel;
|