Keep timelines in the UI trimmed when possible

This commit is contained in:
Eugen Rochko
2016-12-03 21:04:57 +01:00
parent b14b5e3b44
commit 565cd95bca
6 changed files with 113 additions and 41 deletions

View File

@ -47,13 +47,13 @@ const HashtagTimeline = React.createClass({
const { dispatch } = this.props;
const { id } = this.props.params;
dispatch(refreshTimeline('tag', true, id));
dispatch(refreshTimeline('tag', id));
this._subscribe(dispatch, id);
},
componentWillReceiveProps (nextProps) {
if (nextProps.params.id !== this.props.params.id) {
this.props.dispatch(refreshTimeline('tag', true, nextProps.params.id));
this.props.dispatch(refreshTimeline('tag', nextProps.params.id));
this._unsubscribe();
this._subscribe(this.props.dispatch, nextProps.params.id);
}

View File

@ -1,16 +1,25 @@
import { connect } from 'react-redux';
import StatusList from '../../../components/status_list';
import { expandTimeline } from '../../../actions/timelines';
import { expandTimeline, scrollTopTimeline } from '../../../actions/timelines';
import Immutable from 'immutable';
const mapStateToProps = (state, props) => ({
statusIds: state.getIn(['timelines', props.type], Immutable.List())
statusIds: state.getIn(['timelines', props.type, 'items'], Immutable.List())
});
const mapDispatchToProps = function (dispatch, props) {
return {
onScrollToBottom () {
dispatch(scrollTopTimeline(props.type, false));
dispatch(expandTimeline(props.type, props.id));
},
onScrollToTop () {
dispatch(scrollTopTimeline(props.type, true));
},
onScroll () {
dispatch(scrollTopTimeline(props.type, false));
}
};
};