import { Component } from 'solid-js'; import { Dynamic } from 'solid-js/web'; const BookIcon = () => { return ( ); }; const DocumentIcon = () => { return ( ); }; const CodeIcon = () => { return ( ); }; const ExecutableIcon = () => { return ( ); }; const VideoIcon = () => { return ( ); }; const ImageIcon = () => { return ( ); }; const AudioIcon = () => { return ( ); }; const ArchiveIcon = () => { return ( ); }; const UnknownFileIcon = () => { return ( ); }; export const FolderIcon = () => { return ( ); }; export const BackIcon = () => { return ( ); }; enum FileType { Book, Document, Code, Executable, Video, Image, Audio, Archive, Unknown, } const FileIcon = [ BookIcon, DocumentIcon, CodeIcon, ExecutableIcon, VideoIcon, ImageIcon, AudioIcon, ArchiveIcon, UnknownFileIcon, ]; function getFileType(fileName: string): FileType { const extension = fileName.split('.').pop(); if (!extension) return FileType.Unknown; const lowerCaseExtension = extension.toLowerCase(); switch (lowerCaseExtension) { case 'pdf': case 'epub': return FileType.Book; case 'txt': case 'doc': case 'docx': case 'odt': case 'xls': case 'xlsx': case 'ods': case 'ppt': case 'pptx': case 'odp': return FileType.Document; case 'js': case 'ts': case 'java': case 'py': return FileType.Code; case 'exe': case 'bin': case 'apk': return FileType.Executable; case 'mp4': case 'avi': case 'mkv': case 'webm': return FileType.Video; case 'png': case 'jpg': case 'jpeg': case 'gif': return FileType.Image; case 'mp3': case 'wav': case 'aac': return FileType.Audio; case 'zip': case 'rar': case '7z': return FileType.Archive; default: return FileType.Unknown; } } interface SmartFileIconProps { fileName: string; } export const SmartFileIcon: Component = (props) => { return ; };