diff --git a/apps/meteor/client/components/message/ToolboxHolder.tsx b/apps/meteor/client/components/message/ToolboxHolder.tsx
index a7dd6e82e6b1..97e3f1acb4aa 100644
--- a/apps/meteor/client/components/message/ToolboxHolder.tsx
+++ b/apps/meteor/client/components/message/ToolboxHolder.tsx
@@ -1,4 +1,4 @@
-import type { IMessage } from '@rocket.chat/core-typings';
+import type { IMessage, ToolboxMessageType } from '@rocket.chat/core-typings';
import { MessageToolboxWrapper } from '@rocket.chat/fuselage';
import type { ReactElement } from 'react';
import React, { memo, useRef } from 'react';
@@ -8,14 +8,15 @@ import Toolbox from './toolbox/Toolbox';
type ToolboxHolderProps = {
message: IMessage;
+ context?: ToolboxMessageType;
};
-export const ToolboxHolder = (props: ToolboxHolderProps): ReactElement => {
+export const ToolboxHolder = ({ message, context }: ToolboxHolderProps): ReactElement => {
const ref = useRef(null);
const [visible] = useIsVisible(ref);
- return {visible && };
+ return {visible && };
};
export default memo(ToolboxHolder);
diff --git a/apps/meteor/client/components/message/toolbox/Toolbox.tsx b/apps/meteor/client/components/message/toolbox/Toolbox.tsx
index cf6ea04b157f..78f37e842e95 100644
--- a/apps/meteor/client/components/message/toolbox/Toolbox.tsx
+++ b/apps/meteor/client/components/message/toolbox/Toolbox.tsx
@@ -1,4 +1,4 @@
-import type { IMessage, IUser, IRoom, ITranslatedMessage } from '@rocket.chat/core-typings';
+import type { IMessage, IUser, IRoom, ITranslatedMessage, ToolboxMessageType } from '@rocket.chat/core-typings';
import { isThreadMessage, isRoomFederated } from '@rocket.chat/core-typings';
import { MessageToolbox, MessageToolboxItem } from '@rocket.chat/fuselage';
import { useUser, useUserSubscription, useSettings, useTranslation } from '@rocket.chat/ui-contexts';
@@ -15,14 +15,14 @@ import { useRoom } from '../../../views/room/contexts/RoomContext';
import { useToolboxContext } from '../../../views/room/contexts/ToolboxContext';
import MessageActionMenu from './MessageActionMenu';
-const getMessageContext = (message: IMessage, room: IRoom): MessageActionContext => {
+const getMessageContext = (message: IMessage, room: IRoom, context?: ToolboxMessageType): MessageActionContext => {
if (message.t === 'videoconf') {
return 'videoconf';
}
if (isRoomFederated(room)) {
return 'federated';
}
- if (isThreadMessage(message)) {
+ if (isThreadMessage(message) || context === 'thread') {
return 'threads';
}
return 'message';
@@ -30,9 +30,10 @@ const getMessageContext = (message: IMessage, room: IRoom): MessageActionContext
type ToolboxProps = {
message: IMessage & Partial;
+ messageContext?: ToolboxMessageType;
};
-const Toolbox = ({ message }: ToolboxProps): ReactElement | null => {
+const Toolbox = ({ message, messageContext }: ToolboxProps): ReactElement | null => {
const t = useTranslation();
const room = useRoom();
@@ -41,7 +42,7 @@ const Toolbox = ({ message }: ToolboxProps): ReactElement | null => {
const settings = useSettings();
const user = useUser() as IUser;
- const context = getMessageContext(message, room);
+ const context = getMessageContext(message, room, messageContext);
const mapSettings = useMemo(() => Object.fromEntries(settings.map((setting) => [setting._id, setting.value])), [settings]);
diff --git a/apps/meteor/client/components/message/variants/ThreadMessage.tsx b/apps/meteor/client/components/message/variants/ThreadMessage.tsx
index 4c364098c8be..d442db1b850d 100644
--- a/apps/meteor/client/components/message/variants/ThreadMessage.tsx
+++ b/apps/meteor/client/components/message/variants/ThreadMessage.tsx
@@ -87,7 +87,7 @@ const ThreadMessage = ({ message, sequential, unread }: ThreadMessageProps): Rea
{ignored ? : }
- {!message.private && }
+ {!message.private && }
);
};
diff --git a/packages/core-typings/src/IMessage/IMessage.ts b/packages/core-typings/src/IMessage/IMessage.ts
index 89073ac0b876..e9fffaa5e81e 100644
--- a/packages/core-typings/src/IMessage/IMessage.ts
+++ b/packages/core-typings/src/IMessage/IMessage.ts
@@ -186,6 +186,8 @@ export interface IMessage extends IRocketChatRecord {
};
}
+export type ToolboxMessageType = 'message' | 'thread' | 'federated';
+
export type MessageSystem = {
t: 'system';
};