'use client'; import { useState, useEffect } from 'react'; const GREEN = '#28CC95'; const RED = '#FF6B6B'; const BLUE = '#4A90D9'; export default function PaperDashboard() { const [data, setData] = useState(null); const [trades, setTrades] = useState({}); const [loading, setLoading] = useState(true); const [activeStrat, setActiveStrat] = useState(null); useEffect(() => { const fetchState = async () => { try { const res = await fetch('/api/state'); const json = await res.json(); setData(json); if (!activeStrat && json.strategies?.length) { setActiveStrat(json.strategies[0].name); } setLoading(false); } catch (e) { console.error('State fetch error:', e); } }; fetchState(); const interval = setInterval(fetchState, 2000); return () => clearInterval(interval); }, [activeStrat]); // Fetch trades for active strategy useEffect(() => { if (!activeStrat) return; const fetchTrades = async () => { try { const res = await fetch(`/api/trades?strategy=${encodeURIComponent(activeStrat)}`); const json = await res.json(); setTrades(prev => ({ ...prev, [activeStrat]: json.trades || [] })); } catch (e) { console.error('Trades fetch error:', e); } }; fetchTrades(); const interval = setInterval(fetchTrades, 10000); return () => clearInterval(interval); }, [activeStrat]); if (loading) { return (
No active market — waiting...
15 min
No trades yet. Strategy is watching...
) : ( trades.map((t, i) =>{label}
{value}