import { useState } from "react"; import { useTheme } from "next-themes"; import Editor from "@monaco-editor/react"; import Icon from "@/components/Icon"; import Button from "@/components/Button"; interface CodeEditorProps { title?: string; language?: string; initialCode?: string; onCodeChange?: (code: string) => void; onGenerate?: () => void; isGenerating?: boolean; } const CodeEditor = ({ title = "Code Editor", language = "python", initialCode = "", onCodeChange, onGenerate, isGenerating = false, }: CodeEditorProps) => { const [code, setCode] = useState(initialCode); const { theme } = useTheme(); const handleEditorChange = (value: string | undefined) => { const newCode = value || ""; setCode(newCode); onCodeChange?.(newCode); }; const handleCopyCode = async () => { try { await navigator.clipboard.writeText(code); console.log("Code copied to clipboard!"); } catch (err) { console.error("Failed to copy code: ", err); } }; return (
{title}
{onGenerate && (
)}
); }; export default CodeEditor;