@ima/react-page-renderer
Version:
IMA.js React page renderer.
41 lines (40 loc) • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "useWindowEvent", {
enumerable: true,
get: function() {
return useWindowEvent;
}
});
const _react = require("react");
const _componentUtils = require("./componentUtils");
function useWindowEvent(eventTarget, event, listener, useCapture) {
const { $Window } = (0, _componentUtils.useComponentUtils)();
const window = $Window.getWindow();
(0, _react.useEffect)(()=>{
if (eventTarget && event && listener) {
$Window.bindEventListener(eventTarget, event, listener, useCapture);
}
return ()=>{
if (eventTarget && event && listener) {
$Window.unbindEventListener(eventTarget, event, listener, useCapture);
}
};
}, [
$Window,
eventTarget,
event,
listener,
useCapture
]);
return (0, _react.useMemo)(()=>({
window,
dispatchEvent: (event)=>window?.dispatchEvent(event),
createCustomEvent: (name, options)=>$Window.createCustomEvent(name, options)
}), [
$Window
]);
}
//# sourceMappingURL=windowEvent.js.map