about summary refs log tree commit diff
path: root/src/state/queries/notifications
diff options
context:
space:
mode:
Diffstat (limited to 'src/state/queries/notifications')
-rw-r--r--src/state/queries/notifications/feed.ts18
-rw-r--r--src/state/queries/notifications/util.ts18
2 files changed, 22 insertions, 14 deletions
diff --git a/src/state/queries/notifications/feed.ts b/src/state/queries/notifications/feed.ts
index 72100a624..396994110 100644
--- a/src/state/queries/notifications/feed.ts
+++ b/src/state/queries/notifications/feed.ts
@@ -295,9 +295,11 @@ export function* findAllPostsInQueryData(
           }
         }
 
-        const quotedPost = getEmbeddedPost(item.subject?.embed)
-        if (quotedPost && didOrHandleUriMatches(atUri, quotedPost)) {
-          yield embedViewRecordToPostView(quotedPost!)
+        if (AppBskyFeedDefs.isPostView(item.subject)) {
+          const quotedPost = getEmbeddedPost(item.subject?.embed)
+          if (quotedPost && didOrHandleUriMatches(atUri, quotedPost)) {
+            yield embedViewRecordToPostView(quotedPost!)
+          }
         }
       }
     }
@@ -307,7 +309,7 @@ export function* findAllPostsInQueryData(
 export function* findAllProfilesInQueryData(
   queryClient: QueryClient,
   did: string,
-): Generator<AppBskyActorDefs.ProfileView, void> {
+): Generator<AppBskyActorDefs.ProfileViewBasic, void> {
   const queryDatas = queryClient.getQueriesData<InfiniteData<FeedPage>>({
     queryKey: [RQKEY_ROOT],
   })
@@ -323,9 +325,11 @@ export function* findAllProfilesInQueryData(
         ) {
           yield item.subject.author
         }
-        const quotedPost = getEmbeddedPost(item.subject?.embed)
-        if (quotedPost?.author.did === did) {
-          yield quotedPost.author
+        if (AppBskyFeedDefs.isPostView(item.subject)) {
+          const quotedPost = getEmbeddedPost(item.subject?.embed)
+          if (quotedPost?.author.did === did) {
+            yield quotedPost.author
+          }
         }
       }
     }
diff --git a/src/state/queries/notifications/util.ts b/src/state/queries/notifications/util.ts
index 0d72e9e92..f6f53f58f 100644
--- a/src/state/queries/notifications/util.ts
+++ b/src/state/queries/notifications/util.ts
@@ -14,6 +14,7 @@ import {QueryClient} from '@tanstack/react-query'
 import chunk from 'lodash.chunk'
 
 import {labelIsHideableOffense} from '#/lib/moderation'
+import * as bsky from '#/types/bsky'
 import {precacheProfile} from '../profile'
 import {FeedNotification, FeedPage, NotificationType} from './types'
 
@@ -205,12 +206,9 @@ async function fetchSubjects(
     ),
   )
   const postsMap = new Map<string, AppBskyFeedDefs.PostView>()
-  const packsMap = new Map<string, AppBskyGraphDefs.StarterPackView>()
+  const packsMap = new Map<string, AppBskyGraphDefs.StarterPackViewBasic>()
   for (const post of postsChunks.flat()) {
-    if (
-      AppBskyFeedPost.isRecord(post.record) &&
-      AppBskyFeedPost.validateRecord(post.record).success
-    ) {
+    if (AppBskyFeedPost.isRecord(post.record)) {
       postsMap.set(post.uri, post)
     }
   }
@@ -255,8 +253,14 @@ function getSubjectUri(
     return notif.uri
   } else if (type === 'post-like' || type === 'repost') {
     if (
-      AppBskyFeedRepost.isRecord(notif.record) ||
-      AppBskyFeedLike.isRecord(notif.record)
+      bsky.dangerousIsType<AppBskyFeedRepost.Record>(
+        notif.record,
+        AppBskyFeedRepost.isRecord,
+      ) ||
+      bsky.dangerousIsType<AppBskyFeedLike.Record>(
+        notif.record,
+        AppBskyFeedLike.isRecord,
+      )
     ) {
       return typeof notif.record.subject?.uri === 'string'
         ? notif.record.subject?.uri