Skip to content

Commit

Permalink
Chore: Converting files from app/livechat folder from JS to TS (#25658)
Browse files Browse the repository at this point in the history
  • Loading branch information
amolghode1981 authored Jun 1, 2022
1 parent c2c1bf4 commit 08656e3
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 29 deletions.
2 changes: 0 additions & 2 deletions apps/meteor/app/livechat/lib/Assets.js

This file was deleted.

4 changes: 4 additions & 0 deletions apps/meteor/app/livechat/lib/Assets.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export const addServerUrlToIndex = (file: string): string => {
const rootUrl = (global as any).__meteor_runtime_config__.ROOT_URL.replace(/\/$/, '');
return file.replace('<body>', `<body><script> SERVER_URL = '${rootUrl}'; </script>`);
};
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@ import formatDistance from 'date-fns/formatDistance';
import { TAPi18n } from 'meteor/rocketchat:tap-i18n';
import moment from 'moment';
import { escapeHTML } from '@rocket.chat/string-helpers';
import { IOmnichannelSystemMessage } from '@rocket.chat/core-typings';

import { MessageTypes } from '../../ui-utils';
import { MessageTypes } from '../../ui-utils/lib/MessageTypes';

MessageTypes.registerType({
id: 'livechat_navigation_history',
system: true,
message: 'New_visitor_navigation',
data(message) {
if (!message.navigation || !message.navigation.page) {
return;
}
data(message: IOmnichannelSystemMessage) {
return {
history: `${(message.navigation.page.title ? `${message.navigation.page.title} - ` : '') + message.navigation.page.location.href}`,
history: message.navigation
? `${(message.navigation.page.title ? `${message.navigation.page.title} - ` : '') + message.navigation.page.location.href}`
: '',
};
},
});
Expand All @@ -23,30 +23,31 @@ MessageTypes.registerType({
id: 'livechat_transfer_history',
system: true,
message: 'New_chat_transfer',
data(message) {
data(message: IOmnichannelSystemMessage) {
if (!message.transferData) {
return;
return {
transfer: '',
};
}

const { comment } = message.transferData;
const commentLabel = comment && comment !== '' ? '_with_a_comment' : '';
const from =
message.transferData.transferredBy && (message.transferData.transferredBy.name || message.transferData.transferredBy.username);
const transferTypes = {
agent: () =>
agent: (): string =>
TAPi18n.__(`Livechat_transfer_to_agent${commentLabel}`, {
from,
to:
message.transferData.transferredTo && (message.transferData.transferredTo.name || message.transferData.transferredTo.username),
to: message?.transferData?.transferredTo?.name || message?.transferData?.transferredTo?.username || '',
...(comment && { comment }),
}),
department: () =>
department: (): string =>
TAPi18n.__(`Livechat_transfer_to_department${commentLabel}`, {
from,
to: message.transferData.nextDepartment && message.transferData.nextDepartment.name,
to: message?.transferData?.nextDepartment?.name || '',
...(comment && { comment }),
}),
queue: () =>
queue: (): string =>
TAPi18n.__('Livechat_transfer_return_to_the_queue', {
from,
}),
Expand All @@ -61,21 +62,23 @@ MessageTypes.registerType({
id: 'livechat_transcript_history',
system: true,
message: 'Livechat_chat_transcript_sent',
data(message) {
data(message: IOmnichannelSystemMessage) {
if (!message.requestData) {
return;
return {
transcript: '',
};
}

const { requestData: { type, visitor = {}, user = {} } = {} } = message;
const { requestData: { type, visitor, user } = { type: 'user' } } = message;
const requestTypes = {
visitor: () =>
visitor: (): string =>
TAPi18n.__('Livechat_visitor_transcript_request', {
guest: visitor.name || visitor.username,
guest: visitor?.name || visitor?.username || '',
}),
user: () =>
user: (): string =>
TAPi18n.__('Livechat_user_sent_chat_transcript_to_visitor', {
agent: user.name || user.username,
guest: visitor.name || visitor.username,
agent: user?.name || user?.username || '',
guest: visitor?.name || visitor?.username || '',
}),
};

Expand Down Expand Up @@ -105,15 +108,16 @@ MessageTypes.registerType({
}
return escapeHTML(message.msg);
},
message: 'room_changed_privacy',
});

MessageTypes.registerType({
id: 'omnichannel_placed_chat_on_hold',
system: true,
message: 'Omnichannel_placed_chat_on_hold',
data(message) {
data(message: IOmnichannelSystemMessage) {
return {
comment: message.comment,
comment: message.comment ? message.comment : 'No comment provided',
};
},
});
Expand All @@ -122,9 +126,9 @@ MessageTypes.registerType({
id: 'omnichannel_on_hold_chat_resumed',
system: true,
message: 'Omnichannel_on_hold_chat_resumed',
data(message) {
data(message: IOmnichannelSystemMessage) {
return {
comment: message.comment,
comment: message.comment ? message.comment : 'No comment provided',
};
},
});
50 changes: 49 additions & 1 deletion packages/core-typings/src/IMessage/IMessage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import type { IUser } from '../IUser';
import type { IRoom, RoomID } from '../IRoom';
import type { MessageAttachment } from './MessageAttachment/MessageAttachment';
import type { FileProp } from './MessageAttachment/Files/FileProp';
import type { ILivechatVisitor } from '../ILivechatVisitor';

type MentionType = 'user' | 'team';

Expand Down Expand Up @@ -38,7 +39,18 @@ type TeamMessageTypes =
| 'user-added-room-to-team'
| 'ujt';

type OmnichannelTypesValues = 'livechat_transfer_history_fallback' | 'livechat-close';
type LivechatMessageTypes =
| 'livechat_navigation_history'
| 'livechat_transfer_history'
| 'livechat_transcript_history'
| 'livechat_video_call'
| 'livechat_webrtc_video_call';

type OmnichannelTypesValues =
| 'livechat_transfer_history_fallback'
| 'livechat-close'
| 'omnichannel_placed_chat_on_hold'
| 'omnichannel_on_hold_chat_resumed';

type OtrSystemMessages = 'user_joined_otr' | 'user_requested_otr_key_refresh' | 'user_key_refreshed_successfully';

Expand Down Expand Up @@ -70,6 +82,7 @@ export type MessageTypesValues =
| 'room-set-read-only'
| 'room-allowed-reacting'
| 'room-disallowed-reacting'
| LivechatMessageTypes
| TeamMessageTypes
| VoipMessageTypesValues
| OmnichannelTypesValues
Expand Down Expand Up @@ -218,6 +231,41 @@ export interface IMessageReactionsNormalized extends IMessage {
export const isMessageReactionsNormalized = (message: IMessage): message is IMessageReactionsNormalized =>
Boolean('reactions' in message && message.reactions && message.reactions[0] && 'names' in message.reactions[0]);

export interface IOmnichannelSystemMessage extends IMessage {
navigation?: {
page: {
title: string;
location: {
href: string;
};
token?: string;
};
};
transferData?: {
comment: string;
transferredBy: {
name?: string;
username: string;
};
transferredTo: {
name?: string;
username: string;
};
nextDepartment?: {
_id: string;
name?: string;
};
scope: 'department' | 'agent' | 'queue';
};
requestData?: {
type: 'visitor' | 'user';
visitor?: ILivechatVisitor;
user?: IUser;
};
webRtcCallEndTs?: Date;
comment?: string;
}

export type IVoipMessage = IMessage & {
voipData: {
callDuration?: number;
Expand Down

0 comments on commit 08656e3

Please sign in to comment.