shoc-frontend-new/src/lib/query/setup-query-broadcast.ts
Arthur Bassi efed453f3c feat(query): sync QueryClient cache across browser tabs
(cherry picked from commit 473bbced8185b8ddb92ce218a5cf870db98194bf)
2026-07-28 11:06:05 -03:00

19 lines
686 B
TypeScript

import { broadcastQueryClient } from "@tanstack/query-broadcast-client-experimental";
import type { QueryClient } from "@tanstack/react-query";
/** Same-origin channel name for cross-tab QueryClient sync. */
export const QUERY_BROADCAST_CHANNEL = "seahaven-admin-query";
/**
* Syncs QueryClient cache (invalidations + data) across browser tabs via BroadcastChannel.
* No-op outside the browser and during Vitest runs.
*/
export function setupQueryBroadcast(queryClient: QueryClient): void {
if (typeof window === "undefined") return;
if (import.meta.env.MODE === "test") return;
broadcastQueryClient({
queryClient,
broadcastChannel: QUERY_BROADCAST_CHANNEL,
});
}