|
|
|
@ -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>
|
|
|
|
|
);
|
|
|
|
|