useBroadcastChannel
Enables cross-tab/window messaging.
Usage
import { useBroadcastChannel } from "@siberiacancode/reactuse";
const channel = useBroadcastChannel("channel");Example
const channel = useBroadcastChannel<string>("sync", (message) => {
console.log(message);
});
return (
<button onClick={() => channel.post("ping")}>
Last: {channel.data ?? "none"}
</button>
);Notes
- Hook uses the BroadcastChannel API.
Type Declarations
export interface UseBroadcastChannelReturn<Data = unknown> {
channel?: BroadcastChannel;
closed: boolean;
data?: Data;
error?: Event;
supported: boolean;
close: () => void;
post: (data: Data) => void;
}
export declare const useBroadcastChannel: <Data = unknown>(
name: string,
callback?: (data: Data) => void
) => UseBroadcastChannelReturn<Data>;