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