about summary refs log tree commit diff
path: root/src/lib/api/feed-manip.ts
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2023-06-02 15:01:04 -0500
committerGitHub <noreply@github.com>2023-06-02 15:01:04 -0500
commite8843ded5bf1f3d97b735ffe8f8553de46f9b18b (patch)
tree9c94613890fdc5428875dede148a5dd48e1c21a3 /src/lib/api/feed-manip.ts
parent46c9de7c1865a57d2fef926db2d923a8687eca18 (diff)
downloadvoidsky-e8843ded5bf1f3d97b735ffe8f8553de46f9b18b.tar.zst
Fix a bunch of type errors and add a type-check to the github workflows (#837)
* Add yarn type-check

* Rename to yarn typecheck

* Fix a collection of type errors

* Add typecheck to automated tests

* add `dist` to exluded folders tsconfig

---------

Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
Diffstat (limited to 'src/lib/api/feed-manip.ts')
-rw-r--r--src/lib/api/feed-manip.ts41
1 files changed, 25 insertions, 16 deletions
diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts
index 035b36096..f2500c4f7 100644
--- a/src/lib/api/feed-manip.ts
+++ b/src/lib/api/feed-manip.ts
@@ -74,9 +74,12 @@ export class FeedViewPostsSlice {
   }
 
   flattenReplyParent() {
-    if (this.items[0].reply?.parent) {
-      this.isFlattenedReply = true
-      this.items.splice(0, 0, {post: this.items[0].reply?.parent})
+    if (this.items[0].reply) {
+      const reply = this.items[0].reply
+      if (AppBskyFeedDefs.isPostView(reply.parent)) {
+        this.isFlattenedReply = true
+        this.items.splice(0, 0, {post: reply.parent})
+      }
     }
   }
 }
@@ -130,16 +133,17 @@ export class FeedTuner {
 
     // turn non-threads with reply parents into threads
     for (const slice of slices) {
-      if (
-        !slice.isThread &&
-        !slice.items[0].reason &&
-        slice.items[0].reply?.parent &&
-        !this.seenUris.has(slice.items[0].reply?.parent.uri) &&
-        !soonToBeSeenUris.has(slice.items[0].reply?.parent.uri)
-      ) {
-        const uri = slice.items[0].reply?.parent.uri
-        slice.flattenReplyParent()
-        soonToBeSeenUris.add(uri)
+      if (!slice.isThread && !slice.items[0].reason && slice.items[0].reply) {
+        const reply = slice.items[0].reply
+        if (
+          AppBskyFeedDefs.isPostView(reply.parent) &&
+          !this.seenUris.has(reply.parent.uri) &&
+          !soonToBeSeenUris.has(reply.parent.uri)
+        ) {
+          const uri = reply.parent.uri
+          slice.flattenReplyParent()
+          soonToBeSeenUris.add(uri)
+        }
       }
     }
 
@@ -231,7 +235,12 @@ export class FeedTuner {
 }
 
 function getSelfReplyUri(item: FeedViewPost): string | undefined {
-  return item.reply?.parent.author.did === item.post.author.did
-    ? item.reply?.parent.uri
-    : undefined
+  if (item.reply) {
+    if (AppBskyFeedDefs.isPostView(item.reply.parent)) {
+      return item.reply.parent.author.did === item.post.author.did
+        ? item.reply.parent.uri
+        : undefined
+    }
+  }
+  return undefined
 }