@ima/react-page-renderer
Version:
IMA.js React page renderer.
31 lines (30 loc) • 990 B
JavaScript
import { useEffect, useMemo } from 'react';
import { useComponentUtils } from './componentUtils';
export function useWindowEvent(eventTarget, event, listener, useCapture) {
const { $Window } = useComponentUtils();
const window = $Window.getWindow();
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 useMemo(()=>({
window,
dispatchEvent: (event)=>window?.dispatchEvent(event),
createCustomEvent: (name, options)=>$Window.createCustomEvent(name, options)
}), [
$Window
]);
}
//# sourceMappingURL=windowEvent.js.map