From b87a0a655df9a4cbf5d049b6fa8255e0a42826bf Mon Sep 17 00:00:00 2001 From: Ravi Chandra Sekhar Sarika Date: Fri, 1 Aug 2025 13:35:38 +0530 Subject: [PATCH 1/2] fix: tasklist in trasnfered cases --- .../src/components/task/TaskList/task-list.utils.ts | 2 +- packages/contact-center/store/src/storeEventsWrapper.ts | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/contact-center/cc-components/src/components/task/TaskList/task-list.utils.ts b/packages/contact-center/cc-components/src/components/task/TaskList/task-list.utils.ts index f902c1b1d..cb2bf046e 100644 --- a/packages/contact-center/cc-components/src/components/task/TaskList/task-list.utils.ts +++ b/packages/contact-center/cc-components/src/components/task/TaskList/task-list.utils.ts @@ -20,7 +20,7 @@ export const extractTaskListItemData = (task: ITask, isBrowser: boolean): TaskLi const taskState = task.data.interaction.state; const startTimeStamp = task.data.interaction.createdTimestamp; - const isIncomingTask = taskState === 'new' || taskState === 'consult'; + const isIncomingTask = !task?.data.wrapUpRequired && (taskState === 'new' || taskState === 'consult'); const mediaType = task.data.interaction.mediaType; const mediaChannel = task.data.interaction.mediaChannel; diff --git a/packages/contact-center/store/src/storeEventsWrapper.ts b/packages/contact-center/store/src/storeEventsWrapper.ts index 859563be8..1d39d6391 100644 --- a/packages/contact-center/store/src/storeEventsWrapper.ts +++ b/packages/contact-center/store/src/storeEventsWrapper.ts @@ -203,7 +203,11 @@ class StoreWrapper implements IStoreWrapper { setCurrentTask = (task: ITask | null, isClicked: boolean = false): void => { // Don't assign the task as current task if the interaction state is 'new' or 'consult' - if (task?.data.interaction.state === 'new' || task?.data.interaction.state === 'consult') return; + if ( + !task?.data.wrapUpRequired && + (task?.data.interaction.state === 'new' || task?.data.interaction.state === 'consult') + ) + return; runInAction(() => { // Determine if the new task is the same as the current task From a782d5d446582bf25fe4f9ab27e5d292139aacf8 Mon Sep 17 00:00:00 2001 From: Ravi Chandra Sekhar Sarika Date: Fri, 1 Aug 2025 13:50:51 +0530 Subject: [PATCH 2/2] fix: added test --- .../task/TaskList/task-list.utils.tsx | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/packages/contact-center/cc-components/tests/components/task/TaskList/task-list.utils.tsx b/packages/contact-center/cc-components/tests/components/task/TaskList/task-list.utils.tsx index f4ddc2905..f9e4f858f 100644 --- a/packages/contact-center/cc-components/tests/components/task/TaskList/task-list.utils.tsx +++ b/packages/contact-center/cc-components/tests/components/task/TaskList/task-list.utils.tsx @@ -126,6 +126,40 @@ describe('task-list.utils', () => { mockTask.data.interaction.mediaType = originalMediaType; }); + it('should extract correct data for incoming telephony task on browser if wrapUpRequired', () => { + const originalState = mockTask.data.interaction.state; + const originalCallAssociatedDetails = mockTask.data.interaction.callAssociatedDetails; + const originalWrapUpRequired = mockTask.data.wrapUpRequired; + const originalMediaType = mockTask.data.interaction.mediaType; + + mockTask.data.interaction.state = 'new'; + mockTask.data.interaction.callAssociatedDetails = { + ani: '9876543210', + customerName: 'Jane Smith', + virtualTeamName: 'Sales Team', + ronaTimeout: '60', + }; + mockTask.data.wrapUpRequired = true; + mockTask.data.interaction.mediaType = MEDIA_CHANNEL.TELEPHONY; + + const result = extractTaskListItemData(mockTask, true); + + expect(result.ani).toBe('9876543210'); + expect(result.ronaTimeout).toBeNull(); // Active tasks don't show RONA timeout + expect(result.taskState).toBe('new'); + expect(result.isIncomingTask).toBe(false); + expect(result.acceptText).toBeUndefined(); + expect(result.declineText).toBeUndefined(); + expect(result.disableAccept).toBe(false); + expect(result.displayState).toBe('new'); + + // Restore original values + mockTask.data.interaction.state = originalState; + mockTask.data.interaction.callAssociatedDetails = originalCallAssociatedDetails; + mockTask.data.wrapUpRequired = originalWrapUpRequired; + mockTask.data.interaction.mediaType = originalMediaType; + }); + it('should extract correct data for incoming telephony task on non-browser', () => { const originalState = mockTask.data.interaction.state; const originalCallAssociatedDetails = mockTask.data.interaction.callAssociatedDetails;