mirror of https://github.com/Siphonay/mastodon
Remove status context construction in the React side (#3331)
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.
This commit is contained in:
parent
2d97c898f2
commit
902d9e34b4
|
@ -91,19 +91,6 @@ const initialState = Immutable.Map({
|
||||||
});
|
});
|
||||||
|
|
||||||
const normalizeStatus = (state, status) => {
|
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;
|
return state;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue