import React from 'react'; import classNames from 'classnames'; import { Localizer } from '../../types/Util'; import { AttachmentType } from './types'; interface Props { alt: string; attachment: AttachmentType; url: string; height?: number; width?: number; overlayText?: string; bottomOverlay?: boolean; curveBottomLeft?: boolean; curveBottomRight?: boolean; curveTopLeft?: boolean; curveTopRight?: boolean; darkOverlay?: boolean; playIconOverlay?: boolean; i18n: Localizer; onClick?: (attachment: AttachmentType) => void; onError?: () => void; } export class Image extends React.Component { public render() { const { alt, attachment, bottomOverlay, curveBottomLeft, curveBottomRight, curveTopLeft, curveTopRight, darkOverlay, height, i18n, onClick, onError, overlayText, playIconOverlay, url, width, } = this.props; const { caption } = attachment || { caption: null }; return (
{ if (onClick) { onClick(attachment); } }} role="button" className={classNames( 'module-image', curveBottomLeft ? 'module-image--curved-bottom-left' : null, curveBottomRight ? 'module-image--curved-bottom-right' : null, curveTopLeft ? 'module-image--curved-top-left' : null, curveTopRight ? 'module-image--curved-top-right' : null )} > {alt} {caption ? ( {i18n('imageCaptionIconAlt')} ) : null}
{bottomOverlay ? (
) : null} {playIconOverlay ? (
) : null} {overlayText ? (
{overlayText}
) : null}
); } }