diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-10-16 15:59:30 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-16 15:59:30 +0200 |
commit | aec70b44fc551db6471c8bc5210688b154ac661f (patch) | |
tree | 0097b8d43904d4658678edaf28e37108a06093c6 /app | |
parent | 6f490b4bfed5fba9bd543a4c99b5694f37cd1f99 (diff) |
Filter out duplicate IDs in timelines reducer (#5417)
Possibly the cause of #5379, #5377
Diffstat (limited to 'app')
-rw-r--r-- | app/javascript/mastodon/reducers/timelines.js | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/app/javascript/mastodon/reducers/timelines.js b/app/javascript/mastodon/reducers/timelines.js index b17d74ef3..c3f117647 100644 --- 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); |