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>
17 lines
698 B
TypeScript
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
|
|
}
|