import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; import { openModal } from '../actions/modal'; import { hideStatus, revealStatus, toggleStatusCollapse, translateStatus, undoStatusTranslation, } from '../actions/statuses'; import CompactedStatus from '../components/compacted_status'; import { makeGetStatus, makeGetPictureInPicture } from '../selectors'; const makeMapStateToProps = () => { const getStatus = makeGetStatus(); const getPictureInPicture = makeGetPictureInPicture(); const mapStateToProps = (state, props) => ({ status: getStatus(state, props), nextInReplyToId: props.nextId ? state.getIn(['statuses', props.nextId, 'in_reply_to_id']) : null, pictureInPicture: getPictureInPicture(state, props), }); return mapStateToProps; }; const mapDispatchToProps = (dispatch) => ({ onTranslate (status) { if (status.get('translation')) { dispatch(undoStatusTranslation(status.get('id'), status.get('poll'))); } else { dispatch(translateStatus(status.get('id'))); } }, onOpenMedia (statusId, media, index, lang) { dispatch(openModal({ modalType: 'MEDIA', modalProps: { statusId, media, index, lang }, })); }, onOpenVideo (statusId, media, lang, options) { dispatch(openModal({ modalType: 'VIDEO', modalProps: { statusId, media, lang, options }, })); }, onToggleHidden (status) { if (status.get('hidden')) { dispatch(revealStatus(status.get('id'))); } else { dispatch(hideStatus(status.get('id'))); } }, onToggleCollapsed (status, isCollapsed) { dispatch(toggleStatusCollapse(status.get('id'), isCollapsed)); }, onInteractionModal (type, status) { dispatch(openModal({ modalType: 'INTERACTION', modalProps: { type, accountId: status.getIn(['account', 'id']), url: status.get('uri'), }, })); }, }); export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(CompactedStatus));