diff --git a/apps/meteor/client/views/room/contextualBar/Threads/hooks/useLegacyThreadMessages.ts b/apps/meteor/client/views/room/contextualBar/Threads/hooks/useLegacyThreadMessages.ts index f96c721dbed9e..6545d85de16c2 100644 --- a/apps/meteor/client/views/room/contextualBar/Threads/hooks/useLegacyThreadMessages.ts +++ b/apps/meteor/client/views/room/contextualBar/Threads/hooks/useLegacyThreadMessages.ts @@ -1,4 +1,4 @@ -import type { IThreadMainMessage } from '@rocket.chat/core-typings'; +import type { IThreadMessage, IThreadMainMessage } from '@rocket.chat/core-typings'; import { isThreadMessage } from '@rocket.chat/core-typings'; import { useMethod } from '@rocket.chat/ui-contexts'; import { useEffect, useState, useCallback } from 'react'; @@ -7,7 +7,12 @@ import { Messages } from '../../../../../../app/models/client'; import { upsertMessageBulk } from '../../../../../../app/ui-utils/client/lib/RoomHistoryManager'; import { useReactiveValue } from '../../../../../hooks/useReactiveValue'; -export const useLegacyThreadMessages = (tmid: IThreadMainMessage['_id']) => { +export const useLegacyThreadMessages = ( + tmid: IThreadMainMessage['_id'], +): { + messages: Array; + loading: boolean; +} => { const messages = useReactiveValue( useCallback(() => { return Messages.find( diff --git a/apps/meteor/client/views/room/contextualBar/Threads/hooks/useThreadMainMessageQuery.ts b/apps/meteor/client/views/room/contextualBar/Threads/hooks/useThreadMainMessageQuery.ts index 6e831ac12ebbb..5c073d4ca012a 100644 --- a/apps/meteor/client/views/room/contextualBar/Threads/hooks/useThreadMainMessageQuery.ts +++ b/apps/meteor/client/views/room/contextualBar/Threads/hooks/useThreadMainMessageQuery.ts @@ -7,6 +7,7 @@ import { useCallback, useEffect, useRef } from 'react'; import type { FieldExpression, Query } from '../../../../../lib/minimongo'; import { createFilterFromQuery } from '../../../../../lib/minimongo'; +import { onClientMessageReceived } from '../../../../../lib/onClientMessageReceived'; import { useRoom } from '../../../contexts/RoomContext'; import { useGetMessageByID } from './useGetMessageByID'; @@ -93,7 +94,9 @@ export const useThreadMainMessageQuery = ( }, []); return useQuery(['rooms', room._id, 'threads', tmid, 'main-message'] as const, async ({ queryKey }) => { - const mainMessage = await getMessage(tmid); + const message = await getMessage(tmid); + + const mainMessage = (await onClientMessageReceived(message)) || message; if (!mainMessage && !isThreadMainMessage(mainMessage)) { throw new Error('Invalid main message');