Skip to content
Extraits de code Groupes Projets
Valider ab7291b8 rédigé par Eugen Rochko's avatar Eugen Rochko
Parcourir les fichiers

Add ancestors/descendants during normalization in timeline reducer

This way replies will appear in the detailed view live if they are from
statuses that would be delivered to the user normally
parent dfd5deac
Branches
Étiquettes
Aucune requête de fusion associée trouvée
......@@ -28,7 +28,23 @@ function statusToMaps(state, status) {
state = statusToMaps(state, reblog);
}
// Replies
if (status.get('in_reply_to_id')) {
state = state.updateIn(['descendants', status.get('in_reply_to_id')], set => {
if (!Immutable.OrderedSet.isOrderedSet(set)) {
return Immutable.OrderedSet([status.get('id')]);
} else {
return set.add(status.get('id'));
}
});
}
return state.withMutations(map => {
if (status.get('in_reply_to_id')) {
map.updateIn(['descendants', status.get('in_reply_to_id')], Immutable.OrderedSet(), set => set.add(status.get('id')));
map.updateIn(['ancestors', status.get('id')], Immutable.OrderedSet(), set => set.add(status.get('in_reply_to_id')));
}
map.setIn(['accounts', account.get('id')], account);
map.setIn(['statuses', status.get('id')], status);
});
......@@ -68,12 +84,12 @@ function contextToMaps(state, status, ancestors, descendants) {
let ancestorsIds = ancestors.map(ancestor => {
state = statusToMaps(state, ancestor);
return ancestor.get('id');
});
}).toOrderedSet();
let descendantsIds = descendants.map(descendant => {
state = statusToMaps(state, descendant);
return descendant.get('id');
});
}).toOrderedSet();
return state.withMutations(map => {
map.setIn(['ancestors', status.get('id')], ancestorsIds);
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter