From f5d4d7541976327ddeca22abb44fb225d3ca9a9d Mon Sep 17 00:00:00 2001 From: Aleksander Grygier Date: Thu, 29 Oct 2026 09:15:54 +0100 Subject: [PATCH] ui: show submit button when the chat input has content (#31324) ChatFormActions gated the mic and stop buttons on a `canSubmit` prop that ChatForm never passed, so it was always false and typing text did not swap them for the submit button. Use `canSend` instead and also hide the skip-reasoning button while there is content to send. Assisted-by: Claude (Opus 5.5 Medium) --- .../chat/ChatForm/ChatFormActions/ChatFormActions.svelte | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/tools/ui/src/lib/components/app/chat/ChatForm/ChatFormActions/ChatFormActions.svelte b/tools/ui/src/lib/components/app/chat/ChatForm/ChatFormActions/ChatFormActions.svelte index d78925141..c51ac72a1 100644 --- a/tools/ui/src/lib/components/app/chat/ChatForm/ChatFormActions/ChatFormActions.svelte +++ b/tools/ui/src/lib/components/app/chat/ChatForm/ChatFormActions/ChatFormActions.svelte @@ -20,7 +20,6 @@ interface Props { canSend?: boolean; - canSubmit?: boolean; class?: string; disabled?: boolean; isLoading?: boolean; @@ -37,7 +36,6 @@ let { canSend = false, - canSubmit = false, class: className = '', disabled = false, isLoading = false, @@ -73,7 +71,7 @@ uploadedFiles.some((file) => getFileTypeCategory(file.type) === FileTypeCategory.AUDIO) ); let shouldShowRecordButton = $derived( - hasAudioModality && !canSubmit && !hasAudioAttachments && currentConfig.autoMicOnEmpty + hasAudioModality && !canSend && !hasAudioAttachments && currentConfig.autoMicOnEmpty ); let selectorModelRef: ModelsSelector | undefined = $state(undefined); @@ -176,7 +174,7 @@ {/if} - {#if isReasoning} + {#if isReasoning && !canSend} {/if} - {#if isLoading && !canSubmit} + {#if isLoading && !canSend}