import React from 'react'; import { Play, SkipForward, Square } from 'lucide-react'; import { BalancePanel } from './components/BalancePanel'; import { MarketPanel } from './components/MarketPanel'; import { MetricsPanel } from './components/MetricsPanel'; import { OfficeScene } from './components/OfficeScene'; import { useSimulationStore } from './store'; function App() { const { simState, portfolioHistory, priceHistory, lastPortfolioDelta, lastPriceDelta, lastError, toggleSimulation, fetchState, stepSimulation, } = useSimulationStore(); React.useEffect(() => { fetchState(); const interval = window.setInterval(() => { fetchState(); }, 600); return () => window.clearInterval(interval); }, [fetchState]); return (
The scene updates off the running trading environment: signals travel desk to desk, the trader fires orders, and the balance reacts to the trades in real time.