diff --git a/apps/meteor/app/ui-utils/client/lib/MessageAction.ts b/apps/meteor/app/ui-utils/client/lib/MessageAction.ts index 9c024554c0f8f..d1cc7779dd31b 100644 --- a/apps/meteor/app/ui-utils/client/lib/MessageAction.ts +++ b/apps/meteor/app/ui-utils/client/lib/MessageAction.ts @@ -23,6 +23,7 @@ export type MessageActionConfig = { icon: IconName; variant?: 'danger' | 'success' | 'warning'; label: TranslationKey; + tooltip?: string; order: number; group: MessageActionGroup; context?: MessageActionContext[]; diff --git a/apps/meteor/client/components/message/toolbar/MessageToolbarActionMenu.tsx b/apps/meteor/client/components/message/toolbar/MessageToolbarActionMenu.tsx index af0501ca8f288..47f7ac67c2c17 100644 --- a/apps/meteor/client/components/message/toolbar/MessageToolbarActionMenu.tsx +++ b/apps/meteor/client/components/message/toolbar/MessageToolbarActionMenu.tsx @@ -99,9 +99,8 @@ const MessageToolbarActionMenu = ({ message, context, room, subscription, onChan content: t(option.label), onClick: option.action, type: option.type, + ...(option.tooltip && { tooltip: option.tooltip }), ...(typeof option.disabled === 'boolean' && { disabled: option.disabled }), - ...(typeof option.disabled === 'boolean' && - option.disabled && { tooltip: t('Action_not_available_encrypted_content', { action: t(option.label) }) }), })) .reduce((acc, option) => { const group = option.type ? option.type : ''; diff --git a/apps/meteor/client/components/message/toolbar/MessageToolbarStarsActionMenu.tsx b/apps/meteor/client/components/message/toolbar/MessageToolbarStarsActionMenu.tsx index eca8b4e845a2f..3f477cbfc0701 100644 --- a/apps/meteor/client/components/message/toolbar/MessageToolbarStarsActionMenu.tsx +++ b/apps/meteor/client/components/message/toolbar/MessageToolbarStarsActionMenu.tsx @@ -37,9 +37,8 @@ const MessageToolbarStarsActionMenu = ({ message, context, onChangeMenuVisibilit content: t(option.label), onClick: option.action, type: option.type, + ...(option.tooltip && { tooltip: option.tooltip }), ...(typeof option.disabled === 'boolean' && { disabled: option.disabled }), - ...(typeof option.disabled === 'boolean' && - option.disabled && { tooltip: t('Action_not_available_encrypted_content', { action: t(option.label) }) }), }; const group = option.type || ''; diff --git a/apps/meteor/client/components/message/toolbar/usePermalinkAction.ts b/apps/meteor/client/components/message/toolbar/usePermalinkAction.ts index d3d0ea975dc25..6ddc0a13139a2 100644 --- a/apps/meteor/client/components/message/toolbar/usePermalinkAction.ts +++ b/apps/meteor/client/components/message/toolbar/usePermalinkAction.ts @@ -34,5 +34,6 @@ export const usePermalinkAction = ( order, group: 'menu', disabled: encrypted, + ...(encrypted && { tooltip: t('Action_not_available_encrypted_content', { action: t('Copy_link') }) }), }; }; diff --git a/apps/meteor/client/components/message/toolbar/useReplyInDMAction.ts b/apps/meteor/client/components/message/toolbar/useReplyInDMAction.ts index 40bbfdfbc46d9..98532cc6a1ddd 100644 --- a/apps/meteor/client/components/message/toolbar/useReplyInDMAction.ts +++ b/apps/meteor/client/components/message/toolbar/useReplyInDMAction.ts @@ -1,6 +1,7 @@ import { type IMessage, type ISubscription, type IRoom, isE2EEMessage } from '@rocket.chat/core-typings'; import { usePermission, useRouter, useUser } from '@rocket.chat/ui-contexts'; import { useCallback, useMemo } from 'react'; +import { useTranslation } from 'react-i18next'; import { useShallow } from 'zustand/shallow'; import type { MessageActionConfig } from '../../../../app/ui-utils/client/lib/MessageAction'; @@ -17,6 +18,7 @@ export const useReplyInDMAction = ( const encrypted = isE2EEMessage(message); const canCreateDM = usePermission('create-d'); const isLayoutEmbedded = useEmbeddedLayout(); + const { t } = useTranslation(); const roomPredicate = useCallback( (record: IRoom): boolean => { @@ -70,5 +72,6 @@ export const useReplyInDMAction = ( order: 0, group: 'menu', disabled: encrypted, + ...(encrypted && { tooltip: t('Action_not_available_encrypted_content', { action: t('Reply_in_direct_message') }) }), }; };