Fix the missing date separator at the start of rooms

When we first hit the start of the room, we still have a pagination token, so
we hide the date separator. When we try to backpaginate again, we get an empty
result, and the pagination token is cleared.

Make sure that we update state. canBackPaginate even when there are no new
results, to handle this case.

Fixes https://github.com/vector-im/vector-web/issues/1014
pull/21833/head
Richard van der Hoff 2016-03-10 13:39:19 +00:00
parent ec2e27a754
commit 3bd33d0985
1 changed files with 7 additions and 9 deletions

View File

@ -188,7 +188,7 @@ var TimelinePanel = React.createClass({
debuglog("TimelinePanel: paginate complete backwards:"+backwards+"; success:"+r);
this.setState({[statekey]: false});
this._onTimelineUpdated(r);
this._onTimelineUpdated();
return r;
});
},
@ -555,7 +555,7 @@ var TimelinePanel = React.createClass({
// calling _onTimelineUpdated and updating the state.
var onLoaded = () => {
this._onTimelineUpdated(true);
this._onTimelineUpdated();
this.setState({timelineLoading: false}, () => {
// initialise the scroll state of the message panel
@ -586,17 +586,15 @@ var TimelinePanel = React.createClass({
prom.done();
},
_onTimelineUpdated: function(gotResults) {
_onTimelineUpdated: function() {
// we might have switched rooms since the load started - just bin
// the results if so.
if (this.unmounted) return;
if (gotResults) {
this.setState({
events: this._timelineWindow.getEvents(),
canBackPaginate: this._timelineWindow.canPaginate(EventTimeline.BACKWARDS),
});
}
this.setState({
events: this._timelineWindow.getEvents(),
canBackPaginate: this._timelineWindow.canPaginate(EventTimeline.BACKWARDS),
});
},
_indexForEventId: function(evId) {