diff options
Diffstat (limited to 'src/state/models/feeds')
-rw-r--r-- | src/state/models/feeds/notifications.ts | 4 | ||||
-rw-r--r-- | src/state/models/feeds/posts.ts | 25 |
2 files changed, 28 insertions, 1 deletions
diff --git a/src/state/models/feeds/notifications.ts b/src/state/models/feeds/notifications.ts index 02f58819f..3ffd10b99 100644 --- a/src/state/models/feeds/notifications.ts +++ b/src/state/models/feeds/notifications.ts @@ -111,6 +111,10 @@ export class NotificationsFeedItemModel { addedInfo?.profileLabels || [], ), isMuted: this.author.viewer?.muted || addedInfo?.isMuted || false, + isBlocking: + !!this.author.viewer?.blocking || addedInfo?.isBlocking || false, + isBlockedBy: + !!this.author.viewer?.blockedBy || addedInfo?.isBlockedBy || false, } } diff --git a/src/state/models/feeds/posts.ts b/src/state/models/feeds/posts.ts index 62c6da3de..62047acba 100644 --- a/src/state/models/feeds/posts.ts +++ b/src/state/models/feeds/posts.ts @@ -23,7 +23,11 @@ import {updateDataOptimistically} from 'lib/async/revertible' import {PostLabelInfo, PostModeration} from 'lib/labeling/types' import { getEmbedLabels, + getEmbedMuted, + getEmbedBlocking, + getEmbedBlockedBy, getPostModeration, + mergePostModerations, filterAccountLabels, filterProfileLabels, } from 'lib/labeling/helpers' @@ -97,7 +101,18 @@ export class PostsFeedItemModel { ), accountLabels: filterAccountLabels(this.post.author.labels), profileLabels: filterProfileLabels(this.post.author.labels), - isMuted: this.post.author.viewer?.muted || false, + isMuted: + this.post.author.viewer?.muted || + getEmbedMuted(this.post.embed) || + false, + isBlocking: + !!this.post.author.viewer?.blocking || + getEmbedBlocking(this.post.embed) || + false, + isBlockedBy: + !!this.post.author.viewer?.blockedBy || + getEmbedBlockedBy(this.post.embed) || + false, } } @@ -240,6 +255,10 @@ export class PostsFeedSliceModel { return this.items[0] } + get moderation() { + return mergePostModerations(this.items.map(item => item.moderation)) + } + containsUri(uri: string) { return !!this.items.find(item => item.post.uri === uri) } @@ -265,6 +284,8 @@ export class PostsFeedModel { isRefreshing = false hasNewLatest = false hasLoaded = false + isBlocking = false + isBlockedBy = false error = '' loadMoreError = '' params: GetTimeline.QueryParams | GetAuthorFeed.QueryParams @@ -553,6 +574,8 @@ export class PostsFeedModel { this.isLoading = false this.isRefreshing = false this.hasLoaded = true + this.isBlocking = error instanceof GetAuthorFeed.BlockedActorError + this.isBlockedBy = error instanceof GetAuthorFeed.BlockedByActorError this.error = cleanError(error) this.loadMoreError = cleanError(loadMoreError) if (error) { |