初始化模版工程

This commit is contained in:
Cloud Bot
2026-03-20 07:33:46 +00:00
commit 23717e0ecd
386 changed files with 51675 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
import React from 'react'
import {
FileText,
ImageIcon,
Table2,
FileSpreadsheet,
Video,
Music,
Code,
File,
Globe,
PresentationIcon,
} from 'lucide-react'
export interface FileIconConfig {
icon: React.ElementType
color: string
}
export function getFileIconConfig(fileType: string): FileIconConfig {
const t = (fileType || '').toLowerCase()
if (['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'bmp'].includes(t))
return { icon: ImageIcon, color: 'text-chart-2' }
if (t === 'pdf')
return { icon: FileText, color: 'text-destructive' }
if (['xls', 'xlsx'].includes(t))
return { icon: FileSpreadsheet, color: 'text-success' }
if (t === 'csv')
return { icon: Table2, color: 'text-success' }
if (['ppt', 'pptx'].includes(t))
return { icon: PresentationIcon, color: 'text-warning' }
if (['doc', 'docx'].includes(t))
return { icon: FileText, color: 'text-primary' }
if (['mp4', 'mov', 'avi', 'webm'].includes(t))
return { icon: Video, color: 'text-chart-3' }
if (['mp3', 'm4a', 'wav', 'ogg'].includes(t))
return { icon: Music, color: 'text-chart-4' }
if (['js', 'ts', 'tsx', 'jsx', 'py', 'sh', 'bash', 'json'].includes(t))
return { icon: Code, color: 'text-muted-foreground' }
if (['html', 'htm'].includes(t))
return { icon: Globe, color: 'text-brand' }
if (['md', 'txt'].includes(t))
return { icon: FileText, color: 'text-muted-foreground' }
return { icon: File, color: 'text-muted-foreground' }
}