Scrum4Me/components/solo/realtime-bridge.tsx
janpeter visser 1e48eed459 feat: open SoloRealtimeBridge globaal voor active product
SoloRealtimeBridge gated nu op active-product i.p.v. /solo-pad. Live-dot
en worker-presence werken daardoor op alle (app)-pagina's
(Producten/PB/Sprint/Solo/Todo's). Buiten /solo is de solo-store leeg en
zijn task-events no-ops, dus de stream gedraagt zich automatisch als
lichte presence-stream tot SoloBoard mount.

- realtime-bridge: productId-prop i.p.v. usePathname
- (app)/layout: activeProduct?.id doorgegeven aan bridge
- nav-status-indicators: pathname-check vervangen door hasActiveProduct prop
- nav-bar: hasActiveProduct={!!activeProduct} doorgegeven
- architecture-doc: realtime connection lifecycle bijgewerkt

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 10:22:13 +02:00

17 lines
698 B
TypeScript

// SoloRealtimeBridge — mount in de (app)-layout zodat de SSE-verbinding
// blijft staan over Server Action-refreshes heen.
//
// Stream opent zodra er een actief product is (ongeacht het pad), zodat
// de Live-status-dot en worker-presence-indicator in de NavBar overal
// werken. Buiten /solo is de solo-store leeg en zijn task-events no-ops
// (zie stores/solo-store.ts handleRealtimeEvent), dus de stream gedraagt
// zich automatisch als lichte presence-stream tot SoloBoard mount.
'use client'
import { useSoloRealtime } from '@/lib/realtime/use-solo-realtime'
export function SoloRealtimeBridge({ productId }: { productId: string | null }) {
useSoloRealtime(productId)
return null
}