diff --git a/components/chat-input.tsx b/components/chat-input.tsx index b58a34a..e59dc32 100644 --- a/components/chat-input.tsx +++ b/components/chat-input.tsx @@ -45,6 +45,12 @@ export function ChatInput({ const [isDragging, setIsDragging] = useState(false); const [showClearDialog, setShowClearDialog] = useState(false); + // Debug: Log status changes + const isDisabled = status === "streaming" || status === "submitted"; + useEffect(() => { + console.log('[ChatInput] Status changed to:', status, '| Input disabled:', isDisabled); + }, [status, isDisabled]); + // Auto-resize textarea based on content const adjustTextareaHeight = useCallback(() => { const textarea = textareaRef.current; @@ -63,7 +69,7 @@ export function ChatInput({ if ((e.metaKey || e.ctrlKey) && e.key === "Enter") { e.preventDefault(); const form = e.currentTarget.closest("form"); - if (form && input.trim() && status !== "streaming") { + if (form && input.trim() && !isDisabled) { form.requestSubmit(); } } @@ -71,7 +77,7 @@ export function ChatInput({ // Handle clipboard paste const handlePaste = async (e: React.ClipboardEvent) => { - if (status === "streaming") return; + if (isDisabled) return; const items = e.clipboardData.items; const imageItems = Array.from(items).filter((item) => @@ -140,7 +146,7 @@ export function ChatInput({ e.stopPropagation(); setIsDragging(false); - if (status === "streaming") return; + if (isDisabled) return; const droppedFiles = e.dataTransfer.files; @@ -183,7 +189,7 @@ export function ChatInput({ placeholder="Describe what changes you want to make to the diagram or upload(paste) an image to replicate a diagram. (Press Cmd/Ctrl + Enter to send)" - disabled={status === "streaming"} + disabled={isDisabled} aria-label="Chat input" className="min-h-[80px] resize-none transition-all duration-200 px-1 py-0" /> @@ -220,7 +226,7 @@ export function ChatInput({ size="icon" onClick={() => onToggleHistory(true)} disabled={ - status === "streaming" || + isDisabled || diagramHistory.length === 0 } title="Diagram History" @@ -234,7 +240,7 @@ export function ChatInput({ variant="outline" size="icon" onClick={triggerFileInput} - disabled={status === "streaming"} + disabled={isDisabled} title="Upload image" > @@ -247,21 +253,21 @@ export function ChatInput({ onChange={handleFileChange} accept="image/*" multiple - disabled={status === "streaming"} + disabled={isDisabled} />