diff options
Diffstat (limited to 'app/assets/javascripts/components/containers/account_container.jsx')
-rw-r--r-- | app/assets/javascripts/components/containers/account_container.jsx | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/app/assets/javascripts/components/containers/account_container.jsx b/app/assets/javascripts/components/containers/account_container.jsx new file mode 100644 index 000000000..1f49f9819 --- /dev/null +++ b/app/assets/javascripts/components/containers/account_container.jsx @@ -0,0 +1,30 @@ +import { connect } from 'react-redux'; +import { makeGetAccount } from '../selectors'; +import Account from '../components/account'; +import { + followAccount, + unfollowAccount +} from '../actions/accounts'; + +const makeMapStateToProps = () => { + const getAccount = makeGetAccount(); + + const mapStateToProps = (state, props) => ({ + account: getAccount(state, props.id), + me: state.getIn(['meta', 'me']) + }); + + return mapStateToProps; +}; + +const mapDispatchToProps = (dispatch) => ({ + onFollow (account) { + if (account.getIn(['relationship', 'following'])) { + dispatch(unfollowAccount(account.get('id'))); + } else { + dispatch(followAccount(account.get('id'))); + } + } +}); + +export default connect(makeMapStateToProps, mapDispatchToProps)(Account); |