import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { Set as ImmutableSet } from 'immutable'; import noop from 'lodash/noop'; import { toggleStatusReport } from '../actions/reports'; import { MediaGallery, Video } from '../features/ui/util/async-components'; import Bundle from '../features/ui/util/bundle'; import StatusContent from './status_content'; import Switch from './switch'; const mapStateToProps = (state, { id }) => ({ status: state.getIn(['statuses', id]), checked: state.getIn(['reports', 'new', 'status_ids'], ImmutableSet()).includes(id), }); const mapDispatchToProps = (dispatch, { id }) => ({ onToggle(e) { dispatch(toggleStatusReport(id, e.target.checked)); }, }); export default @connect(mapStateToProps, mapDispatchToProps) class StatusCheckBox extends ImmutablePureComponent { static propTypes = { status: ImmutablePropTypes.map.isRequired, checked: PropTypes.bool, onToggle: PropTypes.func.isRequired, disabled: PropTypes.bool, }; render () { const { status, checked, onToggle, disabled } = this.props; let media = null; if (status.get('reblog')) return null if (status.get('media_attachments').size > 0) { if (status.get('media_attachments').some(item => item.get('type') === 'unknown')) { } else if (status.getIn(['media_attachments', 0, 'type']) === 'video') { const video = status.getIn(['media_attachments', 0]); media = ( {Component => ( )} ); } else { media = ( {Component => } ); } } return (
{media}
) } }