The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/apps/meteor/client/hooks/roomActions/usePinnedMessagesRoomAction.ts

36 lines
1.1 KiB

import { isRoomFederated } from '@rocket.chat/core-typings';
import { useSetting } from '@rocket.chat/ui-contexts';
import type { RoomToolboxActionConfig } from '@rocket.chat/ui-contexts';
import { lazy, useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import { useRoom } from '../../views/room/contexts/RoomContext';
const PinnedMessagesTab = lazy(() => import('../../views/room/contextualBar/PinnedMessagesTab'));
export const usePinnedMessagesRoomAction = () => {
const room = useRoom();
const federated = isRoomFederated(room);
const enabled = useSetting('Message_AllowPinning', false);
const { t } = useTranslation();
return useMemo((): RoomToolboxActionConfig | undefined => {
if (!enabled) {
return undefined;
}
return {
id: 'pinned-messages',
groups: ['channel', 'group', 'direct', 'direct_multiple', 'team'],
title: 'Pinned_Messages',
icon: 'pin',
tabComponent: PinnedMessagesTab,
...(federated && {
tooltip: t('core.Pinned_messages_unavailable_for_federation'),
disabled: true,
}),
order: 9,
type: 'organization',
};
}, [enabled, federated, t]);
};