From 926f04e4ad4cb64bc38741b3b230b13241046d69 Mon Sep 17 00:00:00 2001 From: Alyar <> Date: Fri, 15 May 2026 00:45:55 +0400 Subject: [PATCH 1/3] DataGrid - AI Assistant: Disable chat suggestions in disabled state --- .../grids/grid_core/ai_chat/ai_chat.test.ts | 21 +++++++++++++++++++ .../grids/grid_core/ai_chat/ai_chat.ts | 9 ++++++++ .../grids/grid_core/ai_chat/const.ts | 1 + 3 files changed, 31 insertions(+) diff --git a/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.test.ts b/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.test.ts index 661fd5d40497..6ad53113b3e9 100644 --- a/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.test.ts +++ b/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.test.ts @@ -812,6 +812,27 @@ describe('AIChat', () => { expect(mockClearChatButtonInstance.option).toHaveBeenCalledWith('disabled', false); }); + it('should disable chat suggestions widget', () => { + const { aiChat } = createAIChat(); + triggerContentTemplate(); + mockChatElement.append($('
').addClass(CLASSES.chatSuggestions)); + + aiChat.setDisabled(true); + + expect(mockWidgetInstance.option).toHaveBeenCalledWith('disabled', true); + }); + + it('should enable chat suggestions widget when set to false', () => { + const { aiChat } = createAIChat(); + triggerContentTemplate(); + mockChatElement.append($('
').addClass(CLASSES.chatSuggestions)); + + aiChat.setDisabled(true); + aiChat.setDisabled(false); + + expect(mockWidgetInstance.option).toHaveBeenCalledWith('disabled', false); + }); + it('should not update when setting same disabled value', () => { const { aiChat } = createAIChat(); triggerContentTemplate(); diff --git a/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.ts b/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.ts index 155ccb35b83f..9daa02d9ae24 100644 --- a/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.ts +++ b/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.ts @@ -273,6 +273,14 @@ export class AIChat { this.clearChatButtonInstance?.option('disabled', disabled); } + private setChatSuggestionsDisabled(disabled: boolean): void { + const $chatSuggestions = this.chatInstance?.$element().find(`.${CLASSES.chatSuggestions}`); + + if ($chatSuggestions?.length) { + gridCoreUtils.getWidgetInstance($chatSuggestions)?.option('disabled', disabled); + } + } + public updateOptions(options: AIChatOptions, updatePopup: boolean, updateChat: boolean): void { this.options = options; @@ -308,6 +316,7 @@ export class AIChat { this.setTextAreaDisabled(disabled); this.setSpeechToTextDisabled(disabled); this.setClearChatButtonDisabled(disabled); + this.setChatSuggestionsDisabled(disabled); } public renderAIMessage(message: AIMessage, container: HTMLElement): void { diff --git a/packages/devextreme/js/__internal/grids/grid_core/ai_chat/const.ts b/packages/devextreme/js/__internal/grids/grid_core/ai_chat/const.ts index a7f5caf28466..2fe88cd74d58 100644 --- a/packages/devextreme/js/__internal/grids/grid_core/ai_chat/const.ts +++ b/packages/devextreme/js/__internal/grids/grid_core/ai_chat/const.ts @@ -48,6 +48,7 @@ export const CLASSES = { disabled: 'dx-ai-chat--disabled', textArea: TEXTAREA_CLASS, speechToTextButton: SPEECH_TO_TEXT_CLASS, + chatSuggestions: 'dx-chat-suggestions', }; export const CLEAR_CHAT_ICON = 'clearhistory'; From 324a8100f7fedbce17d88b27fa0bbb6726c728c9 Mon Sep 17 00:00:00 2001 From: Alyar <> Date: Fri, 15 May 2026 02:02:32 +0400 Subject: [PATCH 2/3] small refactoring code --- .../__internal/grids/grid_core/ai_chat/ai_chat.test.ts | 10 ++++------ .../js/__internal/grids/grid_core/ai_chat/ai_chat.ts | 6 +----- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.test.ts b/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.test.ts index 6ad53113b3e9..792707a594fd 100644 --- a/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.test.ts +++ b/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.test.ts @@ -812,25 +812,23 @@ describe('AIChat', () => { expect(mockClearChatButtonInstance.option).toHaveBeenCalledWith('disabled', false); }); - it('should disable chat suggestions widget', () => { + it('should disable chat suggestions via chatInstance option', () => { const { aiChat } = createAIChat(); triggerContentTemplate(); - mockChatElement.append($('
').addClass(CLASSES.chatSuggestions)); aiChat.setDisabled(true); - expect(mockWidgetInstance.option).toHaveBeenCalledWith('disabled', true); + expect(mockChatInstance.option).toHaveBeenCalledWith({ suggestions: { disabled: true } }); }); - it('should enable chat suggestions widget when set to false', () => { + it('should enable chat suggestions via chatInstance option when set to false', () => { const { aiChat } = createAIChat(); triggerContentTemplate(); - mockChatElement.append($('
').addClass(CLASSES.chatSuggestions)); aiChat.setDisabled(true); aiChat.setDisabled(false); - expect(mockWidgetInstance.option).toHaveBeenCalledWith('disabled', false); + expect(mockChatInstance.option).toHaveBeenCalledWith({ suggestions: { disabled: false } }); }); it('should not update when setting same disabled value', () => { diff --git a/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.ts b/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.ts index 9daa02d9ae24..a3043e8db9f6 100644 --- a/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.ts +++ b/packages/devextreme/js/__internal/grids/grid_core/ai_chat/ai_chat.ts @@ -274,11 +274,7 @@ export class AIChat { } private setChatSuggestionsDisabled(disabled: boolean): void { - const $chatSuggestions = this.chatInstance?.$element().find(`.${CLASSES.chatSuggestions}`); - - if ($chatSuggestions?.length) { - gridCoreUtils.getWidgetInstance($chatSuggestions)?.option('disabled', disabled); - } + this.chatInstance?.option({ suggestions: { disabled } }); } public updateOptions(options: AIChatOptions, updatePopup: boolean, updateChat: boolean): void { From 8b3e5249d96d4f036c9d678778643c9f83aa31b3 Mon Sep 17 00:00:00 2001 From: Alyar <> Date: Fri, 15 May 2026 11:57:21 +0400 Subject: [PATCH 3/3] remove extra class --- .../devextreme/js/__internal/grids/grid_core/ai_chat/const.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/devextreme/js/__internal/grids/grid_core/ai_chat/const.ts b/packages/devextreme/js/__internal/grids/grid_core/ai_chat/const.ts index 2fe88cd74d58..a7f5caf28466 100644 --- a/packages/devextreme/js/__internal/grids/grid_core/ai_chat/const.ts +++ b/packages/devextreme/js/__internal/grids/grid_core/ai_chat/const.ts @@ -48,7 +48,6 @@ export const CLASSES = { disabled: 'dx-ai-chat--disabled', textArea: TEXTAREA_CLASS, speechToTextButton: SPEECH_TO_TEXT_CLASS, - chatSuggestions: 'dx-chat-suggestions', }; export const CLEAR_CHAT_ICON = 'clearhistory';