79 lines
1.2 KiB
TypeScript
79 lines
1.2 KiB
TypeScript
import {
|
|
faFilePdf,
|
|
faFileExcel,
|
|
faFileWord,
|
|
faFilePowerpoint,
|
|
faFileZipper,
|
|
faFileCsv,
|
|
faFileLines,
|
|
faFileImage,
|
|
faFile,
|
|
IconDefinition
|
|
} from '@fortawesome/free-solid-svg-icons'
|
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
|
|
|
|
export const getExtensionIconLabel = (extension: string) => {
|
|
let icon: IconDefinition
|
|
switch (extension.toLowerCase()) {
|
|
case 'pdf':
|
|
icon = faFilePdf
|
|
break
|
|
case 'json':
|
|
icon = faFilePdf
|
|
break
|
|
|
|
case 'xlsx':
|
|
case 'xls':
|
|
case 'xlsb':
|
|
case 'xlsm':
|
|
icon = faFileExcel
|
|
break
|
|
|
|
case 'doc':
|
|
case 'docx':
|
|
icon = faFileWord
|
|
break
|
|
|
|
case 'ppt':
|
|
case 'pptx':
|
|
icon = faFilePowerpoint
|
|
break
|
|
|
|
case 'zip':
|
|
case '7z':
|
|
case 'rar':
|
|
case 'tar':
|
|
case 'gz':
|
|
icon = faFileZipper
|
|
break
|
|
|
|
case 'csv':
|
|
icon = faFileCsv
|
|
break
|
|
|
|
case 'txt':
|
|
icon = faFileLines
|
|
break
|
|
|
|
case 'png':
|
|
case 'jpg':
|
|
case 'jpeg':
|
|
case 'gif':
|
|
case 'svg':
|
|
case 'bmp':
|
|
case 'ico':
|
|
icon = faFileImage
|
|
break
|
|
|
|
default:
|
|
icon = faFile
|
|
return
|
|
}
|
|
|
|
return (
|
|
<>
|
|
<FontAwesomeIcon icon={icon} /> {extension.toUpperCase()}
|
|
</>
|
|
)
|
|
}
|