@itwin/itwinui-react
Version:
A react component library for iTwinUI
27 lines (26 loc) • 852 B
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true,
});
Object.defineProperty(exports, 'useEventListener', {
enumerable: true,
get: function () {
return useEventListener;
},
});
const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard');
const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react'));
const useEventListener = (eventName, handler, element) => {
let savedHandler = _react.useRef(void 0);
_react.useEffect(() => {
savedHandler.current = handler;
}, [handler]);
_react.useEffect(() => {
if (!element) return;
let eventListener = (event) => savedHandler.current?.(event);
element.addEventListener(eventName, eventListener);
return () => {
element.removeEventListener(eventName, eventListener);
};
}, [eventName, element]);
};