commit: aec70b44fc551db6471c8bc5210688b154ac661f
parent: 6f490b4bfed5fba9bd543a4c99b5694f37cd1f99
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Mon, 16 Oct 2017 15:59:30 +0200
Filter out duplicate IDs in timelines reducer (#5417)
Possibly the cause of #5379, #5377
Diffstat:
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/app/javascript/mastodon/reducers/timelines.js b/app/javascript/mastodon/reducers/timelines.js
@@ -31,10 +31,10 @@ const initialTimeline = ImmutableMap({
});
const normalizeTimeline = (state, timeline, statuses, next) => {
- const ids = ImmutableList(statuses.map(status => status.get('id')));
+ const oldIds = state.getIn([timeline, 'items'], ImmutableList());
+ const ids = ImmutableList(statuses.map(status => status.get('id'))).filter(newId => !oldIds.includes(newId));
const wasLoaded = state.getIn([timeline, 'loaded']);
const hadNext = state.getIn([timeline, 'next']);
- const oldIds = state.getIn([timeline, 'items'], ImmutableList());
return state.update(timeline, initialTimeline, map => map.withMutations(mMap => {
mMap.set('loaded', true);
@@ -45,8 +45,8 @@ const normalizeTimeline = (state, timeline, statuses, next) => {
};
const appendNormalizedTimeline = (state, timeline, statuses, next) => {
- const ids = ImmutableList(statuses.map(status => status.get('id')));
const oldIds = state.getIn([timeline, 'items'], ImmutableList());
+ const ids = ImmutableList(statuses.map(status => status.get('id'))).filter(newId => !oldIds.includes(newId));
return state.update(timeline, initialTimeline, map => map.withMutations(mMap => {
mMap.set('isLoading', false);