| 
									
										
										
										
											2023-09-09 19:17:12 +08:00
										 |  |  | import type { FC } from 'react' | 
					
						
							|  |  |  | import { | 
					
						
							|  |  |  |   Csv, | 
					
						
							| 
									
										
										
										
											2024-01-30 15:55:07 +08:00
										 |  |  |   Doc, | 
					
						
							|  |  |  |   Docx, | 
					
						
							| 
									
										
										
										
											2023-09-09 19:17:12 +08:00
										 |  |  |   Html, | 
					
						
							|  |  |  |   Json, | 
					
						
							|  |  |  |   Md, | 
					
						
							|  |  |  |   Pdf, | 
					
						
							|  |  |  |   Txt, | 
					
						
							| 
									
										
										
										
											2024-09-08 12:14:11 +07:00
										 |  |  |   Unknown, | 
					
						
							| 
									
										
										
										
											2023-09-09 19:17:12 +08:00
										 |  |  |   Xlsx, | 
					
						
							|  |  |  | } from '@/app/components/base/icons/src/public/files' | 
					
						
							|  |  |  | import { Notion } from '@/app/components/base/icons/src/public/common' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | type FileIconProps = { | 
					
						
							|  |  |  |   type: string | 
					
						
							|  |  |  |   className?: string | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const FileIcon: FC<FileIconProps> = ({ | 
					
						
							|  |  |  |   type, | 
					
						
							|  |  |  |   className, | 
					
						
							|  |  |  | }) => { | 
					
						
							|  |  |  |   switch (type) { | 
					
						
							|  |  |  |     case 'csv': | 
					
						
							|  |  |  |       return <Csv className={className} /> | 
					
						
							| 
									
										
										
										
											2024-01-30 15:55:07 +08:00
										 |  |  |     case 'doc': | 
					
						
							|  |  |  |       return <Doc className={className} /> | 
					
						
							|  |  |  |     case 'docx': | 
					
						
							|  |  |  |       return <Docx className={className} /> | 
					
						
							| 
									
										
										
										
											2023-09-09 19:17:12 +08:00
										 |  |  |     case 'htm': | 
					
						
							|  |  |  |     case 'html': | 
					
						
							|  |  |  |       return <Html className={className} /> | 
					
						
							|  |  |  |     case 'json': | 
					
						
							|  |  |  |       return <Json className={className} /> | 
					
						
							|  |  |  |     case 'md': | 
					
						
							|  |  |  |     case 'markdown': | 
					
						
							| 
									
										
										
										
											2024-12-12 13:37:56 +08:00
										 |  |  |     case 'mdx': | 
					
						
							| 
									
										
										
										
											2023-09-09 19:17:12 +08:00
										 |  |  |       return <Md className={className} /> | 
					
						
							|  |  |  |     case 'pdf': | 
					
						
							|  |  |  |       return <Pdf className={className} /> | 
					
						
							|  |  |  |     case 'txt': | 
					
						
							|  |  |  |       return <Txt className={className} /> | 
					
						
							|  |  |  |     case 'xls': | 
					
						
							|  |  |  |     case 'xlsx': | 
					
						
							|  |  |  |       return <Xlsx className={className} /> | 
					
						
							|  |  |  |     case 'notion': | 
					
						
							|  |  |  |       return <Notion className={className} /> | 
					
						
							|  |  |  |     default: | 
					
						
							| 
									
										
										
										
											2024-09-08 12:14:11 +07:00
										 |  |  |       return <Unknown className={className} /> | 
					
						
							| 
									
										
										
										
											2023-09-09 19:17:12 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export default FileIcon |