From 33324d45ac56ba62fcdfff4c8dd10a10facdfd56 Mon Sep 17 00:00:00 2001 From: Johan Persson Date: Fri, 27 Feb 2026 11:54:18 +0100 Subject: [PATCH] docs(ui): clarify module-scoped singleton in useBreakpoint Signed-off-by: Johan Persson --- packages/ui/src/hooks/useBreakpoint.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/ui/src/hooks/useBreakpoint.ts b/packages/ui/src/hooks/useBreakpoint.ts index 7364fb29d0..bd37eec4c4 100644 --- a/packages/ui/src/hooks/useBreakpoint.ts +++ b/packages/ui/src/hooks/useBreakpoint.ts @@ -49,9 +49,12 @@ function computeBreakpoint(): Breakpoint { return 'initial'; } -// --- Singleton store --- +// --- Module-scoped singleton store --- +// This is intentionally not a global singleton. Multiple copies of this module +// (e.g. different package versions or module federation remotes) each get their +// own store. This avoids cross-version coupling at the cost of a few extra +// listeners, which is a fine trade-off. // `current` is initialized lazily on first client-side access. -// `listeners` is eagerly initialized since Set is safe to create on the server. let current: Breakpoint | undefined; const listeners = new Set<() => void>();