type $TSFixMe = any; function iconImage() { return ( ); } function iconAudio() { return ( ); } function iconVideo() { return ( ); } function iconPDF() { return ( ); } function iconArchive() { return ( ); } function iconFile() { return ( ); } function iconText() { return ( ); } export function getIconByMime(fileType: $TSFixMe): $TSFixMe { const defaultChoice = { color: "#838999", icon: iconFile(), }; const undefinedChoice = { color: "#838999", icon: null, }; if (!fileType) return undefinedChoice; const fileTypeGeneral = fileType.split("/")[0]; const fileTypeSpecific = fileType.split("/")[1]; // Text if (fileTypeGeneral === "text") { return { color: "#5a5e69", icon: iconText(), }; } // Image if (fileTypeGeneral === "image") { return { color: "#686de0", icon: iconImage(), }; } // Audio if (fileTypeGeneral === "audio") { return { color: "#068dbb", icon: iconAudio(), }; } // Video if (fileTypeGeneral === "video") { return { color: "#19af67", icon: iconVideo(), }; } // PDF if (fileTypeGeneral === "application" && fileTypeSpecific === "pdf") { return { color: "#e25149", icon: iconPDF(), }; } // Archive const archiveTypes = [ "zip", "x-7z-compressed", "x-zip-compressed", "x-rar-compressed", "x-tar", "x-gzip", "x-apple-diskimage", ]; if (fileTypeGeneral === "application" && archiveTypes.indexOf(fileTypeSpecific) !== -1) { return { color: "#00C469", icon: iconArchive(), }; } return defaultChoice; }