← Home
Integration · Cinema Size · Custom Theme · LiveBarn API
Junior League · Riverside Redhawks vs Northgate Thunder
Same module, different league, different brand, real LiveBarn stream. Zero internal imports — only @/shared.
Resolving feed…
Unified Console (demo triggers)
Sign in to LiveBarn to start streaming.
// app/layout.tsx (mount once, at the root):
<LiveBarnProvider>
<PlayerProvider>{children}</PlayerProvider>
</LiveBarnProvider>
// any page that wants to play a stream:
const { setConfig } = usePlayer();
const { streamSource, feedMode, setFeedMode, error } = useLiveBarnLiveStream({
surfaceId: HOST_SURFACE_ID, // your LiveBarn rink id
initialFeedMode: FEED_MODE_IDS.AUTO,
});
useEffect(() => {
if (!streamSource) return;
setConfig({
match: { ...HOST_MATCH, stream: streamSource },
stream: streamSource,
theme: { brand: "#ef4444", accent: "#fde047", live: "#fde047" },
features: { speedSelector: false, shotsOnGoal: true },
telemetry: { onPlay, onPause, onError },
});
}, [streamSource, setConfig]);
// reserve the slot in your page layout (cinema = 1600px max):
<PlayerSlot size="cinema" />
<FeedModeToggle value={feedMode} onChange={setFeedMode} />