Skip to content
Merged
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
17 changes: 8 additions & 9 deletions web-app/src/containers/ChatInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -594,7 +594,6 @@ const ChatInput = ({
)}
<TextareaAutosize
ref={textareaRef}
disabled={Boolean(streamingContent)}
minRows={2}
rows={1}
maxRows={10}
Expand All @@ -610,15 +609,15 @@ const ChatInput = ({
// e.keyCode 229 is for IME input with Safari
const isComposing =
e.nativeEvent.isComposing || e.keyCode === 229
if (
e.key === 'Enter' &&
!e.shiftKey &&
prompt.trim() &&
!isComposing
) {
if (e.key === 'Enter' && !e.shiftKey && !isComposing) {
e.preventDefault()
// Submit the message when Enter is pressed without Shift
handleSendMessage(prompt)
// Submit prompt when the following conditions are met:
// - Enter is pressed without Shift
// - The streaming content has finished
// - Prompt is not empty
if (!streamingContent && prompt.trim()) {
handleSendMessage(prompt)
}
// When Shift+Enter is pressed, a new line is added (default behavior)
}
}}
Expand Down
12 changes: 0 additions & 12 deletions web-app/src/containers/__tests__/ChatInput.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -413,18 +413,6 @@ describe('ChatInput', () => {
})
})

it('disables input when streaming', async () => {
// Mock streaming state
mockAppState.streamingContent = { thread_id: 'test-thread' }

await act(async () => {
renderWithRouter()
})

const textarea = screen.getByTestId('chat-input')
expect(textarea).toBeDisabled()
})

it('shows tools dropdown when model supports tools and MCP servers are connected', async () => {
// Mock connected servers
mockGetConnectedServers.mockResolvedValue(['server1'])
Expand Down
Loading