UNPKG

@ima/react-page-renderer

Version:

IMA.js React page renderer.

41 lines (40 loc) 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "useEventBus", { enumerable: true, get: function() { return useEventBus; } }); const _react = require("react"); const _componentUtils = require("./componentUtils"); function useEventBus(eventTarget, eventName, listener) { const { $EventBus } = (0, _componentUtils.useComponentUtils)(); const memoListener = (0, _react.useCallback)((...args)=>{ listener?.(...args); }, [ listener ]); (0, _react.useEffect)(()=>{ if (!eventTarget || !eventName || !memoListener) { return; } $EventBus.listen(eventTarget, eventName, memoListener); return ()=>{ $EventBus.unlisten(eventTarget, eventName, memoListener); }; }, [ $EventBus, eventName, eventTarget, memoListener ]); return (0, _react.useMemo)(()=>({ fire: (...params)=>$EventBus.fire(...params) }), [ $EventBus ]); } //# sourceMappingURL=eventBus.js.map