import { defineMessages, injectIntl, FormattedMessage } from 'react-intl' import { followAccount, unfollowAccount, blockAccount, unblockAccount, muteAccount, unmuteAccount, } from '../actions/accounts' import { openModal } from '../actions/modal' import { initMuteModal } from '../actions/mutes' import { unfollowModal } from '../initial_state' import { makeGetAccount } from '../selectors' import Account from '../components/account' const messages = defineMessages({ unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' }, }) const makeMapStateToProps = () => { const getAccount = makeGetAccount() const mapStateToProps = (state, props) => ({ account: getAccount(state, props.id), }) return mapStateToProps } const mapDispatchToProps = (dispatch, { intl }) => ({ onFollow (account) { if (account.getIn(['relationship', 'following']) || account.getIn(['relationship', 'requested'])) { if (unfollowModal) { dispatch(openModal('UNFOLLOW', { accountId: account.get('id'), })) } else { dispatch(unfollowAccount(account.get('id'))) } } else { dispatch(followAccount(account.get('id'))) } }, onBlock (account) { if (account.getIn(['relationship', 'blocking'])) { dispatch(unblockAccount(account.get('id'))) } else { dispatch(blockAccount(account.get('id'))) } }, onMute (account) { if (account.getIn(['relationship', 'muting'])) { dispatch(unmuteAccount(account.get('id'))) } else { dispatch(initMuteModal(account)) } }, onMuteNotifications (account, notifications) { dispatch(muteAccount(account.get('id'), notifications)) }, }) export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Account))