import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { connect } from 'react-redux'; import { getAverageFromBlurhash } from 'mastodon/blurhash'; import Footer from 'mastodon/features/picture_in_picture/components/footer'; import Video from 'mastodon/features/video'; const mapStateToProps = (state, { statusId }) => ({ status: state.getIn(['statuses', statusId]), }); class VideoModal extends ImmutablePureComponent { static propTypes = { media: ImmutablePropTypes.map.isRequired, statusId: PropTypes.string, status: ImmutablePropTypes.map, options: PropTypes.shape({ startTime: PropTypes.number, autoPlay: PropTypes.bool, defaultVolume: PropTypes.number, }), onClose: PropTypes.func.isRequired, onChangeBackgroundColor: PropTypes.func.isRequired, }; componentDidMount () { const { media, onChangeBackgroundColor } = this.props; const backgroundColor = getAverageFromBlurhash(media.get('blurhash')); if (backgroundColor) { onChangeBackgroundColor(backgroundColor); } } render () { const { media, status, onClose } = this.props; const options = this.props.options || {}; const language = status.getIn(['translation', 'language']) || status.get('language'); const description = media.getIn(['translation', 'description']) || media.get('description'); return (