import ImmutablePropTypes from 'react-immutable-proptypes'; import PureRenderMixin from 'react-addons-pure-render-mixin'; import { FormattedMessage } from 'react-intl'; const outerStyle = { marginTop: '8px', overflow: 'hidden', width: '100%', boxSizing: 'border-box' }; const spoilerStyle = { background: '#000', color: '#fff', textAlign: 'center', height: '100%', cursor: 'pointer', display: 'flex', alignItems: 'center', justifyContent: 'center', flexDirection: 'column' }; const spoilerSpanStyle = { display: 'block', fontSize: '14px', }; const spoilerSubSpanStyle = { display: 'block', fontSize: '11px', fontWeight: '500' }; const MediaGallery = React.createClass({ getInitialState () { return { visible: false }; }, propTypes: { sensitive: React.PropTypes.bool, media: ImmutablePropTypes.list.isRequired, height: React.PropTypes.number.isRequired, onOpenMedia: React.PropTypes.func.isRequired }, mixins: [PureRenderMixin], handleClick (url, e) { if (e.button === 0) { e.preventDefault(); this.props.onOpenMedia(url); } e.stopPropagation(); }, handleOpen () { this.setState({ visible: true }); }, render () { const { media, sensitive } = this.props; let children; if (sensitive && !this.state.visible) { children = (