react-event-connector
Version:
A library to connect react components
20 lines (19 loc) • 739 B
JavaScript
import { useEffect, useId } from "react";
import { EventConnector } from "./event-connector";
export var useSubscriber = function (signalName, subscriber) {
var id = useId();
var eventConnector = EventConnector.getInstance();
var existingSubscriber = eventConnector.findSubscriber(signalName, id);
function removeSubscriber() {
if (existingSubscriber) {
eventConnector.removeSubscriber(signalName, id);
}
}
removeSubscriber();
useEffect(function () {
if (!eventConnector.findSubscriber(signalName, id))
eventConnector.subscribe(signalName, id, subscriber);
return removeSubscriber;
}, []);
eventConnector.subscribe(signalName, id, subscriber);
};