1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
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);
|