if (status) {
ancestorsIds = ancestorsIds.withMutations(mutable => {
- function addAncestor(id) {
- if (id) {
- const inReplyTo = state.getIn(['contexts', 'inReplyTos', id]);
+ let id = status.get('in_reply_to_id');
- mutable.unshift(id);
- addAncestor(inReplyTo);
- }
+ while (id) {
+ mutable.unshift(id);
+ id = state.getIn(['contexts', 'inReplyTos', id]);
}
-
- addAncestor(status.get('in_reply_to_id'));
});
descendantsIds = descendantsIds.withMutations(mutable => {
- function addDescendantOf(id) {
+ const ids = [status.get('id')];
+
+ while (ids.length > 0) {
+ let id = ids.shift();
const replies = state.getIn(['contexts', 'replies', id]);
if (replies) {
replies.forEach(reply => {
mutable.push(reply);
- addDescendantOf(reply);
+ ids.unshift(reply);
});
}
}
-
- addDescendantOf(status.get('id'));
});
}