@itwin/itwinui-react
Version:
A react component library for iTwinUI
16 lines (15 loc) • 513 B
JavaScript
import * as React from 'react';
export 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]);
};