lobe-chat
28 строк · 869.0 Байт
1import { memo } from 'react';
2import { Center } from 'react-layout-kit';
3
4import FileIcon from '@/components/FileIcon';
5import RepoIcon from '@/components/RepoIcon';
6import { KnowledgeType } from '@/types/knowledgeBase';
7
8interface KnowledgeIconProps {
9fileType?: string;
10name: string;
11size?: number | { file?: number; repo?: number };
12type: KnowledgeType;
13}
14
15const KnowledgeIcon = memo<KnowledgeIconProps>(({ type, size, fileType, name }) => {
16const repoSize = (typeof size === 'object' ? size.repo : size) || 24;
17const fileSize = (typeof size === 'object' ? size.file : size) || 24;
18
19return type === KnowledgeType.KnowledgeBase ? (
20<Center height={repoSize} width={repoSize}>
21<RepoIcon size={repoSize / 1.2} />
22</Center>
23) : (
24<FileIcon fileName={name} fileType={fileType!} size={fileSize} />
25);
26});
27
28export default KnowledgeIcon;
29