fix(ui): Prevent infinite loop when displaying error toast in chat
This commit is contained in:
6
webui/react-ui/src/hooks/useChat.js
vendored
6
webui/react-ui/src/hooks/useChat.js
vendored
@@ -150,6 +150,11 @@ export function useChat(agentName) {
|
||||
localMessageContents.current.clear(); // Clear tracked local messages
|
||||
}, []);
|
||||
|
||||
// Clear error state
|
||||
const clearError = useCallback(() => {
|
||||
setError(null);
|
||||
}, []);
|
||||
|
||||
return {
|
||||
messages,
|
||||
sending,
|
||||
@@ -157,5 +162,6 @@ export function useChat(agentName) {
|
||||
isConnected,
|
||||
sendMessage,
|
||||
clearChat,
|
||||
clearError,
|
||||
};
|
||||
}
|
||||
@@ -15,7 +15,8 @@ function Chat() {
|
||||
error,
|
||||
isConnected,
|
||||
sendMessage,
|
||||
clearChat
|
||||
clearChat,
|
||||
clearError
|
||||
} = useChat(name);
|
||||
|
||||
// Scroll to bottom when messages change
|
||||
@@ -27,8 +28,9 @@ function Chat() {
|
||||
useEffect(() => {
|
||||
if (error) {
|
||||
showToast(error, 'error');
|
||||
clearError();
|
||||
}
|
||||
}, [error, showToast]);
|
||||
}, [error, showToast, clearError]);
|
||||
|
||||
// Handle form submission
|
||||
const handleSubmit = async (e) => {
|
||||
@@ -115,7 +117,7 @@ function Chat() {
|
||||
placeholder="Type your message... (Press Enter to send, Shift+Enter for new line)"
|
||||
disabled={sending || !isConnected}
|
||||
className="form-control"
|
||||
rows={2}
|
||||
rows={5}
|
||||
style={{ flex: 1, resize: 'vertical', minHeight: '38px', maxHeight: '150px' }}
|
||||
/>
|
||||
<button
|
||||
|
||||
Reference in New Issue
Block a user