Skip to content

Broadcast / useBroadcastEffect

Global event emitter for app-wide communication between components.

Broadcast

ts
import { Broadcast } from '@zyno-io/mobile-foundation-rn';

// Emit an event
Broadcast.emit('cart:updated', { itemCount: 3 });

// Listen (manual cleanup)
const handler = (data) => console.log(data);
Broadcast.on('cart:updated', handler);
Broadcast.removeListener('cart:updated', handler);

Broadcast is an instance of Node's EventEmitter.

useBroadcastEffect

Hook version with automatic cleanup on unmount:

ts
import { useBroadcastEffect } from '@zyno-io/mobile-foundation-rn';

function CartBadge() {
    const [count, setCount] = useState(0);

    useBroadcastEffect('cart:updated', (data: { itemCount: number }) => {
        setCount(data.itemCount);
    });

    return <Text>{count}</Text>;
}

Parameters

ParamTypeDescription
eventstringEvent name to listen for
fn(data: T) => voidHandler called when event fires

The listener is automatically removed when the component unmounts.