import React, { useState } from 'react'; export default function PreviewPanel({ code }) { const [gameUrl, setGameUrl] = useState(''); const [snakeApiUrl, setSnakeApiUrl] = useState(''); const [settings, setSettings] = useState(null); const [moveRes, setMoveRes] = useState(null); const [loadingSetup, setLoadingSetup] = useState(false); const [loadingMove, setLoadingMove] = useState(false); const fetchSetup = async (e) => { e.preventDefault(); setLoadingSetup(true); try { const res = await fetch( `/api/fetch-board?url=${encodeURIComponent(gameUrl.trim())}` ); setSettings(await res.json()); setMoveRes(null); } catch (err) { console.error(err); } setLoadingSetup(false); }; const testMove = async (e) => { e.preventDefault(); if (!settings) return; setLoadingMove(true); try { const res = await fetch('/api/move', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ code, boardState: settings }) }); setMoveRes(await res.json()); } catch (err) { console.error(err); } setLoadingMove(false); }; const gameId = gameUrl.trim().split('/').pop(); return (
{JSON.stringify(moveRes, null, 2)}
)}
{JSON.stringify(settings, null, 2)}