forked from webex/widgets
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathincoming-task.tsx
More file actions
70 lines (66 loc) · 2.64 KB
/
Copy pathincoming-task.tsx
File metadata and controls
70 lines (66 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import React from 'react';
import {IncomingTaskComponentProps, MEDIA_CHANNEL} from '../task.types';
import Task from '../Task';
import {withMetrics} from '@webex/cc-ui-logging';
const IncomingTaskComponent: React.FunctionComponent<IncomingTaskComponentProps> = (props) => {
const {incomingTask, isBrowser, accept, reject, logger} = props;
if (!incomingTask) {
return <></>; // hidden component
}
//@ts-expect-error To be fixed in SDK - https://jira-eng-sjc12.cisco.com/jira/browse/CAI-6762
const callAssociationDetails = incomingTask?.data?.interaction?.callAssociatedDetails;
const ani = callAssociationDetails?.ani;
const customerName = callAssociationDetails?.customerName;
const virtualTeamName = callAssociationDetails?.virtualTeamName;
const ronaTimeout = callAssociationDetails?.ronaTimeout ? Number(callAssociationDetails?.ronaTimeout) : null;
const startTimeStamp = incomingTask?.data?.interaction?.createdTimestamp;
const mediaType = incomingTask.data.interaction.mediaType;
const mediaChannel = incomingTask.data.interaction.mediaChannel;
const isTelephony = mediaType === MEDIA_CHANNEL.TELEPHONY;
const isSocial = mediaType === MEDIA_CHANNEL.SOCIAL;
const acceptText = !incomingTask.data.wrapUpRequired
? isTelephony && !isBrowser
? 'Ringing...'
: 'Accept'
: undefined;
const declineText = !incomingTask.data.wrapUpRequired && isTelephony && isBrowser ? 'Decline' : undefined;
return (
<Task
interactionId={incomingTask.data.interactionId}
title={isSocial ? customerName : ani}
state=""
startTimeStamp={startTimeStamp}
isIncomingTask={true}
queue={virtualTeamName}
acceptTask={() => {
logger.info(
`CC-Widgets: IncomingTask: accept clicked for task with interactionID: ${incomingTask.data.interactionId}`,
{
module: 'incoming-task.tsx',
method: 'acceptTask',
}
);
accept(incomingTask);
}}
declineTask={() => {
logger.info(
`CC-Widgets: IncomingTask: decline clicked for task with interactionID: ${incomingTask.data.interactionId}`,
{
module: 'incoming-task.tsx',
method: 'declineTask',
}
);
reject(incomingTask);
}}
ronaTimeout={ronaTimeout}
acceptText={acceptText}
disableAccept={isTelephony && !isBrowser}
declineText={declineText}
styles="task-list-hover"
mediaType={mediaType}
mediaChannel={mediaChannel}
/>
);
};
const IncomingTaskComponentWithMetrics = withMetrics(IncomingTaskComponent, 'IncomingTask');
export default IncomingTaskComponentWithMetrics;