import { useState } from 'react' const BLOCKS = [ {emoji:'🚀', name:'Move 10', code:'x += 10;'}, {emoji:'🔁', name:'Repeat', code:'for(let i=0;i<4;i++){\n console.log("step "+i);\n}'}, {emoji:'🎨', name:'Draw', code:'ctx.fillStyle="#88C0D0";\nctx.fillRect(x,y,40,40);'}, {emoji:'🔊', name:'Say', code:'console.log("Hello!");'}, ] export default function Scratch(){ const [running, setRunning] = useState(false) const [log, setLog] = useState(['Scratch offline • No internet • Local only','Drag blocks is todo — for now edit JS below']) const [code, setCode] = useState(`// Offline Scratch-like playground\n// No external URLs, localhost only\nlet x=20, y=20;\nfunction drawBlock(){\n console.log("Drawing at "+x+","+y);\n x+=30;\n}\nfor(let i=0;i<5;i++) drawBlock();\nconsole.log("Done! Try editing.\n");`) const run = ()=>{ setRunning(true) const out=[] const c = {log: (...a)=> out.push(a.join(' '))} try{ const fn = new Function('console','x','y','ctx','out', code+'\nreturn out;') // dummy ctx for offline const dummyCtx = {fillStyle:'', fillRect:()=>{}} fn(c, 20,20, dummyCtx, out) setLog([`▶ Ran at ${new Date().toLocaleTimeString()}`, ...out]) }catch(e){ setLog(['Error: '+e.message]) } setRunning(false) } return (