import React from 'react'; interface FileIconProps { fileName: string; isDirectory: boolean; className?: string; } export const FileIcon: React.FC = ({ fileName, isDirectory, className = 'w-4 h-4', }) => { if (isDirectory) { return ( ); } const ext = fileName.split('.').pop()?.toLowerCase(); // Image files if ( ['png', 'jpg', 'jpeg', 'gif', 'svg', 'ico', 'webp', 'bmp', 'tiff', 'tif'].includes(ext || '') ) { return ( ); } // Video files if (['mp4', 'mov', 'avi', 'mkv', 'webm', 'flv', 'wmv'].includes(ext || '')) { return ( ); } // Audio files if (['mp3', 'wav', 'flac', 'aac', 'ogg', 'm4a'].includes(ext || '')) { return ( ); } // Archive/compressed files if (['zip', 'tar', 'gz', 'rar', '7z', 'bz2'].includes(ext || '')) { return ( ); } // PDF files if (ext === 'pdf') { return ( ); } // Design files if (['ai', 'eps', 'sketch', 'fig', 'xd', 'psd'].includes(ext || '')) { return ( ); } // JavaScript/TypeScript files if (['js', 'jsx', 'ts', 'tsx', 'mjs', 'cjs'].includes(ext || '')) { return ( ); } // Python files if (['py', 'pyw', 'pyc'].includes(ext || '')) { return ( ); } // HTML files if (['html', 'htm', 'xhtml'].includes(ext || '')) { return ( ); } // CSS files if (['css', 'scss', 'sass', 'less', 'stylus'].includes(ext || '')) { return ( ); } // JSON/Data files if (['json', 'xml', 'yaml', 'yml', 'toml', 'csv'].includes(ext || '')) { return ( ); } // Markdown files if (['md', 'markdown', 'mdx'].includes(ext || '')) { return ( ); } // Database files if (['sql', 'db', 'sqlite', 'sqlite3'].includes(ext || '')) { return ( ); } // Configuration files if ( [ 'env', 'ini', 'cfg', 'conf', 'config', 'gitignore', 'dockerignore', 'editorconfig', 'prettierrc', 'eslintrc', ].includes(ext || '') || ['dockerfile', 'makefile', 'rakefile', 'gemfile'].includes(fileName.toLowerCase()) ) { return ( ); } // Text files if ( ['txt', 'log', 'readme', 'license', 'changelog', 'contributing'].includes(ext || '') || ['readme', 'license', 'changelog', 'contributing'].includes(fileName.toLowerCase()) ) { return ( ); } // Executable files if (['exe', 'app', 'deb', 'rpm', 'dmg', 'pkg', 'msi'].includes(ext || '')) { return ( ); } // Script files if (['sh', 'bash', 'zsh', 'fish', 'bat', 'cmd', 'ps1', 'rb', 'pl', 'php'].includes(ext || '')) { return ( ); } // Default file icon return ( ); };