diff --git a/src/components/left/main/hooks/useChatListEntry.tsx b/src/components/left/main/hooks/useChatListEntry.tsx index 36128da87..3c6e8fc44 100644 --- a/src/components/left/main/hooks/useChatListEntry.tsx +++ b/src/components/left/main/hooks/useChatListEntry.tsx @@ -116,7 +116,9 @@ export default function useChatListEntry({ return undefined; } - const senderName = getMessageSenderName(oldLang, chatId, lastMessageSender); + const senderName = lastMessageSender + ? getMessageSenderName(oldLang, chatId, lastMessageSender) + : undefined; return (

diff --git a/src/components/middle/search/MiddleSearchResult.tsx b/src/components/middle/search/MiddleSearchResult.tsx index da60cbf1f..7c62fd432 100644 --- a/src/components/middle/search/MiddleSearchResult.tsx +++ b/src/components/middle/search/MiddleSearchResult.tsx @@ -44,7 +44,7 @@ const MiddleSearchResult = ({ const peer = shouldShowChat ? messageChat : senderPeer; - const senderName = shouldShowChat ? getMessageSenderName(lang, message.chatId, senderPeer) : undefined; + const senderName = shouldShowChat && senderPeer ? getMessageSenderName(lang, message.chatId, senderPeer) : undefined; const handleClick = useLastCallback(() => { onClick(message); diff --git a/src/global/helpers/peers.ts b/src/global/helpers/peers.ts index 1ce8c5db0..d403a585f 100644 --- a/src/global/helpers/peers.ts +++ b/src/global/helpers/peers.ts @@ -3,6 +3,7 @@ import type { OldLangFn } from '../../hooks/useOldLang'; import type { CustomPeer } from '../../types'; import { SERVICE_NOTIFICATIONS_USER_ID } from '../../config'; +import { isUserId } from '../../util/entities/ids'; import { getTranslationFn, type LangFn } from '../../util/localization'; import { prepareSearchWordsForNeedle } from '../../util/searchWords'; import { selectChat, selectPeer, selectUser } from '../selectors'; @@ -110,10 +111,9 @@ export function getPeerFullTitle(lang: OldLangFn | LangFn, peer: ApiPeer | Custo return isApiPeerUser(peer) ? getUserFullName(peer) : getChatTitle(lang, peer); } -export function getMessageSenderName(lang: OldLangFn, chatId: string, sender?: ApiPeer) { - if (!sender) { - return undefined; - } +export function getMessageSenderName(lang: OldLangFn, chatId: string, sender: ApiPeer) { + // Hide sender name for private chats + if (isUserId(chatId)) return undefined; if (isApiPeerChat(sender)) { if (chatId === sender.id) return undefined; @@ -125,5 +125,5 @@ export function getMessageSenderName(lang: OldLangFn, chatId: string, sender?: A return lang('FromYou'); } - return getUserFirstOrLastName(sender); + return getPeerTitle(lang, sender); } diff --git a/src/util/notifications.tsx b/src/util/notifications.tsx index 386e99e9f..2180d518f 100644 --- a/src/util/notifications.tsx +++ b/src/util/notifications.tsx @@ -319,7 +319,8 @@ function getNotificationContent(chat: ApiChat, message: ApiMessage, reaction?: A const isChat = chat && (isChatChannel(chat) || message.senderId === message.chatId); // TODO[forums] Support ApiChat - const senderName = getMessageSenderName(oldTranslate, chat.id, isChat ? messageSenderChat : messageSenderUser); + const sender = isChat ? messageSenderChat : messageSenderUser; + const senderName = sender ? getMessageSenderName(oldTranslate, chat.id, sender) : undefined; let summary = jsxToHtml()[0].textContent || ''; if (hasReaction) {