feat: introduce apply button functionality (v0.1)
### Summary - Added a new "Apply" button to code snippets provided by the AI assistant. - The button is designed to seamlessly merge the AI-generated snippet into the relevant file in the editor. ### Current Issues 1. **Sticky Accept/Decline Buttons:** These activate for every snippet instead of being limited to the relevant snippet. 2. **Discard Button:** Currently non-functional. 3. **Highlight Inconsistencies:** The green-red code highlights for old and new code are inconsistent. ### To Do - Implement a toast notification when the "Apply" button is pressed on an irrelevant tab to prevent code application errors. ### Workflow Implemented 1. The "Apply" button is added alongside "Copy" and "Reply" for AI-generated code snippets. 2. Upon clicking "Apply," the code snippet and relevant file content (active file) are sent to a secondary model (GPT-4O). 3. The system prompt for GPT-4O instructs it to merge the snippet with the file content: - Ensure the original file functionality remains intact. - Integrate the code snippet seamlessly. 4. The output from GPT-4O is injected directly into the code editor. 5. Changes are visually highlighted: - Green for new code. - Red for removed code. 6. Highlights remain until the user explicitly accepts or discards the changes.
This commit is contained in:
@ -13,6 +13,12 @@ export default function ChatMessage({
|
||||
setContext,
|
||||
setIsContextExpanded,
|
||||
socket,
|
||||
handleApplyCode,
|
||||
activeFileName,
|
||||
activeFileContent,
|
||||
editorRef,
|
||||
mergeDecorationsCollection,
|
||||
setMergeDecorationsCollection,
|
||||
}: MessageProps) {
|
||||
// State for expanded message index
|
||||
const [expandedMessageIndex, setExpandedMessageIndex] = useState<
|
||||
@ -104,7 +110,13 @@ export default function ChatMessage({
|
||||
const components = createMarkdownComponents(
|
||||
renderCopyButton,
|
||||
renderMarkdownElement,
|
||||
askAboutCode
|
||||
askAboutCode,
|
||||
activeFileName,
|
||||
activeFileContent,
|
||||
editorRef,
|
||||
handleApplyCode,
|
||||
mergeDecorationsCollection,
|
||||
setMergeDecorationsCollection
|
||||
)
|
||||
|
||||
return (
|
||||
|
Reference in New Issue
Block a user