diff --git a/src/components/common/Document.tsx b/src/components/common/Document.tsx index 8f8363e18..969de347c 100644 --- a/src/components/common/Document.tsx +++ b/src/components/common/Document.tsx @@ -81,7 +81,7 @@ const Document = ({ const [isFileIpDialogOpen, openFileIpDialog, closeFileIpDialog] = useFlag(); const [shouldNotWarnAboutFiles, setShouldNotWarnAboutFiles] = useState(false); - const { fileName, size, timestamp, mimeType } = document; + const { fileName, size, mimeType } = document; const extension = getDocumentExtension(document) || ''; const isIntersecting = useIsIntersecting(ref, observeIntersection); @@ -190,7 +190,7 @@ const Document = ({ name={fileName} extension={extension} size={size} - timestamp={datetime || timestamp} + timestamp={datetime} thumbnailDataUri={thumbDataUri} previewData={localBlobUrl || previewData} smaller={smaller} diff --git a/src/components/middle/MessageList.tsx b/src/components/middle/MessageList.tsx index 6b5063d83..998e8ef9e 100644 --- a/src/components/middle/MessageList.tsx +++ b/src/components/middle/MessageList.tsx @@ -52,7 +52,7 @@ import { selectUserFullInfo, } from '../../global/selectors'; import { selectIsChatRestricted } from '../../global/selectors/chats'; -import { selectActiveRestrictionReasons } from '../../global/selectors/messages'; +import { selectActiveRestrictionReasons, selectCurrentMessageList } from '../../global/selectors/messages'; import animateScroll, { isAnimatingScroll, restartCurrentScrollAnimation } from '../../util/animateScroll'; import buildClassName from '../../util/buildClassName'; import { isUserId } from '../../util/entities/ids'; @@ -143,6 +143,7 @@ type StateProps = { canTranslate?: boolean; translationLanguage?: string; shouldAutoTranslate?: boolean; + isActive?: boolean; }; enum Content { @@ -184,6 +185,7 @@ const MessageList: FC = ({ isChannelWithAvatars, canPost, isSynced, + isActive, // eslint-disable-next-line @typescript-eslint/no-shadow isChatMonoforum, isReady, @@ -381,7 +383,7 @@ const MessageList: FC = ({ threadId, isChatWithSelf, channelJoinInfo]); useInterval(() => { - if (!messageIds || !messagesById || type === 'scheduled' || isAccountFrozen) return; + if (!messageIds || !messagesById || type === 'scheduled' || isAccountFrozen || !isActive) return; if (!isChannelChat && !isGroupChat) return; const ids = messageIds.filter((id) => { @@ -395,7 +397,7 @@ const MessageList: FC = ({ }, MESSAGE_REACTIONS_POLLING_INTERVAL); useInterval(() => { - if (!messageIds || !messagesById || type === 'scheduled') { + if (!messageIds || !messagesById || type === 'scheduled' || !isActive) { return; } const storyDataList = messageIds.map((id) => messagesById[id]?.content.storyData).filter(Boolean); @@ -417,7 +419,7 @@ const MessageList: FC = ({ }, MESSAGE_STORY_POLLING_INTERVAL); useInterval(() => { - if (!messageIds || !messagesById || threadId !== MAIN_THREAD_ID || type === 'scheduled') { + if (!messageIds || !messagesById || threadId !== MAIN_THREAD_ID || type === 'scheduled' || !isActive) { return; } const global = getGlobal(); @@ -430,7 +432,7 @@ const MessageList: FC = ({ }, MESSAGE_COMMENTS_POLLING_INTERVAL, true); useInterval(() => { - if (!messageIds || !messagesById || threadId !== MAIN_THREAD_ID || type === 'scheduled') { + if (!messageIds || !messagesById || threadId !== MAIN_THREAD_ID || type === 'scheduled' || !isActive) { return; } const ids = messageIds.filter((id) => messagesById[id]?.factCheck?.shouldFetch); @@ -877,7 +879,12 @@ export default memo(withGlobal( const shouldAutoTranslate = chat?.hasAutoTranslation; const translationLanguage = selectTranslationLanguage(global); + const currentMessageList = selectCurrentMessageList(global); + const isActive = currentMessageList && currentMessageList.chatId === chatId + && currentMessageList.threadId === threadId && currentMessageList.type === type; + return { + isActive, areAdsEnabled, isChatLoaded: true, isRestricted,