From aaadc2cb09fe6c0f0ef9aed54b5adc3f5b4a804b Mon Sep 17 00:00:00 2001 From: Shreyas Sharma Date: Wed, 25 Jun 2025 14:56:26 +0530 Subject: [PATCH 01/11] fix(tooling): fix non-strict types in ccwidgets --- packages/contact-center/cc-components/package.json | 3 ++- .../components/StationLogin/station-login.types.ts | 6 ------ .../src/components/UserState/user-state.types.ts | 12 ------------ packages/contact-center/cc-components/src/wc.ts | 2 -- packages/contact-center/cc-widgets/package.json | 3 ++- packages/contact-center/cc-widgets/src/wc.ts | 4 ++-- packages/contact-center/station-login/package.json | 3 ++- packages/contact-center/store/package.json | 3 ++- packages/contact-center/task/package.json | 3 ++- packages/contact-center/task/src/helper.ts | 3 +-- packages/contact-center/user-state/package.json | 3 ++- packages/contact-center/user-state/src/helper.ts | 1 + 12 files changed, 16 insertions(+), 30 deletions(-) diff --git a/packages/contact-center/cc-components/package.json b/packages/contact-center/cc-components/package.json index 9591695f6..af4e3385f 100644 --- a/packages/contact-center/cc-components/package.json +++ b/packages/contact-center/cc-components/package.json @@ -3,6 +3,7 @@ "description": "Webex Contact Center UI Components Library for your custom contact center solutions", "version": "1.28.0-ccwidgets.78", "main": "dist/index.js", + "types": "dist/types/index.d.ts", "publishConfig": { "access": "public" }, @@ -65,4 +66,4 @@ "react": ">=18.3.1", "react-dom": ">=18.3.1" } -} \ No newline at end of file +} diff --git a/packages/contact-center/cc-components/src/components/StationLogin/station-login.types.ts b/packages/contact-center/cc-components/src/components/StationLogin/station-login.types.ts index f2907d7d4..f5d663a4f 100644 --- a/packages/contact-center/cc-components/src/components/StationLogin/station-login.types.ts +++ b/packages/contact-center/cc-components/src/components/StationLogin/station-login.types.ts @@ -199,11 +199,6 @@ export interface IStationLoginProps { * The selected team ID for login */ selectedTeamId: string; - - /** - * The selected option for login type (e.g., 'Extension', 'Agent DN', etc.) - */ - selectedOption: string; } export interface LoginOptionsState { @@ -245,5 +240,4 @@ export type StationLoginComponentProps = Pick< | 'setDialNumberValue' | 'setSelectedTeamId' | 'selectedTeamId' - | 'selectedOption' >; diff --git a/packages/contact-center/cc-components/src/components/UserState/user-state.types.ts b/packages/contact-center/cc-components/src/components/UserState/user-state.types.ts index baffa0ae9..9eb391dfc 100644 --- a/packages/contact-center/cc-components/src/components/UserState/user-state.types.ts +++ b/packages/contact-center/cc-components/src/components/UserState/user-state.types.ts @@ -24,11 +24,6 @@ export interface IUserState { */ isSettingAgentStatus: boolean; - /** - * The error message to display - */ - errorMessage: string; - /** * The duration of the current user state */ @@ -54,13 +49,6 @@ export interface IUserState { */ currentTheme: string; - /** - * Function to handle state change - * @param state The state to change to - * @returns void - */ - onStateChange: (state: string) => void; - /** * Logger instance */ diff --git a/packages/contact-center/cc-components/src/wc.ts b/packages/contact-center/cc-components/src/wc.ts index 575f66a07..0a104fd71 100644 --- a/packages/contact-center/cc-components/src/wc.ts +++ b/packages/contact-center/cc-components/src/wc.ts @@ -13,13 +13,11 @@ const WebUserState = r2wc(UserStateComponent, { idleCodes: 'json', setAgentStatus: 'function', isSettingAgentStatus: 'boolean', - errorMessage: 'string', elapsedTime: 'number', lastIdleStateChangeElapsedTime: 'number', currentState: 'string', customState: 'json', currentTheme: 'string', - onStateChange: 'function', logger: 'function', }, }); diff --git a/packages/contact-center/cc-widgets/package.json b/packages/contact-center/cc-widgets/package.json index ceb3e288f..4f906325e 100644 --- a/packages/contact-center/cc-widgets/package.json +++ b/packages/contact-center/cc-widgets/package.json @@ -3,6 +3,7 @@ "description": "Webex Contact Center Widgets", "version": "1.28.0-ccwidgets.78", "main": "dist/index.js", + "types": "dist/types/index.d.ts", "publishConfig": { "access": "public" }, @@ -86,4 +87,4 @@ "^.+\\.(css|less|scss)$": "babel-jest" } } -} \ No newline at end of file +} diff --git a/packages/contact-center/cc-widgets/src/wc.ts b/packages/contact-center/cc-widgets/src/wc.ts index 23f040660..4dee47a50 100644 --- a/packages/contact-center/cc-widgets/src/wc.ts +++ b/packages/contact-center/cc-widgets/src/wc.ts @@ -37,7 +37,7 @@ const WebCallControl = r2wc(CallControl, { props: { onHoldResume: 'function', onEnd: 'function', - onWrapup: 'function', + onWrapUp: 'function', onRecordingToggle: 'function', }, }); @@ -46,7 +46,7 @@ const WebCallControlCAD = r2wc(CallControlCAD, { props: { onHoldResume: 'function', onEnd: 'function', - onWrapup: 'function', + onWrapUp: 'function', onRecordingToggle: 'function', }, }); diff --git a/packages/contact-center/station-login/package.json b/packages/contact-center/station-login/package.json index 32e4a766a..134757160 100644 --- a/packages/contact-center/station-login/package.json +++ b/packages/contact-center/station-login/package.json @@ -3,6 +3,7 @@ "description": "Webex Contact Center Widgets: Station Login", "version": "1.28.0-ccwidgets.78", "main": "dist/index.js", + "types": "dist/types/index.d.ts", "publishConfig": { "access": "public" }, @@ -63,4 +64,4 @@ "react": ">=18.3.1", "react-dom": ">=18.3.1" } -} \ No newline at end of file +} diff --git a/packages/contact-center/store/package.json b/packages/contact-center/store/package.json index 60eb53266..ee2033d89 100644 --- a/packages/contact-center/store/package.json +++ b/packages/contact-center/store/package.json @@ -3,6 +3,7 @@ "description": "Webex Contact Center Widgets: Widgets Store", "version": "1.28.0-ccwidgets.78", "main": "dist/index.js", + "types": "dist/types/index.d.ts", "license": "MIT", "publishConfig": { "access": "public" @@ -57,4 +58,4 @@ "webpack-cli": "5.1.4", "webpack-merge": "6.0.1" } -} \ No newline at end of file +} diff --git a/packages/contact-center/task/package.json b/packages/contact-center/task/package.json index 6fff7bc35..21417b2bb 100644 --- a/packages/contact-center/task/package.json +++ b/packages/contact-center/task/package.json @@ -3,6 +3,7 @@ "description": "Webex Contact Center Widgets: Task", "version": "1.28.0-ccwidgets.78", "main": "dist/index.js", + "types": "dist/types/index.d.ts", "publishConfig": { "access": "public" }, @@ -62,4 +63,4 @@ "react": ">=18.3.1", "react-dom": ">=18.3.1" } -} \ No newline at end of file +} diff --git a/packages/contact-center/task/src/helper.ts b/packages/contact-center/task/src/helper.ts index 3407c31ff..393085363 100644 --- a/packages/contact-center/task/src/helper.ts +++ b/packages/contact-center/task/src/helper.ts @@ -1,7 +1,6 @@ import {useEffect, useCallback, useState, useRef, useMemo} from 'react'; import {ITask} from '@webex/plugin-cc'; -import {useCallControlProps, UseTaskListProps, UseTaskProps, Participant} from './task.types'; -import {useOutdialCallProps} from '@webex/cc-components'; +import {useCallControlProps, UseTaskListProps, UseTaskProps, Participant, useOutdialCallProps} from './task.types'; import store, {TASK_EVENTS, BuddyDetails, DestinationType, ContactServiceQueue} from '@webex/cc-store'; import {getControlsVisibility} from './Utils/task-util'; diff --git a/packages/contact-center/user-state/package.json b/packages/contact-center/user-state/package.json index 3c30eacd9..73ef14054 100644 --- a/packages/contact-center/user-state/package.json +++ b/packages/contact-center/user-state/package.json @@ -3,6 +3,7 @@ "description": "Webex Contact Center Widgets: User State", "version": "1.28.0-ccwidgets.78", "main": "dist/index.js", + "types": "dist/types/index.d.ts", "publishConfig": { "access": "public" }, @@ -61,4 +62,4 @@ "react": ">=18.3.1", "react-dom": ">=18.3.1" } -} \ No newline at end of file +} diff --git a/packages/contact-center/user-state/src/helper.ts b/packages/contact-center/user-state/src/helper.ts index a126f583e..841a88d9d 100644 --- a/packages/contact-center/user-state/src/helper.ts +++ b/packages/contact-center/user-state/src/helper.ts @@ -223,5 +223,6 @@ export const useUserState = ({ elapsedTime, lastIdleStateChangeElapsedTime, currentState, + onStateChange, }; }; From 93b8b1941c0fcf722900e4827b345082fffab5fb Mon Sep 17 00:00:00 2001 From: Shreyas Sharma Date: Fri, 27 Jun 2025 10:49:00 +0530 Subject: [PATCH 02/11] fix(user-state): setup proper types --- .../src/components/UserState/user-state.tsx | 4 +- .../components/UserState/user-state.types.ts | 40 ++++++++++++++++++- .../contact-center/cc-components/src/wc.ts | 1 - .../contact-center/user-state/src/helper.ts | 3 +- .../user-state/src/user-state.types.ts | 19 +++++++-- .../user-state/src/user-state/index.tsx | 6 +-- 6 files changed, 61 insertions(+), 12 deletions(-) diff --git a/packages/contact-center/cc-components/src/components/UserState/user-state.tsx b/packages/contact-center/cc-components/src/components/UserState/user-state.tsx index 0b1fca72c..db9acb0f1 100644 --- a/packages/contact-center/cc-components/src/components/UserState/user-state.tsx +++ b/packages/contact-center/cc-components/src/components/UserState/user-state.tsx @@ -1,6 +1,6 @@ import React, {useMemo} from 'react'; -import {IUserState, AgentUserState} from './user-state.types'; +import {AgentUserState, UserStateComponentsProps} from './user-state.types'; import {formatTime} from '../../utils'; import './user-state.scss'; @@ -9,7 +9,7 @@ import {Item} from '@react-stately/collections'; import {Icon, Tooltip} from '@momentum-design/components/dist/react'; import {userStateLabels} from './constant'; -const UserStateComponent: React.FunctionComponent = (props) => { +const UserStateComponent: React.FunctionComponent = (props) => { const { idleCodes, setAgentStatus, diff --git a/packages/contact-center/cc-components/src/components/UserState/user-state.types.ts b/packages/contact-center/cc-components/src/components/UserState/user-state.types.ts index 9eb391dfc..73a5e1843 100644 --- a/packages/contact-center/cc-components/src/components/UserState/user-state.types.ts +++ b/packages/contact-center/cc-components/src/components/UserState/user-state.types.ts @@ -1,4 +1,4 @@ -import {IdleCode, ICustomState, ILogger} from '@webex/cc-store'; +import {IdleCode, ICustomState, ILogger, IContactCenter} from '@webex/cc-store'; /** * Interface representing the state of a user. @@ -53,8 +53,46 @@ export interface IUserState { * Logger instance */ logger: ILogger; + + /** + * Callback function to be called when the state changes. + * @param state The new state. + */ + onStateChange?: (state: string) => void; + + /** + * The agent ID. + */ + agentId: string; + + /** + * CC SDK Instance. + */ + cc: IContactCenter; + + /** + * The timestamp of the last state change. + */ + lastStateChangeTimestamp?: number; + + /** + * The timestamp of the last idle code change. + */ + lastIdleCodeChangeTimestamp?: number; } +export type UserStateComponentsProps = Pick< + IUserState, + | 'idleCodes' + | 'setAgentStatus' + | 'isSettingAgentStatus' + | 'elapsedTime' + | 'lastIdleStateChangeElapsedTime' + | 'currentState' + | 'customState' + | 'logger' +>; + export enum AgentUserState { Available = 'Available', RONA = 'RONA', diff --git a/packages/contact-center/cc-components/src/wc.ts b/packages/contact-center/cc-components/src/wc.ts index 0a104fd71..eb786815c 100644 --- a/packages/contact-center/cc-components/src/wc.ts +++ b/packages/contact-center/cc-components/src/wc.ts @@ -17,7 +17,6 @@ const WebUserState = r2wc(UserStateComponent, { lastIdleStateChangeElapsedTime: 'number', currentState: 'string', customState: 'json', - currentTheme: 'string', logger: 'function', }, }); diff --git a/packages/contact-center/user-state/src/helper.ts b/packages/contact-center/user-state/src/helper.ts index 841a88d9d..a28ab2ab5 100644 --- a/packages/contact-center/user-state/src/helper.ts +++ b/packages/contact-center/user-state/src/helper.ts @@ -1,5 +1,6 @@ import {useState, useEffect, useRef} from 'react'; import store from '@webex/cc-store'; +import {UseUserStateProps} from './user-state.types'; export const useUserState = ({ idleCodes, @@ -11,7 +12,7 @@ export const useUserState = ({ logger, onStateChange, lastIdleCodeChangeTimestamp, -}) => { +}: UseUserStateProps) => { const [isSettingAgentStatus, setIsSettingAgentStatus] = useState(false); const [elapsedTime, setElapsedTime] = useState(0); const [lastIdleStateChangeElapsedTime, setLastIdleStateChangeElapsedTime] = useState(0); diff --git a/packages/contact-center/user-state/src/user-state.types.ts b/packages/contact-center/user-state/src/user-state.types.ts index a2e45ddbd..56b97aa61 100644 --- a/packages/contact-center/user-state/src/user-state.types.ts +++ b/packages/contact-center/user-state/src/user-state.types.ts @@ -1,3 +1,16 @@ -export interface IUserStateProps { - onStateChange: (state: string) => void; -} +import {IUserState} from '@webex/cc-components'; + +export type IUserStateProps = Pick; + +export type UseUserStateProps = Pick< + IUserState, + | 'idleCodes' + | 'agentId' + | 'cc' + | 'currentState' + | 'customState' + | 'lastStateChangeTimestamp' + | 'logger' + | 'onStateChange' + | 'lastIdleCodeChangeTimestamp' +>; diff --git a/packages/contact-center/user-state/src/user-state/index.tsx b/packages/contact-center/user-state/src/user-state/index.tsx index 6e03ad675..5348e89c9 100644 --- a/packages/contact-center/user-state/src/user-state/index.tsx +++ b/packages/contact-center/user-state/src/user-state/index.tsx @@ -3,7 +3,7 @@ import store from '@webex/cc-store'; import {observer} from 'mobx-react-lite'; import {useUserState} from '../helper'; -import {UserStateComponent, IUserState} from '@webex/cc-components'; +import {UserStateComponent, UserStateComponentsProps} from '@webex/cc-components'; import {IUserStateProps} from '../user-state.types'; const UserState: React.FunctionComponent = observer(({onStateChange}) => { @@ -11,14 +11,13 @@ const UserState: React.FunctionComponent = observer(({onStateCh cc, idleCodes, agentId, - currentTheme, currentState, lastStateChangeTimestamp, lastIdleCodeChangeTimestamp, customState, logger, } = store; - const props: IUserState = { + const props: UserStateComponentsProps = { ...useUserState({ idleCodes, agentId, @@ -30,7 +29,6 @@ const UserState: React.FunctionComponent = observer(({onStateCh onStateChange, lastIdleCodeChangeTimestamp, }), - currentTheme, customState, logger, }; From 95c6c9f4eebba0cf09ec7b6727d0fd00224c8c6f Mon Sep 17 00:00:00 2001 From: Shreyas Sharma Date: Tue, 1 Jul 2025 10:25:35 +0530 Subject: [PATCH 03/11] fix(cc-widgets): update package json test command to test types in test files --- packages/contact-center/cc-components/package.json | 2 +- packages/contact-center/cc-components/tsconfig.json | 3 ++- packages/contact-center/station-login/package.json | 2 +- packages/contact-center/station-login/tsconfig.json | 3 ++- packages/contact-center/store/package.json | 2 +- packages/contact-center/store/tsconfig.json | 3 ++- packages/contact-center/task/package.json | 2 +- packages/contact-center/task/tsconfig.json | 3 ++- packages/contact-center/user-state/package.json | 2 +- packages/contact-center/user-state/tsconfig.json | 3 ++- 10 files changed, 15 insertions(+), 10 deletions(-) diff --git a/packages/contact-center/cc-components/package.json b/packages/contact-center/cc-components/package.json index af4e3385f..1a3a9f02a 100644 --- a/packages/contact-center/cc-components/package.json +++ b/packages/contact-center/cc-components/package.json @@ -21,7 +21,7 @@ "build": "yarn run -T tsc", "build:src": "yarn run clean:dist && webpack", "build:watch": "webpack --watch", - "test:unit": "jest --coverage", + "test:unit": "tsc && jest --coverage", "test:styles": "eslint" }, "dependencies": { diff --git a/packages/contact-center/cc-components/tsconfig.json b/packages/contact-center/cc-components/tsconfig.json index 50b68ce6a..65a2ac156 100644 --- a/packages/contact-center/cc-components/tsconfig.json +++ b/packages/contact-center/cc-components/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../../tsconfig.json", "include": [ - "./src" + "./src", + "./tests" ], "compilerOptions": { "outDir": "./dist", diff --git a/packages/contact-center/station-login/package.json b/packages/contact-center/station-login/package.json index 134757160..099dc8a53 100644 --- a/packages/contact-center/station-login/package.json +++ b/packages/contact-center/station-login/package.json @@ -17,7 +17,7 @@ "build": "yarn run -T tsc", "build:src": "yarn run clean:dist && webpack", "build:watch": "webpack --watch", - "test:unit": "jest --coverage", + "test:unit": "tsc && jest --coverage", "test:styles": "eslint" }, "dependencies": { diff --git a/packages/contact-center/station-login/tsconfig.json b/packages/contact-center/station-login/tsconfig.json index 50b68ce6a..ad0057b10 100644 --- a/packages/contact-center/station-login/tsconfig.json +++ b/packages/contact-center/station-login/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../../tsconfig.json", "include": [ - "./src" + "./src", + "./test" ], "compilerOptions": { "outDir": "./dist", diff --git a/packages/contact-center/store/package.json b/packages/contact-center/store/package.json index ee2033d89..b1015739a 100644 --- a/packages/contact-center/store/package.json +++ b/packages/contact-center/store/package.json @@ -18,7 +18,7 @@ "build": "yarn run -T tsc", "build:src": "yarn run clean:dist && webpack", "build:watch": "webpack --watch", - "test:unit": "jest --coverage", + "test:unit": "tsc && jest --coverage", "test:styles": "eslint" }, "dependencies": { diff --git a/packages/contact-center/store/tsconfig.json b/packages/contact-center/store/tsconfig.json index 0c449ca5e..1f8ed9cef 100644 --- a/packages/contact-center/store/tsconfig.json +++ b/packages/contact-center/store/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../../tsconfig.json", "include": [ - "./src" + "./src", + "./tests" ], "compilerOptions": { "outDir": "./dist", diff --git a/packages/contact-center/task/package.json b/packages/contact-center/task/package.json index 21417b2bb..7db5cbd1b 100644 --- a/packages/contact-center/task/package.json +++ b/packages/contact-center/task/package.json @@ -17,7 +17,7 @@ "build": "yarn run -T tsc", "build:src": "yarn run clean:dist && webpack", "build:watch": "webpack --watch", - "test:unit": "jest --coverage", + "test:unit": "tsc && jest --coverage", "test:styles": "eslint" }, "dependencies": { diff --git a/packages/contact-center/task/tsconfig.json b/packages/contact-center/task/tsconfig.json index 3b81144dc..53a21f63b 100644 --- a/packages/contact-center/task/tsconfig.json +++ b/packages/contact-center/task/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../../tsconfig.json", "include": [ - "./src" + "./src", + "./tests" ], "compilerOptions": { "outDir": "./dist", diff --git a/packages/contact-center/user-state/package.json b/packages/contact-center/user-state/package.json index 73ef14054..10cba6955 100644 --- a/packages/contact-center/user-state/package.json +++ b/packages/contact-center/user-state/package.json @@ -17,7 +17,7 @@ "build": "yarn run -T tsc", "build:src": "yarn run clean:dist && webpack", "build:watch": "webpack --watch", - "test:unit": "jest --coverage", + "test:unit": "tsc && jest --coverage", "test:styles": "eslint" }, "dependencies": { diff --git a/packages/contact-center/user-state/tsconfig.json b/packages/contact-center/user-state/tsconfig.json index 3b81144dc..53a21f63b 100644 --- a/packages/contact-center/user-state/tsconfig.json +++ b/packages/contact-center/user-state/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../../tsconfig.json", "include": [ - "./src" + "./src", + "./tests" ], "compilerOptions": { "outDir": "./dist", From 22cd406d600a6bea1bf12006f30f4743b6c00c64 Mon Sep 17 00:00:00 2001 From: Shreyas Sharma Date: Tue, 1 Jul 2025 10:26:24 +0530 Subject: [PATCH 04/11] fix(cc-components): fix types in test files --- .../StationLogin/station-login.snapshot.tsx | 1 - .../components/StationLogin/station-login.tsx | 1 - .../tests/components/UserState/user-state.tsx | 18 +++++-- .../task/CallControl/call-control-consult.tsx | 1 + .../task/CallControl/call-control.tsx | 49 ++++++++++++------- .../CallControl/consult-transfer-popover.tsx | 1 + .../task/IncomingTask/incoming-task.tsx | 9 +++- .../components/task/TaskList/task-list.tsx | 24 +++++++-- 8 files changed, 74 insertions(+), 30 deletions(-) diff --git a/packages/contact-center/cc-components/tests/components/StationLogin/station-login.snapshot.tsx b/packages/contact-center/cc-components/tests/components/StationLogin/station-login.snapshot.tsx index 3733a8035..61ebd75cf 100644 --- a/packages/contact-center/cc-components/tests/components/StationLogin/station-login.snapshot.tsx +++ b/packages/contact-center/cc-components/tests/components/StationLogin/station-login.snapshot.tsx @@ -41,7 +41,6 @@ describe('Station Login Component', () => { dialNumberValue: '', setDialNumberValue: jest.fn(), setSelectedDeviceType: jest.fn(), - selectedOption: 'EXTENSION', setCurrentLoginOptions: jest.fn(), currentLoginOptions: { deviceType: 'EXTENSION', diff --git a/packages/contact-center/cc-components/tests/components/StationLogin/station-login.tsx b/packages/contact-center/cc-components/tests/components/StationLogin/station-login.tsx index d1ff0c7f5..fac67b0cd 100644 --- a/packages/contact-center/cc-components/tests/components/StationLogin/station-login.tsx +++ b/packages/contact-center/cc-components/tests/components/StationLogin/station-login.tsx @@ -42,7 +42,6 @@ describe('Station Login Component', () => { dialNumberValue: '', setDialNumberValue: jest.fn(), setSelectedDeviceType: jest.fn(), - selectedOption: 'EXTENSION', setCurrentLoginOptions: jest.fn(), currentLoginOptions: { deviceType: 'EXTENSION', diff --git a/packages/contact-center/cc-components/tests/components/UserState/user-state.tsx b/packages/contact-center/cc-components/tests/components/UserState/user-state.tsx index d84edf323..4e28d52f7 100644 --- a/packages/contact-center/cc-components/tests/components/UserState/user-state.tsx +++ b/packages/contact-center/cc-components/tests/components/UserState/user-state.tsx @@ -15,10 +15,17 @@ describe.skip('UserStateComponent', () => { ], setAgentStatus: mockSetAgentStatus, isSettingAgentStatus: false, - errorMessage: '', elapsedTime: 3661, // 1 hour, 1 minute, 1 second + lastIdleStateChangeElapsedTime: 0, currentState: '1', - currentTheme: 'LIGHT', + customState: {id: '1', name: 'Custom State'}, + logger: { + log: jest.fn(), + info: jest.fn(), + warn: jest.fn(), + error: jest.fn(), + trace: jest.fn(), + }, }; it('should render the component with correct elements', () => { @@ -43,9 +50,10 @@ describe.skip('UserStateComponent', () => { }); it('should display an error message if provided', () => { - render(); - expect(screen.getByText('Error message')).toBeInTheDocument(); - expect(screen.getByText('Error message')).toHaveStyle('color: red'); + // Note: errorMessage is not part of UserStateComponentsProps interface + // This test should be updated to match the actual component interface + render(); + // Remove assertions for errorMessage since it's not supported }); it('should disable the select box when isSettingAgentStatus is true', () => { diff --git a/packages/contact-center/cc-components/tests/components/task/CallControl/call-control-consult.tsx b/packages/contact-center/cc-components/tests/components/task/CallControl/call-control-consult.tsx index 49e0395d2..7a3beb4dc 100644 --- a/packages/contact-center/cc-components/tests/components/task/CallControl/call-control-consult.tsx +++ b/packages/contact-center/cc-components/tests/components/task/CallControl/call-control-consult.tsx @@ -34,6 +34,7 @@ describe.skip('CallControlConsultComponent', () => { endConsultCall: mockEndConsultCall, consultCompleted: true, isAgentBeingConsulted: true, + isEndConsultEnabled: true, logger: loggerMock, }; diff --git a/packages/contact-center/cc-components/tests/components/task/CallControl/call-control.tsx b/packages/contact-center/cc-components/tests/components/task/CallControl/call-control.tsx index e2ba8928e..16c690a20 100644 --- a/packages/contact-center/cc-components/tests/components/task/CallControl/call-control.tsx +++ b/packages/contact-center/cc-components/tests/components/task/CallControl/call-control.tsx @@ -80,42 +80,55 @@ describe.skip('CallControlPresentational', () => { }, }, }, - audioRef: React.createRef(), toggleHold: mockToggleHold, toggleRecording: mockToggleRecording, endCall: mockEndCall, wrapupCall: mockWrapupCall, wrapupCodes: mockWrapupCodes, - setIsHeld: setIsHeld, isHeld: false, + setIsHeld: setIsHeld, + isRecording: false, + setIsRecording: jest.fn(), buddyAgents: [], loadBuddyAgents: mockLoadBuddyAgents, - loadQueues: mockLoadQueues, transferCall: mockTransferCall, consultCall: mockConsultCall, - setIsRecording: jest.fn(), - deviceType: 'BROWSER', - featureFlags: { - isEndCallEnabled: true, - isEndConsultEnabled: true, - webRtcEnabled: true, - }, - queues: [], - setConsultAgentId: mockSetConsultAgentId, - setConsultAgentName: mockSetConsultAgentName, - consultAgentId: null, - consultAgentName: null, endConsultCall: jest.fn(), + consultInitiated: false, consultTransfer: jest.fn(), - logger: loggerMock, + consultCompleted: false, + consultAccepted: false, + consultStartTimeStamp: 0, + callControlAudio: null, + consultAgentName: '', + setConsultAgentName: mockSetConsultAgentName, + consultAgentId: '', + setConsultAgentId: mockSetConsultAgentId, + holdTime: 0, + callControlClassName: '', + callControlConsultClassName: '', + startTimestamp: 0, + queues: [], + loadQueues: mockLoadQueues, + isEndConsultEnabled: true, + allowConsultToQueue: true, + lastTargetType: 'agent' as 'agent' | 'queue', + setLastTargetType: jest.fn(), controlVisibility: { + accept: false, + decline: false, + end: true, + muteUnmute: false, holdResume: true, consult: true, transfer: true, - pauseResumeRecording: true, - end: true, + conference: false, wrapup: false, + pauseResumeRecording: true, + endConsult: false, + recordingIndicator: false, }, + logger: loggerMock, }; beforeEach(() => { diff --git a/packages/contact-center/cc-components/tests/components/task/CallControl/consult-transfer-popover.tsx b/packages/contact-center/cc-components/tests/components/task/CallControl/consult-transfer-popover.tsx index c7d25fa58..799fae8c0 100644 --- a/packages/contact-center/cc-components/tests/components/task/CallControl/consult-transfer-popover.tsx +++ b/packages/contact-center/cc-components/tests/components/task/CallControl/consult-transfer-popover.tsx @@ -49,6 +49,7 @@ describe.skip('ConsultTransferPopoverComponent', () => { ], onAgentSelect: mockOnAgentSelect, onQueueSelect: mockOnQueueSelect, + allowConsultToQueue: true, logger: loggerMock, showTabs: true, emptyMessage: 'No agents or queues available', diff --git a/packages/contact-center/cc-components/tests/components/task/IncomingTask/incoming-task.tsx b/packages/contact-center/cc-components/tests/components/task/IncomingTask/incoming-task.tsx index e058fb2d8..8f3e5bbae 100644 --- a/packages/contact-center/cc-components/tests/components/task/IncomingTask/incoming-task.tsx +++ b/packages/contact-center/cc-components/tests/components/task/IncomingTask/incoming-task.tsx @@ -24,11 +24,18 @@ describe.skip('IncomingTaskComponent', () => { const props = { incomingTask: mockTask, accept: jest.fn(), - decline: jest.fn(), + reject: jest.fn(), isBrowser: true, isAnswered: false, isEnded: false, isMissed: false, + logger: { + log: jest.fn(), + info: jest.fn(), + warn: jest.fn(), + error: jest.fn(), + trace: jest.fn(), + }, }; render(); diff --git a/packages/contact-center/cc-components/tests/components/task/TaskList/task-list.tsx b/packages/contact-center/cc-components/tests/components/task/TaskList/task-list.tsx index 9e9362c70..f6e993256 100644 --- a/packages/contact-center/cc-components/tests/components/task/TaskList/task-list.tsx +++ b/packages/contact-center/cc-components/tests/components/task/TaskList/task-list.tsx @@ -19,8 +19,20 @@ describe.skip('TaskListPresentational Component', () => { }; const props: TaskListComponentProps = { - taskList: [ - { + currentTask: { + id: '1', + data: { + interaction: { + callAssociatedDetails: { + ani: '1234567890', + dn: '9876543210', + virtualTeamName: 'Sales Team', + }, + }, + }, + }, + taskList: { + '1': { id: '1', data: { interaction: { @@ -32,7 +44,7 @@ describe.skip('TaskListPresentational Component', () => { }, }, }, - { + '2': { id: '2', data: { interaction: { @@ -44,7 +56,11 @@ describe.skip('TaskListPresentational Component', () => { }, }, }, - ], + }, + isBrowser: true, + acceptTask: jest.fn(), + declineTask: jest.fn(), + onTaskSelect: jest.fn(), logger: loggerMock, }; From 3a23ad7b45e836aac4091d6f8294f89453d6eb94 Mon Sep 17 00:00:00 2001 From: Shreyas Sharma Date: Tue, 1 Jul 2025 14:04:30 +0530 Subject: [PATCH 05/11] fix(st-cc) fix and check types in cc-components and station login --- .gitignore | 1 + packages/contact-center/cc-components/package.json | 2 +- packages/contact-center/cc-components/tsconfig.json | 1 - .../contact-center/cc-components/tsconfig.test.json | 9 +++++++++ packages/contact-center/station-login/package.json | 2 +- packages/contact-center/station-login/tests/helper.ts | 11 +++++++---- packages/contact-center/station-login/tsconfig.json | 1 - .../contact-center/station-login/tsconfig.test.json | 9 +++++++++ tsconfig.json | 3 ++- 9 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 packages/contact-center/cc-components/tsconfig.test.json create mode 100644 packages/contact-center/station-login/tsconfig.test.json diff --git a/.gitignore b/.gitignore index 0b38ee592..d63696183 100644 --- a/.gitignore +++ b/.gitignore @@ -45,6 +45,7 @@ reports/ !package.json !package-lock.json !tsconfig.json +!tsconfig.test.json node_modules/ .yarn/* !.yarn/releases diff --git a/packages/contact-center/cc-components/package.json b/packages/contact-center/cc-components/package.json index 1a3a9f02a..3537152bb 100644 --- a/packages/contact-center/cc-components/package.json +++ b/packages/contact-center/cc-components/package.json @@ -21,7 +21,7 @@ "build": "yarn run -T tsc", "build:src": "yarn run clean:dist && webpack", "build:watch": "webpack --watch", - "test:unit": "tsc && jest --coverage", + "test:unit": "tsc --project tsconfig.test.json && jest --coverage", "test:styles": "eslint" }, "dependencies": { diff --git a/packages/contact-center/cc-components/tsconfig.json b/packages/contact-center/cc-components/tsconfig.json index 65a2ac156..3bcd18911 100644 --- a/packages/contact-center/cc-components/tsconfig.json +++ b/packages/contact-center/cc-components/tsconfig.json @@ -2,7 +2,6 @@ "extends": "../../../tsconfig.json", "include": [ "./src", - "./tests" ], "compilerOptions": { "outDir": "./dist", diff --git a/packages/contact-center/cc-components/tsconfig.test.json b/packages/contact-center/cc-components/tsconfig.test.json new file mode 100644 index 000000000..40bd84f5a --- /dev/null +++ b/packages/contact-center/cc-components/tsconfig.test.json @@ -0,0 +1,9 @@ +// This config is to do type checking in our files while running tests. +{ + "extends": "./tsconfig.json", + "include": ["./tests"], + "exclude": ["node_modules"], + "compilerOptions": { + "noEmit": true // Don't output any files + } +} \ No newline at end of file diff --git a/packages/contact-center/station-login/package.json b/packages/contact-center/station-login/package.json index 099dc8a53..ebf256003 100644 --- a/packages/contact-center/station-login/package.json +++ b/packages/contact-center/station-login/package.json @@ -17,7 +17,7 @@ "build": "yarn run -T tsc", "build:src": "yarn run clean:dist && webpack", "build:watch": "webpack --watch", - "test:unit": "tsc && jest --coverage", + "test:unit": "tsc --project tsconfig.test.json && jest --coverage", "test:styles": "eslint" }, "dependencies": { diff --git a/packages/contact-center/station-login/tests/helper.ts b/packages/contact-center/station-login/tests/helper.ts index 917293569..e06161f6a 100644 --- a/packages/contact-center/station-login/tests/helper.ts +++ b/packages/contact-center/station-login/tests/helper.ts @@ -156,8 +156,8 @@ describe('useStationLogin Hook', () => { data: { agentId: '6b310dff-569e-4ac7-b064-70f834ea56d8', agentSessionId: 'c9c24ace-5170-4a9f-8bc2-2eeeff9d7c11', - lastStateChangeTimestamp: '1234', - lastIdleCodeChangeTimestamp: '2345', + lastStateChangeTimestamp: 1234, + lastIdleCodeChangeTimestamp: 2345, }, }; @@ -601,6 +601,7 @@ describe('useStationLogin Hook', () => { result.current.setCurrentLoginOptions({ deviceType: 'DIALNUMBER', dialNumber: '2002', + teamId: 'team123', }); }); @@ -612,7 +613,7 @@ describe('useStationLogin Hook', () => { expect(cc.updateAgentProfile).toHaveBeenCalledWith({ loginOption: 'DIALNUMBER', - teamId: undefined, + teamId: 'team123', dialNumber: '2002', }); expect(logger.log).toHaveBeenCalledWith( @@ -647,6 +648,7 @@ describe('useStationLogin Hook', () => { result.current.setCurrentLoginOptions({ deviceType: 'DIALNUMBER', dialNumber: '2002', + teamId: 'team123', }); }); @@ -682,6 +684,7 @@ describe('useStationLogin Hook', () => { result.current.setCurrentLoginOptions({ deviceType: 'BROWSER', dialNumber: 'shouldNotBeSent', + teamId: 'team123', }); }); @@ -691,7 +694,7 @@ describe('useStationLogin Hook', () => { expect(cc.updateAgentProfile).toHaveBeenCalledWith({ loginOption: 'BROWSER', - teamId: undefined, + teamId: 'team123', // dialNumber should NOT be present }); diff --git a/packages/contact-center/station-login/tsconfig.json b/packages/contact-center/station-login/tsconfig.json index ad0057b10..3bcd18911 100644 --- a/packages/contact-center/station-login/tsconfig.json +++ b/packages/contact-center/station-login/tsconfig.json @@ -2,7 +2,6 @@ "extends": "../../../tsconfig.json", "include": [ "./src", - "./test" ], "compilerOptions": { "outDir": "./dist", diff --git a/packages/contact-center/station-login/tsconfig.test.json b/packages/contact-center/station-login/tsconfig.test.json new file mode 100644 index 000000000..1b8766912 --- /dev/null +++ b/packages/contact-center/station-login/tsconfig.test.json @@ -0,0 +1,9 @@ +// This config is to do type checking in our files while running tests. +{ + "extends": "./tsconfig.json", + "include": ["./tests"], + "exclude": ["**/node_modules/**"], + "compilerOptions": { + "noEmit": true // Don't output any files + } +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 145075caa..95c23fab5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -23,6 +23,7 @@ "ESNext", "DOM" ], - "jsx": "react" + "jsx": "react", + "types": ["jest"], }, } \ No newline at end of file From ec89fa367956da0df343ba4b1647871e301ff162 Mon Sep 17 00:00:00 2001 From: Shreyas Sharma Date: Fri, 4 Jul 2025 14:46:48 +0530 Subject: [PATCH 06/11] feat(contact-center): add complete typing in widgets --- .../src/components/StationLogin/constants.ts | 13 - .../components/StationLogin/station-login.tsx | 3 +- .../StationLogin/station-login.types.ts | 7 +- .../StationLogin/station-login.utils.tsx | 3 +- .../src/components/UserState/user-state.tsx | 14 +- .../components/UserState/user-state.types.ts | 2 +- .../task/CallControl/call-control.tsx | 3 +- .../task/CallControlCAD/call-control-cad.tsx | 18 +- .../task/IncomingTask/incoming-task.tsx | 1 + .../components/task/TaskList/task-list.tsx | 1 + .../src/components/task/task.types.ts | 6 +- .../StationLogin/station-login.snapshot.tsx | 40 +- .../components/StationLogin/station-login.tsx | 42 +- .../StationLogin/station-login.utils.tsx | 9 +- .../tests/components/UserState/user-state.tsx | 11 +- .../task/CallControl/call-control.tsx | 14 +- .../CallControl/consult-transfer-popover.tsx | 27 +- .../task/IncomingTask/incoming-task.tsx | 13 +- .../components/task/TaskList/task-list.tsx | 18 +- .../station-login/src/helper.ts | 19 +- .../station-login/src/station-login/index.tsx | 6 +- .../station-login/tests/helper.ts | 52 +- packages/contact-center/store/package.json | 4 +- packages/contact-center/store/src/index.ts | 1 + .../store/src/store.fixtures.ts | 373 ++++++++++++ packages/contact-center/store/src/store.ts | 11 +- .../contact-center/store/src/store.types.ts | 68 ++- .../store/src/storeEventsWrapper.ts | 15 +- packages/contact-center/store/tests/store.ts | 40 +- .../store/tests/storeEventsWrapper.ts | 282 +++++---- packages/contact-center/store/tests/util.ts | 27 +- packages/contact-center/store/tsconfig.json | 1 - .../contact-center/store/tsconfig.test.json | 10 + packages/contact-center/task/package.json | 2 +- packages/contact-center/task/src/helper.ts | 14 +- .../contact-center/task/src/task.types.ts | 37 +- .../task/tests/CallControl/index.tsx | 93 +-- .../task/tests/IncomingTask/index.tsx | 6 +- packages/contact-center/task/tests/helper.ts | 128 ++-- .../task/tests/utils/task-util.ts | 101 +--- packages/contact-center/task/tsconfig.json | 1 - .../contact-center/task/tsconfig.test.json | 9 + .../contact-center/user-state/package.json | 2 +- .../contact-center/user-state/src/helper.ts | 9 +- .../contact-center/user-state/tests/helper.ts | 128 +++- .../user-state/tests/user-state/index.tsx | 5 +- .../contact-center/user-state/tsconfig.json | 1 - .../user-state/tsconfig.test.json | 9 + yarn.lock | 558 ++++++++++-------- 49 files changed, 1454 insertions(+), 803 deletions(-) create mode 100644 packages/contact-center/store/src/store.fixtures.ts create mode 100644 packages/contact-center/store/tsconfig.test.json create mode 100644 packages/contact-center/task/tsconfig.test.json create mode 100644 packages/contact-center/user-state/tsconfig.test.json diff --git a/packages/contact-center/cc-components/src/components/StationLogin/constants.ts b/packages/contact-center/cc-components/src/components/StationLogin/constants.ts index 80979167b..9f4a4cb9b 100644 --- a/packages/contact-center/cc-components/src/components/StationLogin/constants.ts +++ b/packages/contact-center/cc-components/src/components/StationLogin/constants.ts @@ -27,16 +27,3 @@ export const StationLoginLabels = { export const SignInErrors = { ['DUPLICATE_LOCATION']: 'This extension is already in use.', }; - -// Utility consts -const DIALNUMBER: string = 'AGENT_DN'; -const EXTENSION: string = 'EXTENSION'; -const DESKTOP: string = 'BROWSER'; - -const LoginOptions: {[key: string]: string} = { - [DIALNUMBER]: 'Dial Number', - [EXTENSION]: 'Extension', - [DESKTOP]: 'Desktop', -}; - -export {DIALNUMBER, EXTENSION, DESKTOP, LoginOptions}; diff --git a/packages/contact-center/cc-components/src/components/StationLogin/station-login.tsx b/packages/contact-center/cc-components/src/components/StationLogin/station-login.tsx index e0ff392fe..37633544c 100644 --- a/packages/contact-center/cc-components/src/components/StationLogin/station-login.tsx +++ b/packages/contact-center/cc-components/src/components/StationLogin/station-login.tsx @@ -1,7 +1,8 @@ import React, {useEffect, useState} from 'react'; import {StationLoginComponentProps} from './station-login.types'; import './station-login.style.scss'; -import {DESKTOP, LoginOptions, SignInErrors, StationLoginLabels} from './constants'; +import {SignInErrors, StationLoginLabels} from './constants'; +import {LoginOptions, DESKTOP} from '@webex/cc-store'; import {Button, Icon, Select, Option, Text, Tooltip, Input} from '@momentum-design/components/dist/react'; import { ccCancelButtonClicked, diff --git a/packages/contact-center/cc-components/src/components/StationLogin/station-login.types.ts b/packages/contact-center/cc-components/src/components/StationLogin/station-login.types.ts index f5d663a4f..dd6d2c13d 100644 --- a/packages/contact-center/cc-components/src/components/StationLogin/station-login.types.ts +++ b/packages/contact-center/cc-components/src/components/StationLogin/station-login.types.ts @@ -1,5 +1,6 @@ -import {IContactCenter, StationLoginSuccess, StationLogoutSuccess, Team} from '@webex/plugin-cc'; -import {ILogger} from '@webex/cc-store'; +import {StationLoginSuccess, LogoutSuccess} from '@webex/plugin-cc'; +import {IContactCenter, ILogger} from '@webex/cc-store'; +import {Team} from '@webex/plugin-cc/dist/types/types'; /** * Interface representing the properties for the Station Login component. */ @@ -44,7 +45,7 @@ export interface IStationLoginProps { /** * Response data received on agent login success */ - logoutSuccess?: StationLogoutSuccess; + logoutSuccess?: LogoutSuccess; /** * Flag to indicate if the agent is logged in diff --git a/packages/contact-center/cc-components/src/components/StationLogin/station-login.utils.tsx b/packages/contact-center/cc-components/src/components/StationLogin/station-login.utils.tsx index 132b25284..58d740f24 100644 --- a/packages/contact-center/cc-components/src/components/StationLogin/station-login.utils.tsx +++ b/packages/contact-center/cc-components/src/components/StationLogin/station-login.utils.tsx @@ -1,5 +1,6 @@ import {useRef} from 'react'; -import {DESKTOP, DIALNUMBER, LoginOptions, StationLoginLabels} from './constants'; +import {StationLoginLabels} from './constants'; +import {LoginOptions, DESKTOP, DIALNUMBER} from '@webex/cc-store'; const handleModals = ( modalRef, diff --git a/packages/contact-center/cc-components/src/components/UserState/user-state.tsx b/packages/contact-center/cc-components/src/components/UserState/user-state.tsx index db9acb0f1..e3ab0e943 100644 --- a/packages/contact-center/cc-components/src/components/UserState/user-state.tsx +++ b/packages/contact-center/cc-components/src/components/UserState/user-state.tsx @@ -26,15 +26,16 @@ const UserStateComponent: React.FunctionComponent = (p }, [idleCodes]); let selectedKey; - if (customState) { + if (customState && 'developerName' in customState) { selectedKey = `hide-${customState.developerName}`; } else { selectedKey = currentState; } - const items = customState - ? [{name: customState.name, id: `hide-${customState.developerName}`, developerName: customState.developerName}] - : []; + const items = + customState && 'developerName' in customState + ? [{name: customState.name, id: `hide-${customState.developerName}`, developerName: customState.developerName}] + : []; for (const item of idleCodes) { if (item.name === AgentUserState.RONA && item.id === currentState) { @@ -43,6 +44,8 @@ const UserStateComponent: React.FunctionComponent = (p if (item.name === AgentUserState.RONA && item.id !== currentState) { continue; // Skip RONA unless it matches the current state } + + //@ts-expect-error: To be fixed in SDK - https://jira-eng-sjc12.cisco.com/jira/browse/CAI-6762 items.push({ ...item, id: item.name === AgentUserState.RONA ? `hide-${item.id}` : item.id, @@ -79,7 +82,7 @@ const UserStateComponent: React.FunctionComponent = (p }; const getTooltipText = () => { - if (customState && customState.developerName === 'ENGAGED') { + if (customState && 'developerName' in customState && customState.developerName === 'ENGAGED') { const currentStateObj = idleCodes.find((item) => item.id === currentState); if (currentStateObj.name === AgentUserState.Available) { @@ -123,6 +126,7 @@ const UserStateComponent: React.FunctionComponent = (p > {(item) => { const isRonaOrEngaged = [AgentUserState.RONA, AgentUserState.Engaged].includes( + //@ts-expect-error To be fixed in SDK - https://jira-eng-sjc12.cisco.com/jira/browse/CAI-6762 idleCodes.find((code) => code.id === currentState)?.name || '' ); const shouldHighlight = currentState === item.id || (isRonaOrEngaged && item.id === previousSelectableState); diff --git a/packages/contact-center/cc-components/src/components/UserState/user-state.types.ts b/packages/contact-center/cc-components/src/components/UserState/user-state.types.ts index 73a5e1843..f22496e3d 100644 --- a/packages/contact-center/cc-components/src/components/UserState/user-state.types.ts +++ b/packages/contact-center/cc-components/src/components/UserState/user-state.types.ts @@ -58,7 +58,7 @@ export interface IUserState { * Callback function to be called when the state changes. * @param state The new state. */ - onStateChange?: (state: string) => void; + onStateChange?: (arg: IdleCode | ICustomState) => void; /** * The agent ID. diff --git a/packages/contact-center/cc-components/src/components/task/CallControl/call-control.tsx b/packages/contact-center/cc-components/src/components/task/CallControl/call-control.tsx index 8014fb3b5..25490efaa 100644 --- a/packages/contact-center/cc-components/src/components/task/CallControl/call-control.tsx +++ b/packages/contact-center/cc-components/src/components/task/CallControl/call-control.tsx @@ -1,6 +1,6 @@ import React, {useEffect, useState} from 'react'; -import {CallControlComponentProps, DestinationType, CallControlMenuType} from '../task.types'; +import {CallControlComponentProps, CallControlMenuType} from '../task.types'; import './call-control.styles.scss'; import {PopoverNext, SelectNext, TooltipNext, Text, ButtonCircle, ButtonPill} from '@momentum-ui/react-collaboration'; import {Item} from '@react-stately/collections'; @@ -8,6 +8,7 @@ import {Icon, Button} from '@momentum-design/components/dist/react'; import ConsultTransferPopoverComponent from './CallControlCustom/consult-transfer-popover'; import type {MEDIA_CHANNEL as MediaChannelType} from '../task.types'; import {getMediaTypeInfo} from '../../../utils'; +import {DestinationType} from '@webex/cc-store'; function CallControlComponent(props: CallControlComponentProps) { const [selectedWrapupReason, setSelectedWrapupReason] = useState(null); diff --git a/packages/contact-center/cc-components/src/components/task/CallControlCAD/call-control-cad.tsx b/packages/contact-center/cc-components/src/components/task/CallControlCAD/call-control-cad.tsx index b9d201c47..77342220d 100644 --- a/packages/contact-center/cc-components/src/components/task/CallControlCAD/call-control-cad.tsx +++ b/packages/contact-center/cc-components/src/components/task/CallControlCAD/call-control-cad.tsx @@ -44,7 +44,11 @@ const CallControlCADComponent: React.FC = (props) => const mediaChannel = currentTask.data.interaction.mediaType as MediaChannelType; const isSocial = mediaChannel === MediaChannelType.SOCIAL; + + //@ts-expect-error To be fixed in SDK - https://jira-eng-sjc12.cisco.com/jira/browse/CAI-6762 const customerName = currentTask?.data?.interaction?.callAssociatedDetails?.customerName; + + //@ts-expect-error To be fixed in SDK - https://jira-eng-sjc12.cisco.com/jira/browse/CAI-6762 const ani = currentTask?.data?.interaction?.callAssociatedDetails?.ani; if (!currentTask) return null; @@ -93,7 +97,12 @@ const CallControlCADComponent: React.FC = (props) =>
Queue:{' '} - {currentTask?.data?.interaction?.callAssociatedDetails?.virtualTeamName || 'No Team Name'} + + { + //@ts-expect-error To be fixed in SDK - https://jira-eng-sjc12.cisco.com/jira/browse/CAI-6762 + currentTask?.data?.interaction?.callAssociatedDetails?.virtualTeamName || 'No Team Name' + } + {isSocial ? 'Customer Name' : 'Phone Number'}:{' '} @@ -101,7 +110,12 @@ const CallControlCADComponent: React.FC = (props) => RONA:{' '} - {currentTask?.data?.interaction?.callAssociatedDetails?.ronaTimeout || 'No RONA'} + + { + //@ts-expect-error To be fixed in SDK - https://jira-eng-sjc12.cisco.com/jira/browse/CAI-6762 + currentTask?.data?.interaction?.callAssociatedDetails?.ronaTimeout || 'No RONA' + } +
diff --git a/packages/contact-center/cc-components/src/components/task/IncomingTask/incoming-task.tsx b/packages/contact-center/cc-components/src/components/task/IncomingTask/incoming-task.tsx index c71e36f60..87fe6a0f7 100644 --- a/packages/contact-center/cc-components/src/components/task/IncomingTask/incoming-task.tsx +++ b/packages/contact-center/cc-components/src/components/task/IncomingTask/incoming-task.tsx @@ -8,6 +8,7 @@ const IncomingTaskComponent: React.FunctionComponent 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; diff --git a/packages/contact-center/cc-components/src/components/task/TaskList/task-list.tsx b/packages/contact-center/cc-components/src/components/task/TaskList/task-list.tsx index da77d11a2..37c6e675e 100644 --- a/packages/contact-center/cc-components/src/components/task/TaskList/task-list.tsx +++ b/packages/contact-center/cc-components/src/components/task/TaskList/task-list.tsx @@ -12,6 +12,7 @@ const TaskListComponent: React.FunctionComponent = (prop return (