diff --git a/scss/components/_images.scss b/scss/components/_images.scss index b6ff791b..607769ee 100644 --- a/scss/components/_images.scss +++ b/scss/components/_images.scss @@ -72,6 +72,41 @@ &-caption { font-size: $fontSizeSm; } + + &-overlay { + background: rgba(0, 0, 0, 0.6); + position: absolute; + width: 100%; + height: 100%; + display: none; + top: 0; + left: 0; + + justify-content: center; + align-items: center; + align-content: center; + flex-wrap: wrap; + color: #fff; + + > div { + width: 100%; + text-align: center; + margin-bottom: 5px; + } + + > a { + cursor: pointer; + color: #fff; + display: inline-block; + padding: 0 5px; + line-height: 1; + font-size: px2rem(16px); + } + } + + &-thumb:hover &-overlay { + display: flex; + } } .#{$ns}ImageField { diff --git a/src/renderers/Image.tsx b/src/renderers/Image.tsx index b59a1c30..c62938a1 100644 --- a/src/renderers/Image.tsx +++ b/src/renderers/Image.tsx @@ -33,7 +33,26 @@ export interface ImageThumbProps { export class ImageThumb extends React.Component { @autobind handleEnlarge() { - debugger; + const { + onEnlarge, + src, + originalSrc, + title, + caption, + thumbMode, + thumbRatio + } = this.props; + + onEnlarge && + originalSrc && + onEnlarge({ + src, + originalSrc, + title, + caption, + thumbMode, + thumbRatio + }); } render() { @@ -68,7 +87,7 @@ export class ImageThumb extends React.Component { /> {enlargeAble ? ( -
+
void; + showDimensions?: boolean; } export class ImageField extends React.Component { @@ -128,7 +158,11 @@ export class ImageField extends React.Component { src, thumbMode, thumbRatio, - placeholder + placeholder, + originalSrc, + enlargeAble, + onEnlarge, + showDimensions } = this.props; const finnalSrc = src ? filter(src, data, '| raw') : ''; @@ -144,6 +178,10 @@ export class ImageField extends React.Component { caption={filter(imageCaption, data)} thumbMode={thumbMode} thumbRatio={thumbRatio} + originalSrc={originalSrc} + enlargeAble={enlargeAble} + onEnlarge={onEnlarge} + showDimensions={showDimensions} /> ) : ( {placeholder}