- import { connect } from 'react-redux';
- import Status from '../components/status';
- import { makeGetStatus } from '../selectors';
- import {
- replyCompose,
- mentionCompose
- } from '../actions/compose';
- import {
- reblog,
- favourite,
- unreblog,
- unfavourite
- } from '../actions/interactions';
- import {
- blockAccount,
- muteAccount
- } from '../actions/accounts';
- import { deleteStatus } from '../actions/statuses';
- import { initReport } from '../actions/reports';
- import { openModal } from '../actions/modal';
- import { createSelector } from 'reselect'
- import { isMobile } from '../is_mobile'
-
- const makeMapStateToProps = () => {
- const getStatus = makeGetStatus();
-
- const mapStateToProps = (state, props) => ({
- status: getStatus(state, props.id),
- me: state.getIn(['meta', 'me'])
- });
-
- return mapStateToProps;
- };
-
- const mapDispatchToProps = (dispatch) => ({
-
- onReply (status, router) {
- dispatch(replyCompose(status, router));
- },
-
- onReblog (status) {
- if (status.get('reblogged')) {
- dispatch(unreblog(status));
- } else {
- dispatch(reblog(status));
- }
- },
-
- onFavourite (status) {
- if (status.get('favourited')) {
- dispatch(unfavourite(status));
- } else {
- dispatch(favourite(status));
- }
- },
-
- onDelete (status) {
- dispatch(deleteStatus(status.get('id')));
- },
-
- onMention (account, router) {
- dispatch(mentionCompose(account, router));
- },
-
- onOpenMedia (media, index) {
- dispatch(openModal('MEDIA', { media, index }));
- },
-
- onBlock (account) {
- dispatch(blockAccount(account.get('id')));
- },
-
- onReport (status) {
- dispatch(initReport(status.get('account'), status));
- },
-
- onMute (account) {
- dispatch(muteAccount(account.get('id')));
- },
-
- });
-
- export default connect(makeMapStateToProps, mapDispatchToProps)(Status);
|