import React from 'react'; import { usePollStats } from '../polling/usePollStats'; type EventStatsContextValue = ReturnType & { slug: string; }; const EventStatsContext = React.createContext(undefined); export function EventStatsProvider({ slug, children }: { slug: string; children: React.ReactNode }) { const stats = usePollStats(slug); const value = React.useMemo( () => ({ slug, ...stats }), [slug, stats.onlineGuests, stats.tasksSolved, stats.latestPhotoAt, stats.loading] ); return {children}; } export function useEventStats() { const ctx = React.useContext(EventStatsContext); if (!ctx) { throw new Error('useEventStats must be used within an EventStatsProvider'); } return ctx; } export function useOptionalEventStats() { return React.useContext(EventStatsContext); }