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 default function getIconByMime(fileType: $TSFixMe): $TSFixMe {
const defaultChoice = {
color: '#838999',
icon: iconFile(),
}
if (!fileType) return defaultChoice
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
}