diff --git a/src/pages/CodeEditor.jsx b/src/pages/CodeEditor.jsx index 7c0ea3c..4bdcda2 100644 --- a/src/pages/CodeEditor.jsx +++ b/src/pages/CodeEditor.jsx @@ -2,20 +2,38 @@ import { useEffect, useState } from "react"; import EditorPanel from "../components/EditorPanel"; const PageCodeEditor = () => { - const [code, setCode] = useState(`# Write your Battlesnake code here\ndef move(board):\n return { 'move': 'up' }`); + const [code, setCode] = useState( + `# NOW LOADING` + ); + const appName = "snakeapi-demo-001"; useEffect(() => { document.title = "Snake Brain Editor"; + + fetch(`https://assignment-service.fly.dev/notebook/${appName}`) + .then((res) => { + if (!res.ok) throw new Error("Network response was not ok"); + return res.json(); + }) + .then((notebook) => { + // extract code cell sources and join them + const combined = notebook.cells + .filter((cell) => cell.cell_type === "code") + .map((cell) => cell.source.join("")) + .join("\n\n"); + setCode(combined); + }) + .catch((err) => console.error("Failed to fetch notebook:", err)); }, []); return ( -
+
@@ -24,29 +42,21 @@ const PageCodeEditor = () => { className="box-panel" style={{ flex: 2, - background: 'linear-gradient(145deg, #0d0221, #1a1a1a)', - borderRadius: '12px', - boxShadow: '0 0 15px #05d9e8, 0 0 30px #ff2a6d', - border: '1px solid #ff2a6d', - padding: '1rem', - color: '#eee', + background: "linear-gradient(145deg, #0d0221, #1a1a1a)", + borderRadius: "12px", + padding: "1rem", + color: "#eee", + minHeight: "80vh", + overflow: "auto", }} > -

🐍 Snake Brain (Python) @@ -59,75 +69,65 @@ const PageCodeEditor = () => { className="box-panel" style={{ flex: 1, - background: '#1a1a1a', - borderRadius: '12px', - boxShadow: '0 0 15px #d300c5, 0 0 25px #ff2a6d', - border: '1px solid #d300c5', - padding: '1rem', - color: '#eee', + background: "#1a1a1a", + borderRadius: "12px", + padding: "1rem", + color: "#eee", + minHeight: "80vh", }} > -

🎯 Live Arena Output

-

+

Battlesnake Preview

- {/* game url*/} + {/* game url */}