From 367643025d5e5053bf266deabc883aee58a574ff Mon Sep 17 00:00:00 2001 From: Suguru Inoue Date: Fri, 5 Dec 2025 14:47:23 +0100 Subject: [PATCH] fix(editor): Address chat UI feedback (no-changelog) (#22819) --- .../frontend/editor-ui/src/features/ai/chatHub/ChatView.vue | 3 ++- .../src/features/ai/chatHub/components/ChatMessage.vue | 5 +++++ .../src/features/ai/chatHub/components/ChatPrompt.vue | 2 ++ .../src/features/ai/chatHub/components/ChatSidebarLink.vue | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/frontend/editor-ui/src/features/ai/chatHub/ChatView.vue b/packages/frontend/editor-ui/src/features/ai/chatHub/ChatView.vue index fcc7d08b57e..32226551527 100644 --- a/packages/frontend/editor-ui/src/features/ai/chatHub/ChatView.vue +++ b/packages/frontend/editor-ui/src/features/ai/chatHub/ChatView.vue @@ -320,6 +320,7 @@ watch( [sessionId, isNewSession], async ([id, isNew]) => { didSubmitInCurrentSession.value = false; + editingMessageId.value = undefined; if (!isNew && !chatStore.getConversation(id)) { try { @@ -365,7 +366,7 @@ watch( watch( defaultAgent, (agent, prevAgent) => { - if (defaultModel.value && agent && agent.name !== prevAgent?.name) { + if (defaultModel.value && agent?.name && agent.name !== prevAgent?.name) { defaultModel.value = { ...defaultModel.value, cachedDisplayName: agent.name }; } diff --git a/packages/frontend/editor-ui/src/features/ai/chatHub/components/ChatMessage.vue b/packages/frontend/editor-ui/src/features/ai/chatHub/components/ChatMessage.vue index f720dc6d3fa..9b107822895 100644 --- a/packages/frontend/editor-ui/src/features/ai/chatHub/components/ChatMessage.vue +++ b/packages/frontend/editor-ui/src/features/ai/chatHub/components/ChatMessage.vue @@ -114,6 +114,11 @@ function handleConfirmEdit() { } function handleKeydownTextarea(e: KeyboardEvent) { + if (e.key === 'Escape') { + emit('cancelEdit'); + return; + } + const trimmed = editedText.value.trim(); if (e.key === 'Enter' && isCtrlKeyPressed(e) && !e.isComposing && trimmed) { diff --git a/packages/frontend/editor-ui/src/features/ai/chatHub/components/ChatPrompt.vue b/packages/frontend/editor-ui/src/features/ai/chatHub/components/ChatPrompt.vue index 8ce4e72d107..d8e93315089 100644 --- a/packages/frontend/editor-ui/src/features/ai/chatHub/components/ChatPrompt.vue +++ b/packages/frontend/editor-ui/src/features/ai/chatHub/components/ChatPrompt.vue @@ -125,6 +125,8 @@ function handleSubmitForm() { function handleKeydownTextarea(e: KeyboardEvent) { const trimmed = message.value.trim(); + speechInput.stop(); + if (e.key === 'Enter' && !e.shiftKey && !e.isComposing && trimmed) { e.preventDefault(); speechInput.stop(); diff --git a/packages/frontend/editor-ui/src/features/ai/chatHub/components/ChatSidebarLink.vue b/packages/frontend/editor-ui/src/features/ai/chatHub/components/ChatSidebarLink.vue index df3f1a05791..9310587baaa 100644 --- a/packages/frontend/editor-ui/src/features/ai/chatHub/components/ChatSidebarLink.vue +++ b/packages/frontend/editor-ui/src/features/ai/chatHub/components/ChatSidebarLink.vue @@ -108,9 +108,9 @@ defineSlots<{ .actionDropdown { opacity: 0; - transition: opacity 0.2s; flex-shrink: 0; width: 0; + overflow: hidden; .menuItem:has([aria-expanded='true']) &, .menuItem:has(:focus) &,