RocketChat/Rocket.Chat

View on GitHub
apps/meteor/client/views/room/lib/quickActions.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import type { IRoom } from '@rocket.chat/core-typings';
import type { Keys as IconName } from '@rocket.chat/icons';
import type { TranslationKey } from '@rocket.chat/ui-contexts';

export type QuickActionsActionOptions = Array<{
    id: string;
    label: TranslationKey;
    enabled?: boolean;
    validate?: (room: IRoom) => { value: boolean; tooltip: TranslationKey };
}>;

export type QuickActionsActionConfig = {
    id: string;
    icon?: IconName;
    title: TranslationKey;
    order?: number;
    featured?: boolean;
    action?: (id?: QuickActionsActionConfig['id']) => void;
    groups: Array<'live'>;
    color?: string;
    options?: QuickActionsActionOptions;
};

export enum QuickActionsEnum {
    MoveQueue = 'rocket-move-to-queue',
    ChatForward = 'rocket-chat-forward',
    Transcript = 'rocket-transcript',
    TranscriptEmail = 'rocket-transcript-email',
    TranscriptPDF = 'rocket-transcript-pdf',
    CloseChat = 'rocket-close-chat',
    OnHoldChat = 'rocket-on-hold-chat',
}