Skip to content

Commit 8015c26

Browse files
authored
Hide last message in chat list if it's blocked (bluesky-social#10800)
1 parent c6e6b83 commit 8015c26

3 files changed

Lines changed: 8 additions & 2 deletions

File tree

src/components/dms/getMessageInfo.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {AppBskyEmbedRecord, ChatBskyConvoDefs} from '@atproto/api'
22
import {type I18n} from '@lingui/core'
33
import {msg} from '@lingui/core/macro'
44

5+
import {isBlockedOrBlocking} from '#/lib/moderation/blocked-and-muted'
56
import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name'
67
import {
78
postUriToRelativePath,
@@ -13,6 +14,7 @@ export type UserMessageInfo = {
1314
message: string | null
1415
sentAt: string
1516
reportableMessage?: ChatBskyConvoDefs.MessageView
17+
isBlockedMessage: boolean
1618
}
1719

1820
export function getMessageInfo({
@@ -36,6 +38,7 @@ export function getMessageInfo({
3638
const isGroup = ChatBskyConvoDefs.isGroupConvo(convo.kind)
3739

3840
const reportableMessage = isFromMe ? undefined : lastMessage
41+
const isBlockedMessage = sender ? isBlockedOrBlocking(sender) : false
3942

4043
const prefix = (message: string) => {
4144
if (isFromMe) {
@@ -89,5 +92,6 @@ export function getMessageInfo({
8992
message,
9093
sentAt: lastMessage.sentAt,
9194
reportableMessage,
95+
isBlockedMessage,
9296
}
9397
}

src/lib/moderation/blocked-and-muted.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type * as bsky from '#/types/bsky'
22

33
export function isBlockedOrBlocking(profile: bsky.profile.AnyProfileView) {
4-
return profile.viewer?.blockedBy || profile.viewer?.blocking
4+
return Boolean(profile.viewer?.blockedBy || profile.viewer?.blocking)
55
}
66

77
export function isMuted(profile: bsky.profile.AnyProfileView) {

src/screens/Messages/components/ChatListItem.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,9 @@ function BaseChatItem({
331331
i18n,
332332
})
333333
if (info) {
334-
lastMessage = info.message ?? lastMessage
334+
lastMessage = info.isBlockedMessage
335+
? l`This message is hidden`
336+
: (info.message ?? lastMessage)
335337
lastMessageSentAt = info.sentAt
336338
}
337339
}

0 commit comments

Comments
 (0)