Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions webview-ui/src/components/chat/ChatTextArea.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ export const ChatTextArea = forwardRef<HTMLTextAreaElement, ChatTextAreaProps>(
}, [selectedType, searchQuery])

const handleEnhancePrompt = useCallback(() => {
const trimmedInput = inputValue.trim()
const trimmedInput = (inputValue ?? "").trim()

if (trimmedInput) {
setIsEnhancingPrompt(true)
Expand All @@ -259,7 +259,7 @@ export const ChatTextArea = forwardRef<HTMLTextAreaElement, ChatTextAreaProps>(

// Memoized check for whether the input has content (text or images)
const hasInputContent = useMemo(() => {
return inputValue.trim().length > 0 || selectedImages.length > 0
return (inputValue ?? "").trim().length > 0 || selectedImages.length > 0
}, [inputValue, selectedImages])

// Compute the key combination text for the send button tooltip based on enterBehavior
Expand Down
8 changes: 4 additions & 4 deletions webview-ui/src/components/chat/ChatView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro

// Compute whether auto-approval is paused (user is typing in a followup)
const isFollowUpAutoApprovalPaused = useMemo(() => {
return !!(inputValue && inputValue.trim().length > 0 && clineAsk === "followup")
return !!(inputValue && (inputValue ?? "").trim().length > 0 && clineAsk === "followup")
}, [inputValue, clineAsk])

// Cancel auto-approval timeout when user starts typing
Expand Down Expand Up @@ -710,7 +710,7 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro

// Handle enqueue button click from textarea
const handleEnqueueCurrentMessage = useCallback(() => {
const text = inputValue.trim()
const text = (inputValue ?? "").trim()
if (text || selectedImages.length > 0) {
vscode.postMessage({
type: "queueMessage",
Expand Down Expand Up @@ -1536,12 +1536,12 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro

useImperativeHandle(ref, () => ({
acceptInput: () => {
const hasInput = inputValue.trim() || selectedImages.length > 0
const hasInput = (inputValue ?? "").trim() || selectedImages.length > 0

// Special case: during command_output, queue the message instead of
// triggering the primary button action (which would lose the message)
if (clineAskRef.current === "command_output" && hasInput) {
vscode.postMessage({ type: "queueMessage", text: inputValue.trim(), images: selectedImages })
vscode.postMessage({ type: "queueMessage", text: (inputValue ?? "").trim(), images: selectedImages })
setInputValue("")
setSelectedImages([])
return
Expand Down
Loading