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 ;
};