|
|
|
@ -2,6 +2,7 @@ import React from 'react'; |
|
|
|
|
import PropTypes from 'prop-types'; |
|
|
|
|
import ImmutablePropTypes from 'react-immutable-proptypes'; |
|
|
|
|
import ImmutablePureComponent from 'react-immutable-pure-component'; |
|
|
|
|
import Icon from 'mastodon/components/icon'; |
|
|
|
|
import { autoPlayGif, displayMedia } from 'mastodon/initial_state'; |
|
|
|
|
import classNames from 'classnames'; |
|
|
|
|
import { decode } from 'blurhash'; |
|
|
|
@ -91,6 +92,7 @@ export default class MediaItem extends ImmutablePureComponent { |
|
|
|
|
const title = status.get('spoiler_text') || attachment.get('description'); |
|
|
|
|
|
|
|
|
|
let thumbnail = ''; |
|
|
|
|
let icon; |
|
|
|
|
|
|
|
|
|
if (attachment.get('type') === 'unknown') { |
|
|
|
|
// Skip
|
|
|
|
@ -132,11 +134,20 @@ export default class MediaItem extends ImmutablePureComponent { |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!visible) { |
|
|
|
|
icon = ( |
|
|
|
|
<span className='account-gallery__item__icons'> |
|
|
|
|
<Icon id='eye-slash' /> |
|
|
|
|
</span> |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
<div className='account-gallery__item' style={{ width, height }}> |
|
|
|
|
<a className='media-gallery__item-thumbnail' href={status.get('url')} target='_blank' onClick={this.handleClick} title={title}> |
|
|
|
|
<canvas width={32} height={32} ref={this.setCanvasRef} className={classNames('media-gallery__preview', { 'media-gallery__preview--hidden': visible && loaded })} /> |
|
|
|
|
{visible && thumbnail} |
|
|
|
|
{!visible && icon} |
|
|
|
|
</a> |
|
|
|
|
</div> |
|
|
|
|
); |
|
|
|
|