import { connect } from 'react-redux'; import StatusList from '../components/status_list'; import { replyCompose } from '../actions/compose'; import { reblog, favourite } from '../actions/interactions'; function selectStatus(state, id) { let status = state.getIn(['timelines', 'statuses', id]); status = status.set('account', state.getIn(['timelines', 'accounts', status.get('account')])); if (status.get('reblog') !== null) { status = status.set('reblog', selectStatus(state, status.get('reblog'))); } return status; }; const mapStateToProps = function (state, props) { return { statuses: state.getIn(['timelines', props.type]).map(id => selectStatus(state, id)) }; }; const mapDispatchToProps = function (dispatch) { return { onReply: function (status) { dispatch(replyCompose(status)); }, onFavourite: function (status) { dispatch(favourite(status)); }, onReblog: function (status) { dispatch(reblog(status)); } }; }; export default connect(mapStateToProps, mapDispatchToProps)(StatusList);