diff --git a/src/components/middle/ActionMessage.tsx b/src/components/middle/ActionMessage.tsx index 1333b8da1..ab6c1d25f 100644 --- a/src/components/middle/ActionMessage.tsx +++ b/src/components/middle/ActionMessage.tsx @@ -1,6 +1,6 @@ import type { FC } from '../../lib/teact/teact'; import React, { - memo, useEffect, useMemo, useRef, + memo, useCallback, useEffect, useMemo, useRef, } from '../../lib/teact/teact'; import { getActions, getGlobal, withGlobal } from '../../global'; @@ -149,19 +149,26 @@ const ActionMessage: FC = ({ : undefined; }, [targetUserIds, usersById]); - const content = renderActionMessageText( - lang, - message, - senderUser, - senderChat, - targetUsers, - targetMessage, - targetChatId, - topic, - { isEmbedded }, - observeIntersectionForLoading, - observeIntersectionForPlaying, - ); + const renderContent = useCallback(() => { + return renderActionMessageText( + lang, + message, + senderUser, + senderChat, + targetUsers, + targetMessage, + targetChatId, + topic, + { isEmbedded }, + observeIntersectionForLoading, + observeIntersectionForPlaying, + ); + }, + [ + isEmbedded, lang, message, observeIntersectionForLoading, observeIntersectionForPlaying, senderChat, + senderUser, targetChatId, targetMessage, targetUsers, topic, + ]); + const { isContextMenuOpen, contextMenuPosition, handleBeforeContextMenu, handleContextMenu, @@ -190,7 +197,7 @@ const ActionMessage: FC = ({ } if (isEmbedded) { - return {content}; + return {renderContent()}; } function renderGift() { @@ -231,12 +238,12 @@ const ActionMessage: FC = ({ onMouseDown={handleMouseDown} onContextMenu={handleContextMenu} > - {!isSuggestedAvatar && {content}} + {!isSuggestedAvatar && {renderContent()}} {isGift && renderGift()} {isSuggestedAvatar && ( )} {contextMenuPosition && ( diff --git a/src/components/middle/ActionMessageSuggestedAvatar.tsx b/src/components/middle/ActionMessageSuggestedAvatar.tsx index c26e64b53..177a75ba0 100644 --- a/src/components/middle/ActionMessageSuggestedAvatar.tsx +++ b/src/components/middle/ActionMessageSuggestedAvatar.tsx @@ -19,12 +19,12 @@ import ConfirmDialog from '../ui/ConfirmDialog'; type OwnProps = { message: ApiMessage; - content?: TextPart; + renderContent: () => TextPart | undefined; }; const ActionMessageSuggestedAvatar: FC = ({ message, - content, + renderContent, }) => { const { openMediaViewer, uploadProfilePhoto, showNotification, @@ -102,7 +102,7 @@ const ActionMessageSuggestedAvatar: FC = ({ withVideo={isVideo} size="jumbo" /> - {content} + {renderContent()} {lang(isVideo ? 'ViewVideoAction' : 'ViewPhotoAction')} = ({ title={lang('SuggestedVideo')} confirmHandler={handleSetVideo} onClose={closeVideoModal} - textParts={content} + textParts={renderContent()} /> );