mirror of
				https://github.com/langgenius/dify.git
				synced 2025-11-03 20:33:00 +00:00 
			
		
		
		
	Signed-off-by: -LAN- <laipz8200@outlook.com> Co-authored-by: -LAN- <laipz8200@outlook.com>
		
			
				
	
	
		
			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)
 |