diff options
author | Claire <claire.github-309c@sitedethib.com> | 2021-11-25 23:46:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-25 23:46:39 +0100 |
commit | b1fd6d44901a13450d22884b02eb6e9ae4fc1248 (patch) | |
tree | a5ede88e9feb347ac1ef9c545cde7c389c8fedf5 | |
parent | 013bee6afb9f76c354e5f8d096d9c85d1ac484ce (diff) |
Fix handling of recursive toots in WebUI (#17041)
-rw-r--r-- | app/javascript/mastodon/features/status/index.js | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js index 055963d14..f342a3641 100644 --- a/app/javascript/mastodon/features/status/index.js +++ b/app/javascript/mastodon/features/status/index.js @@ -83,7 +83,7 @@ const makeMapStateToProps = () => { ancestorsIds = ancestorsIds.withMutations(mutable => { let id = statusId; - while (id) { + while (id && !mutable.includes(id)) { mutable.unshift(id); id = inReplyTos.get(id); } @@ -101,7 +101,7 @@ const makeMapStateToProps = () => { const ids = [statusId]; while (ids.length > 0) { - let id = ids.shift(); + let id = ids.pop(); const replies = contextReplies.get(id); if (statusId !== id) { @@ -110,7 +110,7 @@ const makeMapStateToProps = () => { if (replies) { replies.reverse().forEach(reply => { - ids.unshift(reply); + if (!ids.includes(reply) && !descendantsIds.includes(reply) && statusId !== reply) ids.push(reply); }); } } |