UNPKG

@ima/react-page-renderer

Version:

IMA.js React page renderer.

31 lines (30 loc) 990 B
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