Event Grid
Enriched market cards — title, per-outcome live odds, countdown, flying bets — from useEvents(). Odds and bets stream over the shared socket.
loading markets…
const { events, loading } = useEvents({ limit: 12 }, { refreshMs: 20_000 })
return <div className="grid">
{events.map(e => <EventCard key={e.id} event={e} />)}
</div>