import React from 'react'; import { isImageTypeSupported, isVideoTypeSupported, } from '../../util/GoogleChrome'; import { Image } from './Image'; import { StagedGenericAttachment } from './StagedGenericAttachment'; import { StagedPlaceholderAttachment } from './StagedPlaceholderAttachment'; import { LocalizerType } from '../../types/Util'; import { areAllAttachmentsVisual, AttachmentType, getUrl, isVideoAttachment, } from '../../types/Attachment'; interface Props { attachments: Array; i18n: LocalizerType; // onError: () => void; onClickAttachment: (attachment: AttachmentType) => void; onCloseAttachment: (attachment: AttachmentType) => void; onAddAttachment: () => void; onClose: () => void; } const IMAGE_WIDTH = 120; const IMAGE_HEIGHT = 120; export class AttachmentList extends React.Component { // tslint:disable-next-line max-func-body-length */ public render() { const { attachments, i18n, onAddAttachment, onClickAttachment, onCloseAttachment, onClose, } = this.props; if (!attachments.length) { return null; } const allVisualAttachments = areAllAttachmentsVisual(attachments); return (
{attachments.length > 1 ? (
) : null}
{(attachments || []).map((attachment, index) => { const { contentType } = attachment; if ( isImageTypeSupported(contentType) || isVideoTypeSupported(contentType) ) { const imageKey = getUrl(attachment) || attachment.fileName || index; const clickCallback = attachments.length > 1 ? onClickAttachment : undefined; return ( {i18n('stagedImageAttachment', { onCloseAttachment(attachment); }} /> ); } const genericKey = getUrl(attachment) || attachment.fileName || index; return ( ); })} {allVisualAttachments ? ( ) : null}
); } }