diff --git a/frontend/src/ide/chat-ai/Conversation.jsx b/frontend/src/ide/chat-ai/Conversation.jsx index 62921cd..5cc70f2 100644 --- a/frontend/src/ide/chat-ai/Conversation.jsx +++ b/frontend/src/ide/chat-ai/Conversation.jsx @@ -32,6 +32,15 @@ const Conversation = memo(function Conversation({ setDetectedAction(actionType); }, []); + // Handle troubleshoot button click from error messages + const handleTroubleshoot = useCallback( + (errorMessage) => { + const prompt = `There was an error encountered. We have the detailed error message below. Please see how we can fix this:\n\n${errorMessage}`; + savePrompt(prompt, selectedChatIntent); + }, + [savePrompt, selectedChatIntent] + ); + // Create UI action object based on detected action const uiAction = useMemo(() => { if (!detectedAction) return null; @@ -168,7 +177,7 @@ const Conversation = memo(function Conversation({ socketError={message?.error_msg} promptError={message?.prompt_error_message} transformError={message?.transformation_error_message} - errorState={message?.error_state} + onTroubleshoot={handleTroubleshoot} /> {isLastConversation ?
: } diff --git a/frontend/src/ide/chat-ai/DisplayErrorMessages.jsx b/frontend/src/ide/chat-ai/DisplayErrorMessages.jsx index 5a02727..c546e5c 100644 --- a/frontend/src/ide/chat-ai/DisplayErrorMessages.jsx +++ b/frontend/src/ide/chat-ai/DisplayErrorMessages.jsx @@ -1,6 +1,7 @@ import { memo, useMemo } from "react"; import PropTypes from "prop-types"; -import { Alert, Space } from "antd"; +import { Alert, Button, Space } from "antd"; +import { ToolOutlined } from "@ant-design/icons"; import ReactMarkdown from "react-markdown"; import remarkGfm from "remark-gfm"; @@ -16,6 +17,7 @@ const DisplayErrorMessages = memo(function DisplayErrorMessages({ socketError, promptError, transformError, + onTroubleshoot, }) { const errors = useMemo(() => { const list = []; @@ -49,6 +51,17 @@ const DisplayErrorMessages = memo(function DisplayErrorMessages({ {text} + {!showAsWarning && onTroubleshoot && text && ( + + )}
} type={showAsWarning ? "warning" : "error"} @@ -77,12 +90,14 @@ DisplayErrorMessages.propTypes = { transformError: PropTypes.shape({ error_message: PropTypes.string, }), + onTroubleshoot: PropTypes.func, }; DisplayErrorMessages.defaultProps = { socketError: null, promptError: null, transformError: null, + onTroubleshoot: null, }; export { DisplayErrorMessages };