UNPKG

@navikt/ds-react

Version:

React components from the Norwegian Labour and Welfare Administration.

48 lines 2.02 kB
import React from "react"; import { FileCsvIcon, FileExcelIcon, FileIcon, FileImageIcon, FilePdfIcon, FileTextIcon, FileWordIcon, FileXMarkIcon, } from "@navikt/aksel-icons"; import { Loader } from "../../../../loader/index.js"; import { useRenameCSS } from "../../../../theme/Theme.js"; const iconProps = { fontSize: "2rem", "aria-hidden": true, }; function ItemIcon({ isLoading, file, showError }) { const { cn } = useRenameCSS(); if (isLoading) { return (React.createElement("div", { className: cn("navds-file-item__icon navds-file-item__icon--loading") }, React.createElement(Loader, { size: "large" }))); } if (showError) { return (React.createElement("div", { className: cn("navds-file-item__icon") }, React.createElement(FileXMarkIcon, Object.assign({}, iconProps)))); } return (React.createElement("div", { className: cn("navds-file-item__icon") }, React.createElement(Icon, { file: file }))); } function Icon({ file }) { const extension = file.name.substring(file.name.lastIndexOf(".") + 1); switch (extension) { case "jpg": case "jpeg": case "png": case "gif": case "webp": return React.createElement(FileImageIcon, Object.assign({}, iconProps)); case "pdf": return React.createElement(FilePdfIcon, Object.assign({}, iconProps)); case "txt": return React.createElement(FileTextIcon, Object.assign({}, iconProps)); case "csv": return React.createElement(FileCsvIcon, Object.assign({}, iconProps)); case "xls": case "xlsx": return React.createElement(FileExcelIcon, Object.assign({}, iconProps)); case "doc": case "docx": return React.createElement(FileWordIcon, Object.assign({}, iconProps)); default: return React.createElement(FileIcon, Object.assign({}, iconProps)); } } export default ItemIcon; //# sourceMappingURL=ItemIcon.js.map