From 365f7e9e8800635c733ebef2ff2eda66b90b9a98 Mon Sep 17 00:00:00 2001 From: laileni Date: Mon, 10 Mar 2025 18:31:55 -0700 Subject: [PATCH 1/2] UX changes in feedback mechanism --- .../webview/ui/apps/testChatConnector.ts | 29 +++++++++++++++++++ .../core/src/amazonq/webview/ui/connector.ts | 2 +- .../amazonqTest/chat/controller/controller.ts | 7 +---- 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/packages/core/src/amazonq/webview/ui/apps/testChatConnector.ts b/packages/core/src/amazonq/webview/ui/apps/testChatConnector.ts index 21e09db7cf5..40f51c529d8 100644 --- a/packages/core/src/amazonq/webview/ui/apps/testChatConnector.ts +++ b/packages/core/src/amazonq/webview/ui/apps/testChatConnector.ts @@ -86,6 +86,7 @@ export class Connector extends BaseConnector { onCustomFormAction( tabId: string, + messageId: string, action: { id: string text?: string | undefined @@ -105,6 +106,34 @@ export class Connector extends BaseConnector { tabID: tabId, description: action.description, }) + + if (this.onChatAnswerUpdated === undefined) { + return + } + const answer: ChatItem = { + type: ChatItemType.ANSWER, + messageId: messageId, + buttons: [], + } + + switch (action.id) { + case 'Provide-Feedback': + answer.buttons = [ + { + keepCardAfterClick: true, + text: 'Thanks for providing feedback.', + id: 'utg_provided_feedback', + status: 'success', + position: 'outside', + disabled: true, + }, + ] + break + default: + console.warn(`Unhandled action ID: ${action.id}`) + break + } + this.onChatAnswerUpdated(tabId, answer) } onFileDiff = (tabID: string, filePath: string, deleted: boolean, messageId?: string): void => { diff --git a/packages/core/src/amazonq/webview/ui/connector.ts b/packages/core/src/amazonq/webview/ui/connector.ts index 5159c01a991..8f1cde9e565 100644 --- a/packages/core/src/amazonq/webview/ui/connector.ts +++ b/packages/core/src/amazonq/webview/ui/connector.ts @@ -695,7 +695,7 @@ export class Connector { this.gumbyChatConnector.onCustomFormAction(tabId, action) break case 'testgen': - this.testChatConnector.onCustomFormAction(tabId, action) + this.testChatConnector.onCustomFormAction(tabId, messageId ?? '', action) break case 'review': this.scanChatConnector.onCustomFormAction(tabId, action) diff --git a/packages/core/src/amazonqTest/chat/controller/controller.ts b/packages/core/src/amazonqTest/chat/controller/controller.ts index 984fb36e00e..2eaf28b9c4d 100644 --- a/packages/core/src/amazonqTest/chat/controller/controller.ts +++ b/packages/core/src/amazonqTest/chat/controller/controller.ts @@ -396,11 +396,6 @@ export class TestController { getFeedbackCommentData = `Q Test Generation: RequestId: ${this.sessionStorage.getSession().startTestGenerationRequestId}, TestGenerationJobId: ${this.sessionStorage.getSession().testGenerationJob?.testGenerationJobId}` void submitFeedback(placeholder, 'Amazon Q', getFeedbackCommentData) telemetry.ui_click.emit({ elementId: 'unitTestGeneration_provideFeedback' }) - this.messenger.sendMessage( - 'Unit test generation completed. Thanks for providing feedback.', - data.tabID, - 'answer' - ) break } } @@ -435,7 +430,7 @@ export class TestController { const buttons: ChatItemButton[] = [] if (Auth.instance.isInternalAmazonUser()) { buttons.push({ - keepCardAfterClick: false, + keepCardAfterClick: true, text: 'How can we make /test better?', id: ButtonActions.PROVIDE_FEEDBACK, disabled: false, // allow button to be re-clicked From bca268a326dd3acbbaeae1aca6c9dcd921a315bf Mon Sep 17 00:00:00 2001 From: laileni Date: Tue, 11 Mar 2025 10:13:53 -0700 Subject: [PATCH 2/2] Minor comments --- packages/core/src/amazonq/webview/ui/apps/testChatConnector.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/core/src/amazonq/webview/ui/apps/testChatConnector.ts b/packages/core/src/amazonq/webview/ui/apps/testChatConnector.ts index 40f51c529d8..35fb0bc0683 100644 --- a/packages/core/src/amazonq/webview/ui/apps/testChatConnector.ts +++ b/packages/core/src/amazonq/webview/ui/apps/testChatConnector.ts @@ -115,7 +115,7 @@ export class Connector extends BaseConnector { messageId: messageId, buttons: [], } - + // TODO: Add more cases for Accept/Reject/viewDiff. switch (action.id) { case 'Provide-Feedback': answer.buttons = [ @@ -130,7 +130,6 @@ export class Connector extends BaseConnector { ] break default: - console.warn(`Unhandled action ID: ${action.id}`) break } this.onChatAnswerUpdated(tabId, answer)