diff --git a/src/features/composer/components/Composer.tsx b/src/features/composer/components/Composer.tsx index d8953ed71..574a7baf0 100644 --- a/src/features/composer/components/Composer.tsx +++ b/src/features/composer/components/Composer.tsx @@ -117,6 +117,7 @@ export function Composer({ const internalRef = useRef(null); const textareaRef = externalTextareaRef ?? internalRef; const isDictationBusy = dictationState !== "idle"; + const canSend = text.trim().length > 0 || attachedImages.length > 0; useEffect(() => { setText((prev) => (prev === draftText ? prev : draftText)); @@ -241,6 +242,8 @@ export function Composer({ disabled={disabled} sendLabel={sendLabel} canStop={canStop} + canSend={canSend} + isProcessing={isProcessing} onStop={onStop} onSend={handleSend} dictationEnabled={dictationEnabled} diff --git a/src/features/composer/components/ComposerInput.tsx b/src/features/composer/components/ComposerInput.tsx index db3514d27..13cd983e9 100644 --- a/src/features/composer/components/ComposerInput.tsx +++ b/src/features/composer/components/ComposerInput.tsx @@ -11,6 +11,8 @@ type ComposerInputProps = { disabled: boolean; sendLabel: string; canStop: boolean; + canSend: boolean; + isProcessing: boolean; onStop: () => void; onSend: () => void; dictationState?: "idle" | "listening" | "processing"; @@ -42,6 +44,8 @@ export function ComposerInput({ disabled, sendLabel, canStop, + canSend, + isProcessing, onStop, onSend, dictationState = "idle", @@ -314,13 +318,20 @@ export function ComposerInput({ {isDictating ? : }