From 9fbede30401bf8cf883df5355c397875a5f8c0ad Mon Sep 17 00:00:00 2001 From: Chetan Agarwal Date: Tue, 24 Feb 2026 18:18:38 +0000 Subject: [PATCH 1/2] fix: replace any with proper type for onClickItem in CannedResponseList --- .../contextualBar/CannedResponse/CannedResponseList.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.tsx b/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.tsx index 9d2df044c3201..14f4f64054461 100644 --- a/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.tsx +++ b/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.tsx @@ -31,7 +31,7 @@ type CannedResponseListProps = { type: string; setType: Dispatch>; isRoomOverMacLimit: boolean; - onClickItem: (data: any) => void; // FIXME: fix typings + onClickItem: (data: IOmnichannelCannedResponse & { departmentName?: ILivechatDepartment['name'] }) => void; onClickCreate: (e: MouseEvent) => void; onClickUse: (e: MouseEvent, text: string) => void; reload: () => void; From c2cf6a7b416a402d767545ba89ea7afd2c7cbf96 Mon Sep 17 00:00:00 2001 From: Chetan Agarwal Date: Tue, 24 Feb 2026 19:45:59 +0000 Subject: [PATCH 2/2] fix: properly type onClickItem and add onClickBack prop in CannedResponseList --- .../CannedResponse/CannedResponseList.spec.tsx | 1 + .../CannedResponse/CannedResponseList.stories.tsx | 2 ++ .../CannedResponse/CannedResponseList.tsx | 6 ++++-- .../CannedResponse/WrapCannedResponseList.tsx | 13 ++++++++++++- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.spec.tsx b/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.spec.tsx index 55267acdf7cf4..f15d071c5d3f5 100644 --- a/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.spec.tsx +++ b/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.spec.tsx @@ -66,6 +66,7 @@ describe('CannedResponseList', () => { setType: jest.fn(), isRoomOverMacLimit: false, onClickItem: jest.fn(), + onClickBack: jest.fn(), onClickCreate: jest.fn(), onClickUse: jest.fn(), reload: jest.fn(), diff --git a/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.stories.tsx b/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.stories.tsx index 538123afda88a..5a27b86dfedf4 100644 --- a/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.stories.tsx +++ b/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.stories.tsx @@ -73,5 +73,7 @@ Default.args = { ], itemCount: 3, loadMoreItems: action('loadMoreItems'), + onClickItem: action('onClickItem'), + onClickBack: action('onClickBack'), }; Default.decorators = [(fn) => {fn()}]; diff --git a/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.tsx b/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.tsx index 14f4f64054461..8e77a210cf962 100644 --- a/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.tsx +++ b/apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.tsx @@ -11,7 +11,7 @@ import { ContextualbarDialog, } from '@rocket.chat/ui-client'; import { useRoomToolbox } from '@rocket.chat/ui-contexts'; -import type { Dispatch, FormEventHandler, MouseEvent, ReactElement, SetStateAction } from 'react'; +import type { Dispatch, FormEventHandler, MouseEvent, MouseEventHandler, ReactElement, SetStateAction } from 'react'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; import { Virtuoso } from 'react-virtuoso'; @@ -32,6 +32,7 @@ type CannedResponseListProps = { setType: Dispatch>; isRoomOverMacLimit: boolean; onClickItem: (data: IOmnichannelCannedResponse & { departmentName?: ILivechatDepartment['name'] }) => void; + onClickBack: MouseEventHandler; onClickCreate: (e: MouseEvent) => void; onClickUse: (e: MouseEvent, text: string) => void; reload: () => void; @@ -49,6 +50,7 @@ const CannedResponseList = ({ setType, isRoomOverMacLimit, onClickItem, + onClickBack, onClickCreate, onClickUse, reload, @@ -70,7 +72,7 @@ const CannedResponseList = ({ { const onClickItem = useEffectEvent( ( data: IOmnichannelCannedResponse & { - departmentName: ILivechatDepartment['name']; + departmentName?: ILivechatDepartment['name']; }, ) => { const { _id: context } = data; @@ -53,6 +53,16 @@ export const WrapCannedResponseList = () => { }, ); + const onClickBack = useEffectEvent((_e: MouseEvent) => { + router.navigate({ + name: router.getRouteName() ?? 'live', + params: { + id: room._id, + tab: 'canned-responses', + }, + }); + }); + const composer = useChat()?.composer; const onClickUse = (e: MouseEvent, text: string): void => { @@ -81,6 +91,7 @@ export const WrapCannedResponseList = () => { isRoomOverMacLimit={isRoomOverMacLimit} onClickUse={onClickUse} onClickItem={onClickItem} + onClickBack={onClickBack} onClickCreate={onClickCreate} reload={refetch} />