adnbn
Version:
Addon Bone - Cross-browser web extension framework with shared code base
20 lines • 659 B
JavaScript
import { useCallback, useEffect, useRef } from "react";
import { Message } from "./../../../message/providers/index.js";
function useMessageHandler(type, handler) {
const messageRef = useRef(null);
if (!messageRef.current) {
messageRef.current = Message.getInstance();
}
const handlerRef = useRef(handler);
handlerRef.current = handler;
const stableWrapper = useCallback((data, sender) => {
return handlerRef.current(data, sender);
}, []);
useEffect(() => {
return messageRef.current.watch(type, stableWrapper);
}, [type, stableWrapper]);
}
export {
useMessageHandler as default
};
//# sourceMappingURL=useMessageHandler.js.map