about summary refs log tree commit diff
path: root/src/state/queries/usePostThread/traversal.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/state/queries/usePostThread/traversal.ts')
-rw-r--r--src/state/queries/usePostThread/traversal.ts15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/state/queries/usePostThread/traversal.ts b/src/state/queries/usePostThread/traversal.ts
index 7d8cd6464..2809d32e9 100644
--- a/src/state/queries/usePostThread/traversal.ts
+++ b/src/state/queries/usePostThread/traversal.ts
@@ -372,16 +372,21 @@ export function sortAndAnnotateThreadItems(
           /*
            * Tree-view only.
            *
-           * If there's an upcoming parent read more, this branch is part of the
-           * last branch of the sub-tree, and the item itself is the last child,
-           * insert the parent "read more".
+           * If there's an upcoming parent read more, this branch is part of a
+           * branch of the sub-tree that is deeper than the
+           * `upcomingParentReadMore`, and the item following the current item
+           * is either undefined or less-or-equal-to the depth of the
+           * `upcomingParentReadMore`, then we know it's time to drop in the
+           * parent read more.
            */
           if (
             view === 'tree' &&
             metadata.upcomingParentReadMore &&
-            metadata.isPartOfLastBranchFromDepth ===
+            metadata.isPartOfLastBranchFromDepth &&
+            metadata.isPartOfLastBranchFromDepth >=
               metadata.upcomingParentReadMore.depth &&
-            metadata.isLastChild
+            (metadata.nextItemDepth === undefined ||
+              metadata.nextItemDepth <= metadata.upcomingParentReadMore.depth)
           ) {
             subset.splice(
               i + 1,