import React from 'react';
import { useTheme } from '../../lib/theming/useTheme.js';
import { ArchiveIcon as RowViewArchiveIcon } from './icons/row/ArchiveIcon.js';
import { FolderIcon as RowViewFolderIcon } from './icons/row/FolderIcon.js';
import { MarkupIcon as RowViewMarkupIcon } from './icons/row/MarkupIcon.js';
import { PdfIcon as RowViewPdfIcon } from './icons/row/PdfIcon.js';
import { PictureIcon as RowViewPictureIcon } from './icons/row/PictureIcon.js';
import { PresentationIcon as RowViewPresentationIcon } from './icons/row/PresentationIcon.js';
import { TableIcon as RowViewTableIcon } from './icons/row/TableIcon.js';
import { TextIcon as RowViewTextIcon } from './icons/row/TextIcon.js';
import { DocTextIcon as RowViewDocTextIcon } from './icons/row/DocTextIcon.js';
import { ArchiveIcon as TileViewArchiveIcon } from './icons/tile/ArchiveIcon.js';
import { FolderIcon as TileViewFolderIcon } from './icons/tile/FolderIcon.js';
import { MarkupIcon as TileViewMarkupIcon } from './icons/tile/MarkupIcon.js';
import { PdfIcon as TileViewPdfIcon } from './icons/tile/PdfIcon.js';
import { PictureIcon as TileViewPictureIcon } from './icons/tile/PictureIcon.js';
import { PresentationIcon as TileViewPresentationIcon } from './icons/tile/PresentationIcon.js';
import { TableIcon as TileViewTableIcon } from './icons/tile/TableIcon.js';
import { TextIcon as TileViewTextIcon } from './icons/tile/TextIcon.js';
import { DocTextIcon as TileViewDocTextIcon } from './icons/tile/DocTextIcon.js';
import { ValidationErrorIcon as RowValidationErrorIcon } from './icons/row/ValidationErrorIcon.js';
import { ValidationWarningIcon as RowValidationWarningIcon } from './icons/row/ValidationWarningIcon.js';
import { ValidationErrorIcon as TileValidationErrorIcon } from './icons/tile/ValidationErrorIcon.js';
import { ValidationWarningIcon as TileValidationWarningIcon } from './icons/tile/ValidationWarningIcon.js';
export var FileUploaderFileTypeIcon = function (_a) {
    var size = _a.size, type = _a.type, _b = _a.view, view = _b === void 0 ? 'row' : _b;
    var theme = useTheme();
    var isTileView = view === 'tile';
    if (isTileView) {
        switch (type) {
            case 'error':
                return React.createElement(TileValidationErrorIcon, { size: size, color: theme.fileUploaderFileTypeErrorIconColor });
            case 'warning':
                return React.createElement(TileValidationWarningIcon, { size: size, color: theme.fileUploaderFileTypeWarningIconColor });
            case 'pdf':
                return React.createElement(TileViewPdfIcon, { size: size, color: theme.fileUploaderFileTypePdfIconColor });
            case 'code':
                return React.createElement(TileViewMarkupIcon, { size: size, color: theme.fileUploaderFileTypeCodeIconColor });
            case 'picture':
                return React.createElement(TileViewPictureIcon, { size: size, color: theme.fileUploaderFileTypePictureIconColor });
            case 'presentation':
                return React.createElement(TileViewPresentationIcon, { size: size, color: theme.fileUploaderFileTypePresentationIconColor });
            case 'table':
                return React.createElement(TileViewTableIcon, { size: size, color: theme.fileUploaderFileTypeTableIconColor });
            case 'text':
                return React.createElement(TileViewTextIcon, { size: size, color: theme.fileUploaderFileTypeTextIconColor });
            case 'archive':
                return React.createElement(TileViewArchiveIcon, { size: size, color: theme.fileUploaderFileTypeArchiveIconColor });
            case 'folder':
                return React.createElement(TileViewFolderIcon, { size: size, color: theme.fileUploaderFileTypeFolderIconColor });
            default:
                return React.createElement(TileViewDocTextIcon, { size: size, color: theme.fileUploaderFileTypeUnknownIconColor });
        }
    }
    switch (type) {
        case 'error':
            return React.createElement(RowValidationErrorIcon, { size: size, color: theme.fileUploaderFileTypeErrorIconColor });
        case 'warning':
            return React.createElement(RowValidationWarningIcon, { size: size, color: theme.fileUploaderFileTypeWarningIconColor });
        case 'pdf':
            return React.createElement(RowViewPdfIcon, { size: size, color: theme.fileUploaderFileTypePdfIconColor });
        case 'code':
            return React.createElement(RowViewMarkupIcon, { size: size, color: theme.fileUploaderFileTypeCodeIconColor });
        case 'picture':
            return React.createElement(RowViewPictureIcon, { size: size, color: theme.fileUploaderFileTypePictureIconColor });
        case 'presentation':
            return React.createElement(RowViewPresentationIcon, { size: size, color: theme.fileUploaderFileTypePresentationIconColor });
        case 'table':
            return React.createElement(RowViewTableIcon, { size: size, color: theme.fileUploaderFileTypeTableIconColor });
        case 'text':
            return React.createElement(RowViewTextIcon, { size: size, color: theme.fileUploaderFileTypeTextIconColor });
        case 'archive':
            return React.createElement(RowViewArchiveIcon, { size: size, color: theme.fileUploaderFileTypeArchiveIconColor });
        case 'folder':
            return React.createElement(RowViewFolderIcon, { size: size, color: theme.fileUploaderFileTypeFolderIconColor });
        default:
            return React.createElement(RowViewDocTextIcon, { size: size, color: theme.fileUploaderFileTypeUnknownIconColor });
    }
};
//# sourceMappingURL=FileUploaderFileTypeIcon.js.map