Message: Invalidate big emoji on updates (#5469)

This commit is contained in:
zubiden 2025-01-21 18:21:04 +01:00 committed by Alexander Zinchuk
parent aabf78a8fa
commit 6174ffaf3e
2 changed files with 19 additions and 2 deletions

View File

@ -42,7 +42,6 @@ import {
SUPPORTED_PHOTO_CONTENT_TYPES, SUPPORTED_PHOTO_CONTENT_TYPES,
SUPPORTED_VIDEO_CONTENT_TYPES, SUPPORTED_VIDEO_CONTENT_TYPES,
} from '../../../config'; } from '../../../config';
import { getEmojiOnlyCountForMessage } from '../../../global/helpers/getEmojiOnlyCountForMessage';
import { fetchFile } from '../../../util/files'; import { fetchFile } from '../../../util/files';
import { compact, split } from '../../../util/iteratees'; import { compact, split } from '../../../util/iteratees';
import { getMessageKey } from '../../../util/keys/messageKey'; import { getMessageKey } from '../../../util/keys/messageKey';
@ -624,7 +623,6 @@ export async function editMessage({
const messageUpdate: Partial<ApiMessage> = { const messageUpdate: Partial<ApiMessage> = {
...message, ...message,
content: newContent, content: newContent,
emojiOnlyCount: getEmojiOnlyCountForMessage(newContent, message.groupedId),
isInvertedMedia, isInvertedMedia,
}; };

View File

@ -27,6 +27,7 @@ import { isLocalMessageId, type MessageKey } from '../../util/keys/messageKey';
import { import {
hasMessageTtl, isMediaLoadableInViewer, mergeIdRanges, orderHistoryIds, orderPinnedIds, hasMessageTtl, isMediaLoadableInViewer, mergeIdRanges, orderHistoryIds, orderPinnedIds,
} from '../helpers'; } from '../helpers';
import { getEmojiOnlyCountForMessage } from '../helpers/getEmojiOnlyCountForMessage';
import { import {
selectChatMessage, selectChatMessage,
selectChatMessages, selectChatMessages,
@ -264,9 +265,18 @@ export function updateChatMessage<T extends GlobalState>(
}; };
} }
} }
let emojiOnlyCount = message?.emojiOnlyCount;
if (messageUpdate.content) {
emojiOnlyCount = getEmojiOnlyCountForMessage(
messageUpdate.content, message?.groupedId || messageUpdate.groupedId,
);
}
const updatedMessage = { const updatedMessage = {
...message, ...message,
...messageUpdate, ...messageUpdate,
emojiOnlyCount,
}; };
if (!updatedMessage.id) { if (!updatedMessage.id) {
@ -283,9 +293,18 @@ export function updateScheduledMessage<T extends GlobalState>(
global: T, chatId: string, messageId: number, messageUpdate: Partial<ApiMessage>, global: T, chatId: string, messageId: number, messageUpdate: Partial<ApiMessage>,
): T { ): T {
const message = selectScheduledMessage(global, chatId, messageId)!; const message = selectScheduledMessage(global, chatId, messageId)!;
let emojiOnlyCount = message?.emojiOnlyCount;
if (messageUpdate.content) {
emojiOnlyCount = getEmojiOnlyCountForMessage(
messageUpdate.content, message?.groupedId || messageUpdate.groupedId,
);
}
const updatedMessage = { const updatedMessage = {
...message, ...message,
...messageUpdate, ...messageUpdate,
emojiOnlyCount,
}; };
if (!updatedMessage.id) { if (!updatedMessage.id) {