chore: remove meteor.startup from permalink-pinned (#34023)

Co-authored-by: Tasso Evangelista <2263066+tassoevan@users.noreply.github.com>
pull/34121/head^2
Martin Schoeler 1 year ago committed by GitHub
parent 7c373e1f20
commit 924a06bee7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 26
      apps/meteor/app/ui-utils/client/lib/messageActionDefault.ts
  2. 12
      apps/meteor/client/components/message/toolbar/MessageToolbar.tsx
  3. 28
      apps/meteor/client/components/message/toolbar/usePermalinkAction.ts
  4. 1
      apps/meteor/client/startup/actionButtons/index.ts
  5. 33
      apps/meteor/client/startup/actionButtons/permalinkPinned.ts
  6. 1
      apps/meteor/client/startup/index.ts

@ -118,32 +118,6 @@ Meteor.startup(async () => {
group: 'message',
});
MessageAction.addButton({
id: 'permalink',
icon: 'permalink',
label: 'Copy_link',
// classes: 'clipboard',
context: ['message', 'message-mobile', 'threads', 'federated', 'videoconf', 'videoconf-threads'],
type: 'duplication',
async action(_, { message }) {
try {
const permalink = await getPermaLink(message._id);
await navigator.clipboard.writeText(permalink);
dispatchToastMessage({ type: 'success', message: t('Copied') });
} catch (e) {
dispatchToastMessage({ type: 'error', message: e });
}
},
condition({ subscription }) {
return !!subscription;
},
order: 5,
group: 'menu',
disabled({ message }) {
return isE2EEMessage(message);
},
});
MessageAction.addButton({
id: 'copy',
icon: 'copy',

@ -13,7 +13,7 @@ import MessageToolbarStarsActionMenu from './MessageToolbarStarsActionMenu';
import { useFollowMessageAction } from './useFollowMessageAction';
import { useJumpToMessageContextAction } from './useJumpToMessageContextAction';
import { useNewDiscussionMessageAction } from './useNewDiscussionMessageAction';
import { usePermalinkStar } from './usePermalinkStar';
import { usePermalinkAction } from './usePermalinkAction';
import { usePinMessageAction } from './usePinMessageAction';
import { useReplyInThreadMessageAction } from './useReplyInThreadMessageAction';
import { useStarMessageAction } from './useStarMessageAction';
@ -102,7 +102,15 @@ const MessageToolbar = ({
usePinMessageAction(message, { room, subscription });
useStarMessageAction(message, { room, user });
useUnstarMessageAction(message, { room, user });
usePermalinkStar(message, { subscription, user });
usePermalinkAction(message, { subscription, id: 'permalink-star', context: ['starred'], order: 10 });
usePermalinkAction(message, { subscription, id: 'permalink-pinned', context: ['pinned'], order: 5 });
usePermalinkAction(message, {
subscription,
id: 'permalink',
context: ['message', 'message-mobile', 'threads', 'federated', 'videoconf', 'videoconf-threads'],
type: 'duplication',
order: 5,
});
useFollowMessageAction(message, { room, user, context });
useUnFollowMessageAction(message, { room, user, context });
useReplyInThreadMessageAction(message, { room, subscription });

@ -1,15 +1,22 @@
import type { IMessage, ISubscription, IUser } from '@rocket.chat/core-typings';
import type { IMessage, ISubscription } from '@rocket.chat/core-typings';
import { isE2EEMessage } from '@rocket.chat/core-typings';
import { useToastMessageDispatch } from '@rocket.chat/ui-contexts';
import { useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import type { MessageActionConfig, MessageActionContext } from '../../../../app/ui-utils/client/lib/MessageAction';
import { MessageAction } from '../../../../app/ui-utils/client/lib/MessageAction';
import { getPermaLink } from '../../../lib/getPermaLink';
export const usePermalinkStar = (
export const usePermalinkAction = (
message: IMessage,
{ user, subscription }: { user: IUser | undefined; subscription: ISubscription | undefined },
{
subscription,
id,
context,
type,
order,
}: { subscription: ISubscription | undefined; context: MessageActionContext[]; order: number } & Pick<MessageActionConfig, 'id' | 'type'>,
) => {
const { t } = useTranslation();
@ -18,15 +25,12 @@ export const usePermalinkStar = (
const encrypted = isE2EEMessage(message);
useEffect(() => {
if (!subscription) {
return;
}
MessageAction.addButton({
id: 'permalink-star',
id,
icon: 'permalink',
label: 'Copy_link',
context: ['starred'],
context,
type,
async action() {
try {
const permalink = await getPermaLink(message._id);
@ -36,13 +40,13 @@ export const usePermalinkStar = (
dispatchToastMessage({ type: 'error', message: e });
}
},
order: 10,
order,
group: 'menu',
disabled: () => encrypted,
});
return () => {
MessageAction.removeButton('permalink-star');
MessageAction.removeButton(id);
};
}, [dispatchToastMessage, encrypted, message._id, message.starred, subscription, t, user?._id]);
}, [context, dispatchToastMessage, encrypted, id, message._id, order, subscription, t, type]);
};

@ -1,33 +0,0 @@
import { isE2EEMessage } from '@rocket.chat/core-typings';
import { Meteor } from 'meteor/meteor';
import { MessageAction } from '../../../app/ui-utils/client';
import { t } from '../../../app/utils/lib/i18n';
import { getPermaLink } from '../../lib/getPermaLink';
import { dispatchToastMessage } from '../../lib/toast';
Meteor.startup(() => {
MessageAction.addButton({
id: 'permalink-pinned',
icon: 'permalink',
label: 'Copy_link',
context: ['pinned'],
async action(_, { message }) {
try {
const permalink = await getPermaLink(message._id);
navigator.clipboard.writeText(permalink);
dispatchToastMessage({ type: 'success', message: t('Copied') });
} catch (e) {
dispatchToastMessage({ type: 'error', message: e });
}
},
condition({ subscription }) {
return !!subscription;
},
order: 5,
group: 'menu',
disabled({ message }) {
return isE2EEMessage(message);
},
});
});

@ -1,6 +1,5 @@
import '../lib/rooms/roomTypes';
import './absoluteUrl';
import './actionButtons';
import './afterLogoutCleanUp';
import './appRoot';
import './audit';

Loading…
Cancel
Save