From e794edfad29c17d4380c1ce8c01ffa03c28b3e77 Mon Sep 17 00:00:00 2001 From: Ravi Chandra Sekhar Sarika Date: Mon, 15 Sep 2025 15:15:19 +0530 Subject: [PATCH 1/7] feat: added transfer/consult to dialNumber --- .../consult-transfer-dial-number.scss | 19 ++ .../consult-transfer-dial-number.tsx | 44 +++ .../consult-transfer-popover.tsx | 17 +- .../task/CallControl/call-control.tsx | 1 + .../src/components/task/task.types.ts | 13 + ...consult-transfer-popover.snapshot.tsx.snap | 302 +++++++++++++++++- .../consult-transfer-popover.tsx | 2 +- 7 files changed, 395 insertions(+), 3 deletions(-) create mode 100644 packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.scss create mode 100644 packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx diff --git a/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.scss b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.scss new file mode 100644 index 000000000..cd214376f --- /dev/null +++ b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.scss @@ -0,0 +1,19 @@ +.consult-transfer-dial-number-container { + display: flex; + align-items: center; + gap: 8px; + width: 100%; + height: 40px; +} + +.consult-transfer-dial-number-input { + flex: 1; + align-self: center; + display: flex; + align-items: center; + height: 100%; +} + +.consult-transfer-dial-number-btn { + align-self: center; +} diff --git a/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx new file mode 100644 index 000000000..8a13c1e25 --- /dev/null +++ b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx @@ -0,0 +1,44 @@ +// EmptyState.tsx + +import React, {useState} from 'react'; +import './consult-transfer-dial-number.scss'; +import {ButtonCircle} from '@momentum-ui/react-collaboration'; +import {Icon, Input} from '@momentum-design/components/dist/react'; +import {ConsultTransferDialNumberComponentProps} from '../../task.types'; + +const DialNumberUI: React.FC = (props) => { + const {buttonIcon, onButtonPress, logger} = props; + + const handleButtonPress = () => { + logger.info('Dial Number button pressed', { + module: 'consult-transfer-dial-number.tsx', + method: 'handleButtonPress', + }); + onButtonPress(value); + }; + + const [value, setValue] = useState(''); + return ( +
+ setValue((e.target as HTMLInputElement).value)} + placeholder="Enter Dial Number" + className="consult-transfer-dial-number-input" + /> + + + +
+ ); +}; + +export default DialNumberUI; diff --git a/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-popover.tsx b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-popover.tsx index 29078ce05..5e3647b5e 100644 --- a/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-popover.tsx +++ b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-popover.tsx @@ -12,6 +12,7 @@ import { handleQueueSelection, getEmptyStateMessage, } from './call-control-custom.utils'; +import DialNumberUI from './consult-transfer-dial-number'; const ConsultTransferPopoverComponent: React.FC = ({ heading, @@ -20,6 +21,7 @@ const ConsultTransferPopoverComponent: React.FC { @@ -29,7 +31,7 @@ const ConsultTransferPopoverComponent: React.FC ( @@ -84,6 +86,9 @@ const ConsultTransferPopoverComponent: React.FC Queues + + Dial Number + )} @@ -124,6 +129,16 @@ const ConsultTransferPopoverComponent: React.FC { + onDialNumberSelect(dialNumber); + }} + logger={logger} + /> + )} ); }; 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 3967d610d..aea258963 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 @@ -212,6 +212,7 @@ function CallControlComponent(props: CallControlComponentProps) { queues={queues} onAgentSelect={(agentId, agentName) => handleTargetSelect(agentId, agentName, 'agent')} onQueueSelect={(queueId, queueName) => handleTargetSelect(queueId, queueName, 'queue')} + onDialNumberSelect={(dialNumber) => handleTargetSelect(dialNumber, dialNumber, 'dialNumber')} allowConsultToQueue={allowConsultToQueue} logger={logger} /> diff --git a/packages/contact-center/cc-components/src/components/task/task.types.ts b/packages/contact-center/cc-components/src/components/task/task.types.ts index f8a94bac9..87487467a 100644 --- a/packages/contact-center/cc-components/src/components/task/task.types.ts +++ b/packages/contact-center/cc-components/src/components/task/task.types.ts @@ -492,6 +492,18 @@ export interface ConsultTransferListComponentProps { logger: ILogger; } +/** + * Interface representing the properties for CallControlDialNumber component. + */ +export interface ConsultTransferDialNumberComponentProps { + title: string; + subtitle?: string; + buttonIcon: string; + onButtonPress: (dialNumber: string) => void; + className?: string; + logger: ILogger; +} + /** * Interface representing the properties for ConsultTransferPopover component. */ @@ -502,6 +514,7 @@ export interface ConsultTransferPopoverComponentProps { queues?: ContactServiceQueue[]; onAgentSelect?: (agentId: string, agentName: string) => void; onQueueSelect?: (queueId: string, queueName: string) => void; + onDialNumberSelect?: (dialNumber: string) => void; allowConsultToQueue: boolean; logger: ILogger; } diff --git a/packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/__snapshots__/consult-transfer-popover.snapshot.tsx.snap b/packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/__snapshots__/consult-transfer-popover.snapshot.tsx.snap index 404fb11ad..9ae44f4a0 100644 --- a/packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/__snapshots__/consult-transfer-popover.snapshot.tsx.snap +++ b/packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/__snapshots__/consult-transfer-popover.snapshot.tsx.snap @@ -55,6 +55,22 @@ exports[`ConsultTransferPopoverComponent Snapshots Interactions should render co Queues +
    +
      +
        +
          +
            +
              Select an Agent +
              + + + +
              @@ -1347,7 +1503,7 @@ exports[`ConsultTransferPopoverComponent Snapshots Rendering - Tests for UI elem
              - We can't find any queue or agent available for now. + We can't find any agent available for now.
              @@ -1408,6 +1564,22 @@ exports[`ConsultTransferPopoverComponent Snapshots Rendering - Tests for UI elem Queues +
                +
                +
                  +
                    +
                      +
                        +
                          +
                            +
                              { }; let screen = await render(); - expect(screen.container.querySelector('.agent-tablist')).not.toBeInTheDocument(); + expect(screen.container.querySelector('.agent-tablist')).toBeInTheDocument(); expect(screen.container.querySelector('.consult-empty-state')).toBeInTheDocument(); expect(screen.container.querySelector('.consult-empty-message')).toBeInTheDocument(); From 13fde22d71a699fbcdd9547f3eb182185974c6ba Mon Sep 17 00:00:00 2001 From: Ravi Chandra Sekhar Sarika Date: Mon, 15 Sep 2025 15:17:13 +0530 Subject: [PATCH 2/7] fix: removed shouldShowTabs because we need to show always --- .../CallControl/CallControlCustom/consult-transfer-popover.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-popover.tsx b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-popover.tsx index 5e3647b5e..592a078eb 100644 --- a/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-popover.tsx +++ b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-popover.tsx @@ -4,7 +4,6 @@ import ConsultTransferListComponent from './consult-transfer-list-item'; import {ConsultTransferPopoverComponentProps} from '../../task.types'; import ConsultTransferEmptyState from './consult-transfer-empty-state'; import { - shouldShowTabs, isAgentsEmpty, isQueuesEmpty, handleTabSelection, From d44b6ffbe491433dd8b307e2eb318813e2f7bf20 Mon Sep 17 00:00:00 2001 From: Ravi Chandra Sekhar Sarika Date: Mon, 15 Sep 2025 17:34:45 +0530 Subject: [PATCH 3/7] fix: updated tests --- .../consult-transfer-dial-number.tsx | 13 +--- .../task/CallControl/call-control.utils.ts | 13 ++++ ...ransfer-dial-number.snapshot.test.tsx.snap | 29 +++++++++ ...ult-transfer-dial-number.snapshot.test.tsx | 26 ++++++++ .../consult-transfer-dial-number.tsx | 62 +++++++++++++++++++ .../task/CallControl/call-control.utils.tsx | 25 ++++++++ 6 files changed, 158 insertions(+), 10 deletions(-) create mode 100644 packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/__snapshots__/consult-transfer-dial-number.snapshot.test.tsx.snap create mode 100644 packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.snapshot.test.tsx create mode 100644 packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx diff --git a/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx index 8a13c1e25..a6a807eef 100644 --- a/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx +++ b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx @@ -5,18 +5,11 @@ import './consult-transfer-dial-number.scss'; import {ButtonCircle} from '@momentum-ui/react-collaboration'; import {Icon, Input} from '@momentum-design/components/dist/react'; import {ConsultTransferDialNumberComponentProps} from '../../task.types'; +import {handleButtonPress, onInputDialNumber} from '../call-control.utils'; const DialNumberUI: React.FC = (props) => { const {buttonIcon, onButtonPress, logger} = props; - const handleButtonPress = () => { - logger.info('Dial Number button pressed', { - module: 'consult-transfer-dial-number.tsx', - method: 'handleButtonPress', - }); - onButtonPress(value); - }; - const [value, setValue] = useState(''); return (
                              @@ -24,12 +17,12 @@ const DialNumberUI: React.FC = (props) id="dial-number-input" data-testid="dial-number-input" value={value} - onInput={(e) => setValue((e.target as HTMLInputElement).value)} + onInput={(e) => onInputDialNumber(e, setValue)} placeholder="Enter Dial Number" className="consult-transfer-dial-number-input" /> handleButtonPress(logger, onButtonPress, value)} size={28} color="join" className="consult-transfer-dial-number-btn" diff --git a/packages/contact-center/cc-components/src/components/task/CallControl/call-control.utils.ts b/packages/contact-center/cc-components/src/components/task/CallControl/call-control.utils.ts index 5146e6a24..dc1c47909 100644 --- a/packages/contact-center/cc-components/src/components/task/CallControl/call-control.utils.ts +++ b/packages/contact-center/cc-components/src/components/task/CallControl/call-control.utils.ts @@ -401,3 +401,16 @@ export const handleAudioRef = ( }); } }; + +// Utility for consult-transfer-dial-number +export const onInputDialNumber = (e, setValue) => { + setValue(e.currentTarget.value); +}; + +export const handleButtonPress = (logger, onButtonPress, value) => { + logger.info('Dial Number button pressed', { + module: 'consult-transfer-dial-number.tsx', + method: 'handleButtonPress', + }); + onButtonPress(value); +}; diff --git a/packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/__snapshots__/consult-transfer-dial-number.snapshot.test.tsx.snap b/packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/__snapshots__/consult-transfer-dial-number.snapshot.test.tsx.snap new file mode 100644 index 000000000..a4967aee7 --- /dev/null +++ b/packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/__snapshots__/consult-transfer-dial-number.snapshot.test.tsx.snap @@ -0,0 +1,29 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`DialNumberUI snapshot matches snapshot 1`] = ` +
                              +
                              + + +
                              +
                              +`; diff --git a/packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.snapshot.test.tsx b/packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.snapshot.test.tsx new file mode 100644 index 000000000..64a7f6461 --- /dev/null +++ b/packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.snapshot.test.tsx @@ -0,0 +1,26 @@ +import React from 'react'; +import {render} from '@testing-library/react'; +import DialNumberUI from '../../../../../src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number'; + +describe('DialNumberUI snapshot', () => { + const loggerMock = { + log: jest.fn(), + info: jest.fn(), + warn: jest.fn(), + trace: jest.fn(), + error: jest.fn(), + debug: jest.fn(), + }; + const onButtonPressMock = jest.fn(); + const defaultProps = { + title: 'Dial Number', + buttonIcon: 'call', + onButtonPress: onButtonPressMock, + logger: loggerMock, + }; + + it('matches snapshot', () => { + const {container} = render(); + expect(container).toMatchSnapshot(); + }); +}); diff --git a/packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx b/packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx new file mode 100644 index 000000000..5b11911d3 --- /dev/null +++ b/packages/contact-center/cc-components/tests/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx @@ -0,0 +1,62 @@ +import React from 'react'; +import '@testing-library/jest-dom'; +import {fireEvent, render} from '@testing-library/react'; +import DialNumberUI from '../../../../../src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number'; +import * as callControlUtils from '../../../../../src/components/task/CallControl/call-control.utils'; + +describe('DialNumberUI', () => { + const loggerMock = { + log: jest.fn(), + info: jest.fn(), + warn: jest.fn(), + trace: jest.fn(), + error: jest.fn(), + debug: jest.fn(), + }; + const onButtonPressMock = jest.fn(); + const defaultProps = { + title: 'Dial Number', + buttonIcon: 'call', + onButtonPress: onButtonPressMock, + logger: loggerMock, + }; + + const mockHandleButtonPress = jest.fn(); + const mockOnInputDialNumber = jest.fn(); + + beforeEach(() => { + jest.clearAllMocks(); + jest.spyOn(callControlUtils, 'handleButtonPress').mockImplementation(mockHandleButtonPress); + jest.spyOn(callControlUtils, 'onInputDialNumber').mockImplementation(mockOnInputDialNumber); + }); + + it('renders input and button', () => { + const {getByTestId} = render(); + const input = getByTestId('dial-number-input'); + expect(input).toBeInTheDocument(); + const button = getByTestId('dial-number-btn'); + expect(button).toBeInTheDocument(); + }); + + it('calls onInputDialNumber utility when input event is fired', () => { + const {getByTestId} = render(); + const numberInput = getByTestId('dial-number-input'); + const event = new CustomEvent('input', {detail: {value: '12345'}}); + fireEvent(numberInput, event); + expect(mockOnInputDialNumber).toHaveBeenCalled(); + }); + + it('calls handleButtonPress utility when button is pressed', () => { + const {getByTestId} = render(); + const numberInput = getByTestId('dial-number-input'); + // Simulate entering a value before clicking the button + const inputValue = '98765'; + const event = new CustomEvent('input', {detail: {value: inputValue}}); + mockOnInputDialNumber.mockImplementation((e, setValue) => setValue('98765')); + fireEvent(numberInput, event); + const button = getByTestId('dial-number-btn'); + fireEvent.click(button); + // The value passed to handleButtonPress should be '98765' + expect(mockHandleButtonPress).toHaveBeenCalledWith(loggerMock, onButtonPressMock, inputValue); + }); +}); diff --git a/packages/contact-center/cc-components/tests/components/task/CallControl/call-control.utils.tsx b/packages/contact-center/cc-components/tests/components/task/CallControl/call-control.utils.tsx index 93e707a43..e121af1ac 100644 --- a/packages/contact-center/cc-components/tests/components/task/CallControl/call-control.utils.tsx +++ b/packages/contact-center/cc-components/tests/components/task/CallControl/call-control.utils.tsx @@ -14,6 +14,8 @@ import { handleCloseButtonPress, handleWrapupReasonChange, handleAudioRef, + onInputDialNumber, + handleButtonPress, } from '../../../../src/components/task/CallControl/call-control.utils'; import * as utils from '../../../../src/utils'; @@ -77,6 +79,29 @@ describe('CallControl Utils', () => { labelName: 'Call', }; + describe('onInputDialNumber', () => { + it('should set value from event currentTarget.value', () => { + const setValue = jest.fn(); + const event = {currentTarget: {value: '12345'}}; + onInputDialNumber(event, setValue); + expect(setValue).toHaveBeenCalledWith('12345'); + }); + }); + + describe('handleButtonPress', () => { + it('should log info and call onButtonPress with value', () => { + const logger = {info: jest.fn()}; + const onButtonPress = jest.fn(); + const value = '67890'; + handleButtonPress(logger, onButtonPress, value); + expect(logger.info).toHaveBeenCalledWith( + 'Dial Number button pressed', + expect.objectContaining({module: 'consult-transfer-dial-number.tsx', method: 'handleButtonPress'}) + ); + expect(onButtonPress).toHaveBeenCalledWith('67890'); + }); + }); + describe('handleToggleHold', () => { it('should toggle hold from false to true', () => { const mockToggleHold = jest.fn(); From 93da7a3ae8096eed5a30a1889b871871b04eeac2 Mon Sep 17 00:00:00 2001 From: Ravi Chandra Sekhar Sarika Date: Tue, 16 Sep 2025 08:35:42 +0530 Subject: [PATCH 4/7] fix: updated sdk version --- .../consult-transfer-dial-number.scss | 2 +- packages/contact-center/store/package.json | 4 +- yarn.lock | 222 +++++++++--------- 3 files changed, 114 insertions(+), 114 deletions(-) diff --git a/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.scss b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.scss index cd214376f..4fceb5b6d 100644 --- a/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.scss +++ b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.scss @@ -15,5 +15,5 @@ } .consult-transfer-dial-number-btn { - align-self: center; + align-self: flex-start; } diff --git a/packages/contact-center/store/package.json b/packages/contact-center/store/package.json index a6498f340..766f3a543 100644 --- a/packages/contact-center/store/package.json +++ b/packages/contact-center/store/package.json @@ -22,7 +22,7 @@ "test:styles": "eslint" }, "dependencies": { - "@webex/contact-center": "3.8.1-next.41", + "@webex/contact-center": "3.9.0-next.3", "mobx": "6.13.5", "typescript": "5.6.3" }, @@ -59,4 +59,4 @@ "webpack-cli": "5.1.4", "webpack-merge": "6.0.1" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 5717dcc00..2070b81a5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9374,13 +9374,13 @@ __metadata: languageName: node linkType: hard -"@webex/calling@npm:3.8.1-next.26": - version: 3.8.1-next.26 - resolution: "@webex/calling@npm:3.8.1-next.26" +"@webex/calling@npm:3.9.0-next.2": + version: 3.9.0-next.2 + resolution: "@webex/calling@npm:3.9.0-next.2" dependencies: "@types/platform": "npm:1.3.4" "@webex/internal-media-core": "npm:2.18.5" - "@webex/internal-plugin-metrics": "npm:3.8.1-next.15" + "@webex/internal-plugin-metrics": "npm:3.9.0-next.1" "@webex/media-helpers": "npm:3.8.1-next.16" async-mutex: "npm:0.4.0" buffer: "npm:6.0.3" @@ -9388,7 +9388,7 @@ __metadata: platform: "npm:1.3.6" uuid: "npm:8.3.2" xstate: "npm:4.30.6" - checksum: 10c0/1048c03f343cabd2dfe51fc7db1fa823956c36522b3977c7c696b350e12656d01f87441a173f709c10a10d40b1de09b5fd33a2d475965ae7d52d8856131fd721 + checksum: 10c0/d8f0c18cdb9cdf0f580cd0fca38fd0513cd4007053ba885470ffa5b6dd90a25b648c7668c5bba093c1f37849b3b6154f23dd225fea3344f60713f8e7acec8dd5 languageName: node linkType: hard @@ -9500,7 +9500,7 @@ __metadata: "@testing-library/react": "npm:16.0.1" "@types/jest": "npm:29.5.14" "@types/react-test-renderer": "npm:18" - "@webex/contact-center": "npm:3.8.1-next.41" + "@webex/contact-center": "npm:3.9.0-next.3" "@webex/test-fixtures": "workspace:*" babel-jest: "npm:29.7.0" babel-loader: "npm:9.2.1" @@ -9839,21 +9839,21 @@ __metadata: languageName: node linkType: hard -"@webex/contact-center@npm:3.8.1-next.41": - version: 3.8.1-next.41 - resolution: "@webex/contact-center@npm:3.8.1-next.41" +"@webex/contact-center@npm:3.9.0-next.3": + version: 3.9.0-next.3 + resolution: "@webex/contact-center@npm:3.9.0-next.3" dependencies: "@types/platform": "npm:1.3.4" - "@webex/calling": "npm:3.8.1-next.26" - "@webex/internal-plugin-mercury": "npm:3.8.1-next.15" - "@webex/internal-plugin-metrics": "npm:3.8.1-next.15" - "@webex/internal-plugin-support": "npm:3.8.1-next.18" - "@webex/plugin-authorization": "npm:3.8.1-next.15" - "@webex/plugin-logger": "npm:3.8.1-next.15" - "@webex/webex-core": "npm:3.8.1-next.15" + "@webex/calling": "npm:3.9.0-next.2" + "@webex/internal-plugin-mercury": "npm:3.9.0-next.1" + "@webex/internal-plugin-metrics": "npm:3.9.0-next.1" + "@webex/internal-plugin-support": "npm:3.9.0-next.1" + "@webex/plugin-authorization": "npm:3.9.0-next.1" + "@webex/plugin-logger": "npm:3.9.0-next.1" + "@webex/webex-core": "npm:3.9.0-next.1" jest-html-reporters: "npm:3.0.11" lodash: "npm:^4.17.21" - checksum: 10c0/173cf707e8a2eb67445f2f284e84445d9ab314eec1bd9b2b163fe93e289f25d3034bbd3c0e292ab59d6456dcf3d7d3d67d2138a5d34cb115c21e7daf5eb7254e + checksum: 10c0/bf6c8ac6ac11fb002c18e610c8df4dc1392d21de34067bbbb7934c61fd9f5abbb361711cd26b2a2fd7924469ef974486ccbcf9b7827870ff11fda29ce2f0ddc8 languageName: node linkType: hard @@ -10241,21 +10241,21 @@ __metadata: languageName: node linkType: hard -"@webex/internal-plugin-conversation@npm:3.8.1-next.18": - version: 3.8.1-next.18 - resolution: "@webex/internal-plugin-conversation@npm:3.8.1-next.18" +"@webex/internal-plugin-conversation@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/internal-plugin-conversation@npm:3.9.0-next.1" dependencies: "@webex/common": "npm:3.8.1-next.11" "@webex/helper-html": "npm:3.8.1-next.11" "@webex/helper-image": "npm:3.8.1-next.11" - "@webex/internal-plugin-encryption": "npm:3.8.1-next.17" - "@webex/internal-plugin-user": "npm:3.8.1-next.15" - "@webex/webex-core": "npm:3.8.1-next.15" + "@webex/internal-plugin-encryption": "npm:3.9.0-next.1" + "@webex/internal-plugin-user": "npm:3.9.0-next.1" + "@webex/webex-core": "npm:3.9.0-next.1" crypto-js: "npm:^4.1.1" lodash: "npm:^4.17.21" node-scr: "npm:^0.3.0" uuid: "npm:^3.3.2" - checksum: 10c0/95fde3ddc1cb17fd611144450af74935c39fad2ff35af3d7e6d7c5a732bb9cdc2cd17a8e1994547a6fdde96025856882001e717896e9b42f102343a12c53c879 + checksum: 10c0/0ec59ce9403e2ebf7d939d3cc4338e7444eeb0ce73005eb87bd1286c8d6bb319946962569863648b791d78be1785e4afbb56a2e3dc3d07a778d2db592ff48a0d languageName: node linkType: hard @@ -10308,20 +10308,20 @@ __metadata: languageName: node linkType: hard -"@webex/internal-plugin-device@npm:3.8.1-next.15": - version: 3.8.1-next.15 - resolution: "@webex/internal-plugin-device@npm:3.8.1-next.15" +"@webex/internal-plugin-device@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/internal-plugin-device@npm:3.9.0-next.1" dependencies: "@webex/common": "npm:3.8.1-next.11" "@webex/common-timers": "npm:3.8.1-next.11" "@webex/http-core": "npm:3.8.1-next.11" - "@webex/internal-plugin-metrics": "npm:3.8.1-next.15" - "@webex/webex-core": "npm:3.8.1-next.15" + "@webex/internal-plugin-metrics": "npm:3.9.0-next.1" + "@webex/webex-core": "npm:3.9.0-next.1" ampersand-collection: "npm:^2.0.2" ampersand-state: "npm:^5.0.3" lodash: "npm:^4.17.21" uuid: "npm:^3.3.2" - checksum: 10c0/1873ec5850a4578bccb23d008db54f10d10e0393d8b83856ae9f5f9aebc7cf4f95faea70d23d79cdf28c92d38a9a46af7ffd4ffec1a6f0545e0cd43ac7160a2a + checksum: 10c0/4abd1341141000f41b6ea0723c83eee73582e0ba7ab331cce9d23371daeda1c0ad105577070bcf2826f42026345bca74169ff8966312efd8cb6f28ac06c9177b languageName: node linkType: hard @@ -10403,17 +10403,17 @@ __metadata: languageName: node linkType: hard -"@webex/internal-plugin-encryption@npm:3.8.1-next.17": - version: 3.8.1-next.17 - resolution: "@webex/internal-plugin-encryption@npm:3.8.1-next.17" +"@webex/internal-plugin-encryption@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/internal-plugin-encryption@npm:3.9.0-next.1" dependencies: "@webex/common": "npm:3.8.1-next.11" "@webex/common-timers": "npm:3.8.1-next.11" "@webex/http-core": "npm:3.8.1-next.11" - "@webex/internal-plugin-device": "npm:3.8.1-next.15" - "@webex/internal-plugin-mercury": "npm:3.8.1-next.15" + "@webex/internal-plugin-device": "npm:3.9.0-next.1" + "@webex/internal-plugin-mercury": "npm:3.9.0-next.1" "@webex/test-helper-file": "npm:3.8.1-next.11" - "@webex/webex-core": "npm:3.8.1-next.15" + "@webex/webex-core": "npm:3.9.0-next.1" asn1js: "npm:^2.0.26" debug: "npm:^4.3.4" isomorphic-webcrypto: "npm:^2.3.8" @@ -10425,7 +10425,7 @@ __metadata: safe-buffer: "npm:^5.2.0" uuid: "npm:^3.3.2" valid-url: "npm:^1.0.9" - checksum: 10c0/87e9eaaadc4ade106172a971c397a6853a72d1c99ad4f49d26893180ace6094b4afc9cd3fe5f22f947550a896827f5ded6c240919a3d77886497e8984294b682 + checksum: 10c0/0fd1b8875ec8dfce221ec246429c079bfc34eb70d063efbc26e1728d94542513c9c3c0fcae8dbd9764294d340ba29a3f70ee14393381eefec4f42a425d1d4f3a languageName: node linkType: hard @@ -10464,14 +10464,14 @@ __metadata: languageName: node linkType: hard -"@webex/internal-plugin-feature@npm:3.8.1-next.15": - version: 3.8.1-next.15 - resolution: "@webex/internal-plugin-feature@npm:3.8.1-next.15" +"@webex/internal-plugin-feature@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/internal-plugin-feature@npm:3.9.0-next.1" dependencies: - "@webex/internal-plugin-device": "npm:3.8.1-next.15" - "@webex/webex-core": "npm:3.8.1-next.15" + "@webex/internal-plugin-device": "npm:3.9.0-next.1" + "@webex/webex-core": "npm:3.9.0-next.1" lodash: "npm:^4.17.21" - checksum: 10c0/70fb1e9ccda1a66d7a362eb7fd65e13f5b6b32deb2fbc80b1e13f5024d4b5e44ee847c591bd575ffa80caf2720ed9cfebf3dfe8560855a7bbbd461832f995718 + checksum: 10c0/111ba44e51cf6222567b4682adbfcdca1a7523f59165dcb671217416b1ca8b89d079b99641570f4d895b95bb4c1f34d8754420eff272a6dacc81d0f1ab35df94 languageName: node linkType: hard @@ -10649,27 +10649,27 @@ __metadata: languageName: node linkType: hard -"@webex/internal-plugin-mercury@npm:3.8.1-next.15": - version: 3.8.1-next.15 - resolution: "@webex/internal-plugin-mercury@npm:3.8.1-next.15" +"@webex/internal-plugin-mercury@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/internal-plugin-mercury@npm:3.9.0-next.1" dependencies: "@webex/common": "npm:3.8.1-next.11" "@webex/common-timers": "npm:3.8.1-next.11" - "@webex/internal-plugin-device": "npm:3.8.1-next.15" - "@webex/internal-plugin-feature": "npm:3.8.1-next.15" - "@webex/internal-plugin-metrics": "npm:3.8.1-next.15" + "@webex/internal-plugin-device": "npm:3.9.0-next.1" + "@webex/internal-plugin-feature": "npm:3.9.0-next.1" + "@webex/internal-plugin-metrics": "npm:3.9.0-next.1" "@webex/test-helper-chai": "npm:3.8.1-next.11" "@webex/test-helper-mocha": "npm:3.8.1-next.11" "@webex/test-helper-mock-web-socket": "npm:3.8.1-next.11" "@webex/test-helper-mock-webex": "npm:3.8.1-next.11" "@webex/test-helper-refresh-callback": "npm:3.8.1-next.11" "@webex/test-helper-test-users": "npm:3.8.1-next.11" - "@webex/webex-core": "npm:3.8.1-next.15" + "@webex/webex-core": "npm:3.9.0-next.1" backoff: "npm:^2.5.0" lodash: "npm:^4.17.21" uuid: "npm:^3.3.2" ws: "npm:^8.17.1" - checksum: 10c0/bd86195b82cc88370a2d13b0902a8946212501534182187a2055a9cbefcd21e94c6ff25e3a89136b7cdefc5bd7e27c754344322956e3b11360ab58c8a58a1275 + checksum: 10c0/48af16b7b619df7a287cf76460978142a070633932df1888b38f204f01da1ad128635a83b610acce0d9d05f24b812d059ac64306f66e66c4e218bd8b7440bd58 languageName: node linkType: hard @@ -10717,20 +10717,20 @@ __metadata: languageName: node linkType: hard -"@webex/internal-plugin-metrics@npm:3.8.1-next.15": - version: 3.8.1-next.15 - resolution: "@webex/internal-plugin-metrics@npm:3.8.1-next.15" +"@webex/internal-plugin-metrics@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/internal-plugin-metrics@npm:3.9.0-next.1" dependencies: "@webex/common": "npm:3.8.1-next.11" "@webex/common-timers": "npm:3.8.1-next.11" "@webex/event-dictionary-ts": "npm:^1.0.1819" "@webex/test-helper-chai": "npm:3.8.1-next.11" "@webex/test-helper-mock-webex": "npm:3.8.1-next.11" - "@webex/webex-core": "npm:3.8.1-next.15" + "@webex/webex-core": "npm:3.9.0-next.1" ip-anonymize: "npm:^0.1.0" lodash: "npm:^4.17.21" uuid: "npm:^3.3.2" - checksum: 10c0/afeb31c7ae7666db4921c9e016121d48005c494e1ac48cfae84e93e64c7842e6c7f58c5dcee249db4718407f50e4c0001e434626db8f8c9fa77df119335095ca + checksum: 10c0/cf7e845c5928c2c22f672ef80ebd269a072d4b4522cdd139319243eaa19503864fd5d70e9532da0427719952e283d84536556730d912bcb0575ce4b6fb9e1d40 languageName: node linkType: hard @@ -10827,18 +10827,18 @@ __metadata: languageName: node linkType: hard -"@webex/internal-plugin-search@npm:3.8.1-next.18": - version: 3.8.1-next.18 - resolution: "@webex/internal-plugin-search@npm:3.8.1-next.18" +"@webex/internal-plugin-search@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/internal-plugin-search@npm:3.9.0-next.1" dependencies: "@webex/common": "npm:3.8.1-next.11" - "@webex/internal-plugin-conversation": "npm:3.8.1-next.18" - "@webex/internal-plugin-device": "npm:3.8.1-next.15" - "@webex/internal-plugin-encryption": "npm:3.8.1-next.17" - "@webex/webex-core": "npm:3.8.1-next.15" + "@webex/internal-plugin-conversation": "npm:3.9.0-next.1" + "@webex/internal-plugin-device": "npm:3.9.0-next.1" + "@webex/internal-plugin-encryption": "npm:3.9.0-next.1" + "@webex/webex-core": "npm:3.9.0-next.1" lodash: "npm:^4.17.21" uuid: "npm:^3.3.2" - checksum: 10c0/84480003214ff08eb4772aa0b4335cf1f6cb541713cc23cc193bc29a40f4610ef649c408b58c8ec1510b720dd5492b9e3795a8c63548db531f761c6898101e5b + checksum: 10c0/64c478bfca7dd323544fcb76f5f27ddab78ca9b6b58aeb3a25d0c24ed21eb0c151944e4e7ba3926c24bfedfeb3a4e383856b64b103232779d8b075038fffb06f languageName: node linkType: hard @@ -10893,20 +10893,20 @@ __metadata: languageName: node linkType: hard -"@webex/internal-plugin-support@npm:3.8.1-next.18": - version: 3.8.1-next.18 - resolution: "@webex/internal-plugin-support@npm:3.8.1-next.18" +"@webex/internal-plugin-support@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/internal-plugin-support@npm:3.9.0-next.1" dependencies: - "@webex/internal-plugin-device": "npm:3.8.1-next.15" - "@webex/internal-plugin-search": "npm:3.8.1-next.18" + "@webex/internal-plugin-device": "npm:3.9.0-next.1" + "@webex/internal-plugin-search": "npm:3.9.0-next.1" "@webex/test-helper-chai": "npm:3.8.1-next.11" "@webex/test-helper-file": "npm:3.8.1-next.11" "@webex/test-helper-mock-webex": "npm:3.8.1-next.11" "@webex/test-helper-test-users": "npm:3.8.1-next.11" - "@webex/webex-core": "npm:3.8.1-next.15" + "@webex/webex-core": "npm:3.9.0-next.1" lodash: "npm:^4.17.21" uuid: "npm:^3.3.2" - checksum: 10c0/57d9a9c3e3a434016d1dbb35f4c16f1adf8aef499e0bb172923f723cff55ede7654f331cdf9ce54f2017dab8cca257223e283c990ff3999ec970d1322877f4cb + checksum: 10c0/e06e5bcf48fef1c416317993903dccc2bbef2c084e1b7e39df2aa3e691465043a4d80de49df76a28acd19ed7aeb239225ff8bd3efed495f80bcdc886b0c5048c languageName: node linkType: hard @@ -10958,19 +10958,19 @@ __metadata: languageName: node linkType: hard -"@webex/internal-plugin-user@npm:3.8.1-next.15": - version: 3.8.1-next.15 - resolution: "@webex/internal-plugin-user@npm:3.8.1-next.15" +"@webex/internal-plugin-user@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/internal-plugin-user@npm:3.9.0-next.1" dependencies: "@webex/common": "npm:3.8.1-next.11" - "@webex/internal-plugin-device": "npm:3.8.1-next.15" + "@webex/internal-plugin-device": "npm:3.9.0-next.1" "@webex/test-helper-chai": "npm:3.8.1-next.11" "@webex/test-helper-mock-webex": "npm:3.8.1-next.11" "@webex/test-helper-test-users": "npm:3.8.1-next.11" - "@webex/webex-core": "npm:3.8.1-next.15" + "@webex/webex-core": "npm:3.9.0-next.1" lodash: "npm:^4.17.21" uuid: "npm:^3.3.2" - checksum: 10c0/4b86ad73b7657af8c61736f9a5431abfb6e3614f6b3b8f6e5806df7067be3e26374f39f3f0c3aa70e2f587f3659a6a02f8e3ee1185fa5500674880007f21f5d7 + checksum: 10c0/bc52b599464d3e25c700deac6c28b867adabfcefce950e754ad314a577a47056d7459ee417c2c967b65b300b8552861e73a6717d5598dcdb43397aeff74eb604 languageName: node linkType: hard @@ -11165,20 +11165,20 @@ __metadata: languageName: node linkType: hard -"@webex/plugin-authorization-browser@npm:3.8.1-next.15": - version: 3.8.1-next.15 - resolution: "@webex/plugin-authorization-browser@npm:3.8.1-next.15" +"@webex/plugin-authorization-browser@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/plugin-authorization-browser@npm:3.9.0-next.1" dependencies: "@webex/common": "npm:3.8.1-next.11" - "@webex/internal-plugin-device": "npm:3.8.1-next.15" - "@webex/plugin-authorization-node": "npm:3.8.1-next.15" - "@webex/storage-adapter-local-storage": "npm:3.8.1-next.15" + "@webex/internal-plugin-device": "npm:3.9.0-next.1" + "@webex/plugin-authorization-node": "npm:3.9.0-next.1" + "@webex/storage-adapter-local-storage": "npm:3.9.0-next.1" "@webex/storage-adapter-spec": "npm:3.8.1-next.11" - "@webex/webex-core": "npm:3.8.1-next.15" + "@webex/webex-core": "npm:3.9.0-next.1" jsonwebtoken: "npm:^9.0.2" lodash: "npm:^4.17.21" uuid: "npm:^3.3.2" - checksum: 10c0/26d56963c69cb45a03e307b933da5a6a15473559234f9b236bfab0810c7dbb2d5ad35096cbf1eb3a7aa48ae8ce7b8e2e965b974ed2c6ec22218b1169a2df7a03 + checksum: 10c0/9e21845d5ff3af1b6e42a149e04b3b7deefc69c53f81d205717b4bbb98d163d034aff733e2bfe9f087094b42bb736499d751cc90dcbbef29a3ebf1e0af8975a9 languageName: node linkType: hard @@ -11221,16 +11221,16 @@ __metadata: languageName: node linkType: hard -"@webex/plugin-authorization-node@npm:3.8.1-next.15": - version: 3.8.1-next.15 - resolution: "@webex/plugin-authorization-node@npm:3.8.1-next.15" +"@webex/plugin-authorization-node@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/plugin-authorization-node@npm:3.9.0-next.1" dependencies: "@webex/common": "npm:3.8.1-next.11" - "@webex/internal-plugin-device": "npm:3.8.1-next.15" - "@webex/webex-core": "npm:3.8.1-next.15" + "@webex/internal-plugin-device": "npm:3.9.0-next.1" + "@webex/webex-core": "npm:3.9.0-next.1" jsonwebtoken: "npm:^9.0.0" uuid: "npm:^3.3.2" - checksum: 10c0/0dc0ca70be69cb0bd25b484780b5ec08156573245f076073b299f201a197c11b6a89c3233a1c12db754f69236b5091180929e2d428dcdd513f09419c04693794 + checksum: 10c0/b52a593e11a4034ad4580ef040da8eff0f804142404cc052aeaeeb245a9d9537b20b65537616ac852e547b1a13c149f9c079b675599578bd2b4895b0154cfac0 languageName: node linkType: hard @@ -11264,13 +11264,13 @@ __metadata: languageName: node linkType: hard -"@webex/plugin-authorization@npm:3.8.1-next.15": - version: 3.8.1-next.15 - resolution: "@webex/plugin-authorization@npm:3.8.1-next.15" +"@webex/plugin-authorization@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/plugin-authorization@npm:3.9.0-next.1" dependencies: - "@webex/plugin-authorization-browser": "npm:3.8.1-next.15" - "@webex/plugin-authorization-node": "npm:3.8.1-next.15" - checksum: 10c0/6e7a22a42ad140b64592adee1433f9366da0062527732fa7ddc35d6dac8ce051ac67ca072014bc6402852263540a7a6587ae9b875cbcc1cf8762a1e9945f6312 + "@webex/plugin-authorization-browser": "npm:3.9.0-next.1" + "@webex/plugin-authorization-node": "npm:3.9.0-next.1" + checksum: 10c0/ead3a65be83d824bd51f3625466b07207df06ecdbe79f08ff675dfdd08d23a60dc95f3745056cdccb892d8e0f9ce4f96125df04ed1c97dda34c40cb24bc253db languageName: node linkType: hard @@ -11398,17 +11398,17 @@ __metadata: languageName: node linkType: hard -"@webex/plugin-logger@npm:3.8.1-next.15": - version: 3.8.1-next.15 - resolution: "@webex/plugin-logger@npm:3.8.1-next.15" +"@webex/plugin-logger@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/plugin-logger@npm:3.9.0-next.1" dependencies: "@webex/common": "npm:3.8.1-next.11" "@webex/test-helper-chai": "npm:3.8.1-next.11" "@webex/test-helper-mocha": "npm:3.8.1-next.11" "@webex/test-helper-mock-webex": "npm:3.8.1-next.11" - "@webex/webex-core": "npm:3.8.1-next.15" + "@webex/webex-core": "npm:3.9.0-next.1" lodash: "npm:^4.17.21" - checksum: 10c0/4ee8c16821a1b6c023dcd42dd7fc29f09b6e9108c8adbd82fbad922b324250ef517a9fa263c3f078f85693e1e8dfbe7169e2d5e1cc74f1620ec11ab7cf4af5a6 + checksum: 10c0/5937a116e57d7d63aacec25747c119a599cefec4ca3327165e3a9f23d79b12467501c93d6c92b50590614d6d80b75135a6e4e21a7f1d158342e50b5543b7027b languageName: node linkType: hard @@ -11888,14 +11888,14 @@ __metadata: languageName: node linkType: hard -"@webex/storage-adapter-local-storage@npm:3.8.1-next.15": - version: 3.8.1-next.15 - resolution: "@webex/storage-adapter-local-storage@npm:3.8.1-next.15" +"@webex/storage-adapter-local-storage@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/storage-adapter-local-storage@npm:3.9.0-next.1" dependencies: "@webex/storage-adapter-spec": "npm:3.8.1-next.11" "@webex/test-helper-mocha": "npm:3.8.1-next.11" - "@webex/webex-core": "npm:3.8.1-next.15" - checksum: 10c0/1e3185468535f6544f8d178a759c71a39e764658d5eb3ec826d60ad773846e73125f6c0c5c6adb3caa549159a9cd5753feeb312cd5270cca79b9cbdef049609b + "@webex/webex-core": "npm:3.9.0-next.1" + checksum: 10c0/22c19a4d768841ab08db9d3e0ec8b6063f9614dca1ed77c352b6b6e47a15f3f2b600ffa96b59c48128fb622cfa57d9389be9326c4d153210926c688b855830bb languageName: node linkType: hard @@ -12606,9 +12606,9 @@ __metadata: languageName: node linkType: hard -"@webex/webex-core@npm:3.8.1-next.15": - version: 3.8.1-next.15 - resolution: "@webex/webex-core@npm:3.8.1-next.15" +"@webex/webex-core@npm:3.9.0-next.1": + version: 3.9.0-next.1 + resolution: "@webex/webex-core@npm:3.9.0-next.1" dependencies: "@webex/common": "npm:3.8.1-next.11" "@webex/common-timers": "npm:3.8.1-next.11" @@ -12622,7 +12622,7 @@ __metadata: jsonwebtoken: "npm:^9.0.0" lodash: "npm:^4.17.21" uuid: "npm:^3.3.2" - checksum: 10c0/2de628754ba2f73b93d70f806ed8e152b9fd64d874288bf7773ed8ba4e576e1ee54252cd4fa449e3beabb997ae45e60557747215675d7fc6039892c229b1e2b0 + checksum: 10c0/ee499fa7cbf5d6ded9284b5d982ac8a70dfa6bd9c634b24b206a1e33e8717db4c7c5ed53850fc59787a331c98211db4efb2e6da84aa5c156220e919786277bb7 languageName: node linkType: hard From 95380f65f529f5adc50169587dbe303e79fb4ced Mon Sep 17 00:00:00 2001 From: Ravi Chandra Sekhar Sarika Date: Tue, 16 Sep 2025 09:05:59 +0530 Subject: [PATCH 5/7] fix: removed consultTransfer params --- .../task/CallControlCAD/call-control-cad.tsx | 4 +--- .../src/components/task/task.types.ts | 4 +--- packages/contact-center/task/src/helper.ts | 8 ++------ packages/contact-center/task/tests/helper.ts | 14 ++++---------- 4 files changed, 8 insertions(+), 22 deletions(-) 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 5816b137c..b9f263053 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 @@ -32,14 +32,12 @@ const CallControlCADComponent: React.FC = (props) => consultAgentName, consultStartTimeStamp, endConsultCall, - consultAgentId, consultCompleted, consultTransfer, callControlClassName, callControlConsultClassName, startTimestamp, isEndConsultEnabled, - lastTargetType, controlVisibility, logger, isMuted, @@ -221,7 +219,7 @@ const CallControlCADComponent: React.FC = (props) => agentName={consultAgentName} startTimeStamp={consultStartTimeStamp} endConsultCall={endConsultCall} - onTransfer={() => consultTransfer(consultAgentId || currentTask.data.destAgentId, lastTargetType)} + onTransfer={() => consultTransfer()} consultCompleted={consultCompleted} isAgentBeingConsulted={!consultAccepted} isEndConsultEnabled={isEndConsultEnabled} diff --git a/packages/contact-center/cc-components/src/components/task/task.types.ts b/packages/contact-center/cc-components/src/components/task/task.types.ts index 87487467a..be9de5913 100644 --- a/packages/contact-center/cc-components/src/components/task/task.types.ts +++ b/packages/contact-center/cc-components/src/components/task/task.types.ts @@ -282,10 +282,8 @@ export interface ControlProps { /** * Function to transfer the consult call to a destination. - * @param destination - The destination to transfer the consult call to. - * @param destinationType - The type of destination. */ - consultTransfer: (destination: string, destinationType: DestinationType) => void; + consultTransfer: () => void; /** * Flag to determine if the consult call is connecting. diff --git a/packages/contact-center/task/src/helper.ts b/packages/contact-center/task/src/helper.ts index 5b0743640..cf8c79238 100644 --- a/packages/contact-center/task/src/helper.ts +++ b/packages/contact-center/task/src/helper.ts @@ -744,14 +744,10 @@ export const useCallControl = (props: useCallControlProps) => { } }; - const consultTransfer = async (transferDestination: string, destinationType: DestinationType) => { - const consultTransferPayload = { - to: transferDestination, - destinationType: destinationType, - }; + const consultTransfer = async () => { try { //@ts-expect-error To be fixed in SDK - https://jira-eng-sjc12.cisco.com/jira/browse/CAI-6762 - await currentTask.consultTransfer(consultTransferPayload); + await currentTask.consultTransfer(); store.setConsultInitiated(true); } catch (error) { logError(`Error transferring consult call: ${error}`, 'consultTransfer'); diff --git a/packages/contact-center/task/tests/helper.ts b/packages/contact-center/task/tests/helper.ts index 14ec2f7c7..4d6d4d971 100644 --- a/packages/contact-center/task/tests/helper.ts +++ b/packages/contact-center/task/tests/helper.ts @@ -1487,12 +1487,9 @@ describe('useCallControl', () => { }) ); await act(async () => { - await result.current.consultTransfer('dest456', 'queue'); - }); - expect(mockCurrentTask.consultTransfer).toHaveBeenCalledWith({ - to: 'dest456', - destinationType: 'queue', + await result.current.consultTransfer(); }); + expect(mockCurrentTask.consultTransfer).toHaveBeenCalled(); expect(setConsultInitiatedSpy).toHaveBeenCalledWith(true); setConsultInitiatedSpy.mockRestore(); }); @@ -1514,11 +1511,8 @@ describe('useCallControl', () => { }) ); - await expect(result.current.consultTransfer('dest456', 'queue')).rejects.toThrow(transferError); - expect(mockCurrentTask.consultTransfer).toHaveBeenCalledWith({ - to: 'dest456', - destinationType: 'queue', - }); + await expect(result.current.consultTransfer()).rejects.toThrow(transferError); + expect(mockCurrentTask.consultTransfer).toHaveBeenCalled(); expect(mockLogger.error).toHaveBeenCalledWith('Error transferring consult call: Error: Consult transfer failed', { module: 'widget-cc-task#helper.ts', method: 'useCallControl#consultTransfer', From b580f5e226fc45fbbe0d40fb697bbbe8d91fad47 Mon Sep 17 00:00:00 2001 From: Ravi Chandra Sekhar Sarika Date: Tue, 16 Sep 2025 16:33:41 +0530 Subject: [PATCH 6/7] fix: updated sdk version --- packages/contact-center/store/package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/contact-center/store/package.json b/packages/contact-center/store/package.json index 766f3a543..884c84d68 100644 --- a/packages/contact-center/store/package.json +++ b/packages/contact-center/store/package.json @@ -22,7 +22,7 @@ "test:styles": "eslint" }, "dependencies": { - "@webex/contact-center": "3.9.0-next.3", + "@webex/contact-center": "3.9.0-next.4", "mobx": "6.13.5", "typescript": "5.6.3" }, diff --git a/yarn.lock b/yarn.lock index 2070b81a5..f47418a9f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9500,7 +9500,7 @@ __metadata: "@testing-library/react": "npm:16.0.1" "@types/jest": "npm:29.5.14" "@types/react-test-renderer": "npm:18" - "@webex/contact-center": "npm:3.9.0-next.3" + "@webex/contact-center": "npm:3.9.0-next.4" "@webex/test-fixtures": "workspace:*" babel-jest: "npm:29.7.0" babel-loader: "npm:9.2.1" @@ -9839,9 +9839,9 @@ __metadata: languageName: node linkType: hard -"@webex/contact-center@npm:3.9.0-next.3": - version: 3.9.0-next.3 - resolution: "@webex/contact-center@npm:3.9.0-next.3" +"@webex/contact-center@npm:3.9.0-next.4": + version: 3.9.0-next.4 + resolution: "@webex/contact-center@npm:3.9.0-next.4" dependencies: "@types/platform": "npm:1.3.4" "@webex/calling": "npm:3.9.0-next.2" @@ -9853,7 +9853,7 @@ __metadata: "@webex/webex-core": "npm:3.9.0-next.1" jest-html-reporters: "npm:3.0.11" lodash: "npm:^4.17.21" - checksum: 10c0/bf6c8ac6ac11fb002c18e610c8df4dc1392d21de34067bbbb7934c61fd9f5abbb361711cd26b2a2fd7924469ef974486ccbcf9b7827870ff11fda29ce2f0ddc8 + checksum: 10c0/3039bd5f0e78cf4642cef7b824e38fd49c76f6105621ae00e737d3900843189ce52031c9bc1e4884e0383f525eab53612d2445b44460084f28aa5975fa4b4f40 languageName: node linkType: hard From 94795620eed5d22dff1d5c04d70c5d095fbea894 Mon Sep 17 00:00:00 2001 From: Ravi Chandra Sekhar Sarika Date: Tue, 16 Sep 2025 19:08:41 +0530 Subject: [PATCH 7/7] fix: addressed comments --- .../consult-transfer-dial-number.tsx | 2 -- .../consult-transfer-popover.tsx | 23 ++++++++++--------- .../task/CallControlCAD/call-control-cad.tsx | 2 +- .../src/components/task/constants.ts | 4 +++- .../src/components/task/task.types.ts | 2 +- 5 files changed, 17 insertions(+), 16 deletions(-) diff --git a/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx index a6a807eef..750d4a31c 100644 --- a/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx +++ b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-dial-number.tsx @@ -1,5 +1,3 @@ -// EmptyState.tsx - import React, {useState} from 'react'; import './consult-transfer-dial-number.scss'; import {ButtonCircle} from '@momentum-ui/react-collaboration'; diff --git a/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-popover.tsx b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-popover.tsx index 592a078eb..593456e1a 100644 --- a/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-popover.tsx +++ b/packages/contact-center/cc-components/src/components/task/CallControl/CallControlCustom/consult-transfer-popover.tsx @@ -12,6 +12,7 @@ import { getEmptyStateMessage, } from './call-control-custom.utils'; import DialNumberUI from './consult-transfer-dial-number'; +import {AGENTS, DIAL_NUMBER, QUEUES} from '../../constants'; const ConsultTransferPopoverComponent: React.FC = ({ heading, @@ -24,13 +25,13 @@ const ConsultTransferPopoverComponent: React.FC { - const [selectedTab, setSelectedTab] = useState('Agents'); + const [selectedTab, setSelectedTab] = useState(AGENTS); const filteredAgents = buddyAgents; const filteredQueues = queues; const noAgents = isAgentsEmpty(filteredAgents); const noQueues = isQueuesEmpty(filteredQueues); - const showTabs = true; //shouldShowTabs(filteredAgents, filteredQueues); + const showTabs = true; // Always show tabs to allow dial number option const renderList = (items, getKey, getTitle, handleSelect) => ( @@ -73,19 +74,19 @@ const ConsultTransferPopoverComponent: React.FC - + Agents Queues - + Dial Number @@ -95,18 +96,18 @@ const ConsultTransferPopoverComponent: React.FC} {/* If agents tab is selected and empty */} - {showTabs && selectedTab === 'Agents' && noAgents && ( + {showTabs && selectedTab === AGENTS && noAgents && ( )} {/* If queues tab is selected and empty */} - {showTabs && selectedTab === 'Queues' && noQueues && ( + {showTabs && selectedTab === QUEUES && noQueues && ( )} {/* Render lists if not empty */} {showTabs && - selectedTab === 'Agents' && + selectedTab === AGENTS && !noAgents && renderList( filteredAgents, @@ -118,7 +119,7 @@ const ConsultTransferPopoverComponent: React.FC = (props) => agentName={consultAgentName} startTimeStamp={consultStartTimeStamp} endConsultCall={endConsultCall} - onTransfer={() => consultTransfer()} + onTransfer={consultTransfer} consultCompleted={consultCompleted} isAgentBeingConsulted={!consultAccepted} isEndConsultEnabled={isEndConsultEnabled} diff --git a/packages/contact-center/cc-components/src/components/task/constants.ts b/packages/contact-center/cc-components/src/components/task/constants.ts index 166468754..310fdfc1d 100644 --- a/packages/contact-center/cc-components/src/components/task/constants.ts +++ b/packages/contact-center/cc-components/src/components/task/constants.ts @@ -15,7 +15,9 @@ export const SELECT = 'Select'; export const SUBMIT_WRAP_UP = 'Submit & Wrap up'; export const MUTE_CALL = 'Mute'; export const UNMUTE_CALL = 'Unmute'; - +export const DIAL_NUMBER = 'DialNumber'; +export const AGENTS = 'Agents'; +export const QUEUES = 'Queues'; // CallControlCAD constants export const NO_CUSTOMER_NAME = 'No Customer Name'; export const NO_CALLER_ID = 'No Caller ID'; diff --git a/packages/contact-center/cc-components/src/components/task/task.types.ts b/packages/contact-center/cc-components/src/components/task/task.types.ts index be9de5913..a96c41b06 100644 --- a/packages/contact-center/cc-components/src/components/task/task.types.ts +++ b/packages/contact-center/cc-components/src/components/task/task.types.ts @@ -281,7 +281,7 @@ export interface ControlProps { endConsultCall: () => void; /** - * Function to transfer the consult call to a destination. + * Function to transfer the consult call to a already established consult. */ consultTransfer: () => void;