import { getExtension } from '@/utils/document-util'; | |
import SvgIcon from '../svg-icon'; | |
import { useFetchDocumentThumbnailsByIds } from '@/hooks/document-hooks'; | |
import { useEffect } from 'react'; | |
import styles from './index.less'; | |
interface IProps { | |
name: string; | |
id: string; | |
} | |
const FileIcon = ({ name, id }: IProps) => { | |
const fileExtension = getExtension(name); | |
const { data: fileThumbnails, setDocumentIds } = | |
useFetchDocumentThumbnailsByIds(); | |
const fileThumbnail = fileThumbnails[id]; | |
useEffect(() => { | |
setDocumentIds([id]); | |
}, [id, setDocumentIds]); | |
return fileThumbnail ? ( | |
<img src={fileThumbnail} className={styles.thumbnailImg}></img> | |
) : ( | |
<SvgIcon name={`file-icon/${fileExtension}`} width={24}></SvgIcon> | |
); | |
}; | |
export default FileIcon; | |