diff options
Diffstat (limited to 'src/state/queries/notifications')
-rw-r--r-- | src/state/queries/notifications/feed.ts | 18 | ||||
-rw-r--r-- | src/state/queries/notifications/util.ts | 18 |
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 |