@ima/react-page-renderer
Version:
IMA.js React page renderer.
26 lines (25 loc) • 684 B
JavaScript
import { useEffect, useMemo } from 'react';
import { useComponentUtils } from './componentUtils';
export function useDispatcher(event, listener) {
const { $Dispatcher } = useComponentUtils();
useEffect(()=>{
if (event && listener) {
$Dispatcher.listen(event, listener);
}
return ()=>{
if (event && listener) {
$Dispatcher.unlisten(event, listener);
}
};
}, [
$Dispatcher,
event,
listener
]);
return useMemo(()=>({
fire: (...params)=>$Dispatcher.fire(...params)
}), [
$Dispatcher
]);
}
//# sourceMappingURL=dispatcher.js.map