diff --git a/frontend/src/contexts/broadcast-channel.context.tsx b/frontend/src/contexts/broadcast-channel.context.tsx index 2879089a..330db77f 100644 --- a/frontend/src/contexts/broadcast-channel.context.tsx +++ b/frontend/src/contexts/broadcast-channel.context.tsx @@ -26,16 +26,24 @@ type BroadcastChannelPayload = { data?: string | number | boolean | Record | undefined | null; }; -export type BroadcastChannelData = { +type BroadcastChannelData = { tabId: string; payload: BroadcastChannelPayload; }; -export interface IBroadcastChannelProps { +interface IBroadcastChannelProps { channelName: string; children: ReactNode; } +interface IBroadcastChannelContext { + subscribe: ( + event: `${EBCEvent}`, + callback: (message: BroadcastChannelData) => void, + ) => void; + postMessage: (payload: BroadcastChannelPayload) => void; +} + const getOrCreateTabId = () => { let storedTabId = sessionStorage.getItem("tab_uuid"); @@ -49,14 +57,6 @@ const getOrCreateTabId = () => { return storedTabId; }; -interface IBroadcastChannelContext { - subscribe: ( - event: `${EBCEvent}`, - callback: (message: BroadcastChannelData) => void, - ) => void; - postMessage: (payload: BroadcastChannelPayload) => void; -} - export const BroadcastChannelContext = createContext< IBroadcastChannelContext | undefined >(undefined); @@ -69,7 +69,10 @@ export const BroadcastChannelProvider: FC = ({ new BroadcastChannel(channelName), ); const subscribersRef = useRef< - Record void>> + Record< + string, + Array["1"]> + > >({}); const tabUuid = getOrCreateTabId(); diff --git a/widget/src/providers/BroadcastChannelProvider.tsx b/widget/src/providers/BroadcastChannelProvider.tsx index 7e4a7257..7f8cb529 100644 --- a/widget/src/providers/BroadcastChannelProvider.tsx +++ b/widget/src/providers/BroadcastChannelProvider.tsx @@ -26,16 +26,24 @@ type BroadcastChannelPayload = { data?: string | number | boolean | Record | undefined | null; }; -export type BroadcastChannelData = { +type BroadcastChannelData = { tabId: string; payload: BroadcastChannelPayload; }; -export interface IBroadcastChannelProps { +interface IBroadcastChannelProps { channelName: string; children: ReactNode; } +interface IBroadcastChannelContext { + subscribe: ( + event: `${EBCEvent}`, + callback: (message: BroadcastChannelData) => void, + ) => void; + postMessage: (payload: BroadcastChannelPayload) => void; +} + const getOrCreateTabId = () => { let storedTabId = sessionStorage.getItem("tab_uuid"); @@ -49,14 +57,6 @@ const getOrCreateTabId = () => { return storedTabId; }; -interface IBroadcastChannelContext { - subscribe: ( - event: `${EBCEvent}`, - callback: (message: BroadcastChannelData) => void, - ) => void; - postMessage: (payload: BroadcastChannelPayload) => void; -} - export const BroadcastChannelContext = createContext< IBroadcastChannelContext | undefined >(undefined); @@ -69,7 +69,10 @@ export const BroadcastChannelProvider: FC = ({ new BroadcastChannel(channelName), ); const subscribersRef = useRef< - Record void>> + Record< + string, + Array["1"]> + > >({}); const tabUuid = getOrCreateTabId();