diff --git a/src/state/queries/notifications/feed.ts b/src/state/queries/notifications/feed.ts index 57d83cb5bb..0e3b32fb99 100644 --- a/src/state/queries/notifications/feed.ts +++ b/src/state/queries/notifications/feed.ts @@ -18,6 +18,8 @@ import {useCallback, useEffect, useMemo, useRef} from 'react' import { + AppBskyEmbedRecord, + AppBskyEmbedRecordWithMedia, AppBskyFeedDefs, AppBskyFeedPost, AtUri, @@ -188,6 +190,12 @@ export function useNotificationFeedQuery(opts: { hiddenReplyUris.has(item.subjectUri) return !isHiddenReply }) + .filter(item => { + if (item.type === 'quote' && item.subject) { + return !hasDetachedQuoteEmbed(item.subject) + } + return true + }) .filter(item => { if ( item.type === 'reply' || @@ -273,6 +281,16 @@ export function useNotificationFeedQuery(opts: { return query } +function hasDetachedQuoteEmbed(subject: AppBskyFeedDefs.PostView): boolean { + if (AppBskyEmbedRecord.isView(subject.embed)) { + return AppBskyEmbedRecord.isViewDetached(subject.embed.record) + } + if (AppBskyEmbedRecordWithMedia.isView(subject.embed)) { + return AppBskyEmbedRecord.isViewDetached(subject.embed.record.record) + } + return false +} + export function* findAllPostsInQueryData( queryClient: QueryClient, uri: string,