Skip to content

Commit

Permalink
Remove status context construction in the React side (#3331)
Browse files Browse the repository at this point in the history
because it may causes flicker on the conversation when it contains blocked/muted user's status.

We use `/api/v1/statuses/{id}/context` to obtain status ids in the
conversation which filters blocked/muted user, but also uses internal
cache constructed from `in_reply_to_id` by `normalizeStatus()` in
`reducers/timelines.js` on each status loading which doesn't filter.

So statuses appears in conversation if those are cached, even those
statuses are from blocked/muted user. Then context cache will be updated
with the result of the context API and those statuses will be removed.

I have left the `normalizeStatus()` function itself which is called many
functions in the file as a placeholder for now, but maybe it should be
removed completely.
  • Loading branch information
unarist authored and Gargron committed May 26, 2017
1 parent 2d97c89 commit 902d9e3
Showing 1 changed file with 0 additions and 13 deletions.
13 changes: 0 additions & 13 deletions app/javascript/mastodon/reducers/timelines.js
Expand Up @@ -91,19 +91,6 @@ const initialState = Immutable.Map({
});

const normalizeStatus = (state, status) => {
const replyToId = status.get('in_reply_to_id');
const id = status.get('id');

if (replyToId) {
if (!state.getIn(['descendants', replyToId], Immutable.List()).includes(id)) {
state = state.updateIn(['descendants', replyToId], Immutable.List(), set => set.push(id));
}

if (!state.getIn(['ancestors', id], Immutable.List()).includes(replyToId)) {
state = state.updateIn(['ancestors', id], Immutable.List(), set => set.push(replyToId));
}
}

return state;
};

Expand Down

0 comments on commit 902d9e3

Please sign in to comment.