mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-31 02:42:59 +00:00 
			
		
		
		
	
		
			
	
	
		
			41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|   | 'use client' | ||
|  | import type { FC } from 'react' | ||
|  | import React from 'react' | ||
|  | import FileTypeIcon from '../../base/file-uploader/file-type-icon' | ||
|  | import type { FileAppearanceType } from '@/app/components/base/file-uploader/types' | ||
|  | import { FileAppearanceTypeEnum } from '@/app/components/base/file-uploader/types' | ||
|  | 
 | ||
|  | const extendToFileTypeMap: { [key: string]: FileAppearanceType } = { | ||
|  |   pdf: FileAppearanceTypeEnum.pdf, | ||
|  |   json: FileAppearanceTypeEnum.document, | ||
|  |   html: FileAppearanceTypeEnum.document, | ||
|  |   txt: FileAppearanceTypeEnum.document, | ||
|  |   markdown: FileAppearanceTypeEnum.markdown, | ||
|  |   md: FileAppearanceTypeEnum.markdown, | ||
|  |   xlsx: FileAppearanceTypeEnum.excel, | ||
|  |   xls: FileAppearanceTypeEnum.excel, | ||
|  |   csv: FileAppearanceTypeEnum.excel, | ||
|  |   doc: FileAppearanceTypeEnum.word, | ||
|  |   docx: FileAppearanceTypeEnum.word, | ||
|  | } | ||
|  | 
 | ||
|  | type Props = { | ||
|  |   extension?: string | ||
|  |   name?: string | ||
|  |   size?: 'sm' | 'lg' | 'md' | ||
|  |   className?: string | ||
|  | } | ||
|  | 
 | ||
|  | const DocumentFileIcon: FC<Props> = ({ | ||
|  |   extension, | ||
|  |   name, | ||
|  |   size = 'md', | ||
|  |   className, | ||
|  | }) => { | ||
|  |   const localExtension = extension?.toLowerCase() || name?.split('.')?.pop()?.toLowerCase() | ||
|  |   return ( | ||
|  |     <FileTypeIcon type={extendToFileTypeMap[localExtension!] || FileAppearanceTypeEnum.document} size={size} className={className} /> | ||
|  |   ) | ||
|  | } | ||
|  | export default React.memo(DocumentFileIcon) |