UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

27 lines (26 loc) 852 B
'use strict'; 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]); };