import React, { useState, useEffect, useRef } from 'react'; const CodeEditor = ({ code, onCodeChange, language = 'javascript' }) => { const textareaRef = useRef(null); const [cursorPosition, setCursorPosition] = useState(0); const [suggestions, setSuggestions] = useState([]); const [showSuggestions, setShowSuggestions] = useState(false); useEffect(() => { if (textareaRef.current) { textareaRef.current.focus(); } }, []); const handleKeyDown = (e) => { if (e.key === 'Tab') { e.preventDefault(); const start = e.target.selectionStart; const end = e.target.selectionEnd; const newValue = code.substring(0, start) + ' ' + code.substring(end); onCodeChange(newValue); setCursorPosition(start + 2); } }; const handleInputChange = (e) => { const newCode = e.target.value; onCodeChange(newCode); // Simple suggestion logic if (newCode.includes('function') || newCode.includes('const') || newCode.includes('let')) { setSuggestions([ 'console.log("Hello World")', 'return', 'async function', 'await', 'try {', 'catch (error) {' ]); setShowSuggestions(true); } else { setShowSuggestions(false); } }; return (