Fix infinite scrolling breaking after navigation

This commit is contained in:
Eugen Rochko 2017-02-19 21:37:04 +01:00
parent 4aa5ebe591
commit c50256d25c
3 changed files with 11 additions and 4 deletions

View file

@ -37,9 +37,12 @@ const normalizeNotifications = (state, notifications, next) => {
items = items.set(i, notificationToMap(n));
});
if (state.get('next') === null) {
state = state.set('next', next);
}
return state
.update('items', list => loaded ? list.unshift(...items) : list.push(...items))
.set('next', next)
.set('loaded', true)
.set('isLoading', false);
};

View file

@ -101,7 +101,10 @@ const normalizeTimeline = (state, timeline, statuses, next) => {
state = state.setIn([timeline, 'loaded'], true);
state = state.setIn([timeline, 'isLoading'], false);
state = state.setIn([timeline, 'next'], next);
if (state.getIn([timeline, 'next']) === null) {
state = state.setIn([timeline, 'next'], next);
}
return state.updateIn([timeline, 'items'], Immutable.List(), list => (loaded ? list.unshift(...ids) : ids));
};
@ -237,6 +240,7 @@ const resetTimeline = (state, timeline, id) => {
.set('id', id)
.set('isLoading', true)
.set('loaded', false)
.set('next', null)
.update('items', list => list.clear()));
} else {
state = state.setIn([timeline, 'isLoading'], true);