//  Package imports  //
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
//  Mastodon imports  //
import IconButton from '../../../../mastodon/components/icon_button';
//  Our imports  //
import StatusGalleryItem from './item';
const messages = defineMessages({
  toggle_visible: { id: 'media_gallery.toggle_visible', defaultMessage: 'Toggle visibility' },
});
@injectIntl
export default class StatusGallery extends React.PureComponent {
  static propTypes = {
    sensitive: PropTypes.bool,
    media: ImmutablePropTypes.list.isRequired,
    letterbox: PropTypes.bool,
    fullwidth: PropTypes.bool,
    height: PropTypes.number.isRequired,
    onOpenMedia: PropTypes.func.isRequired,
    intl: PropTypes.object.isRequired,
    autoPlayGif: PropTypes.bool.isRequired,
  };
  state = {
    visible: !this.props.sensitive,
  };
  handleOpen = () => {
    this.setState({ visible: !this.state.visible });
  }
  handleClick = (index) => {
    this.props.onOpenMedia(this.props.media, index);
  }
  render () {
    const { media, intl, sensitive, letterbox, fullwidth } = this.props;
    let children;
    if (!this.state.visible) {
      let warning;
      if (sensitive) {
        warning =