UNPKG

usehooks-ts

Version:

React hook library, ready to use, written in Typescript.

26 lines 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); function useEventListener(eventName, handler, element) { var savedHandler = (0, react_1.useRef)(); (0, react_1.useEffect)(function () { var targetElement = (element === null || element === void 0 ? void 0 : element.current) || window; if (!(targetElement && targetElement.addEventListener)) { return; } if (savedHandler.current !== handler) { savedHandler.current = handler; } var eventListener = function (event) { if (!!(savedHandler === null || savedHandler === void 0 ? void 0 : savedHandler.current)) { savedHandler.current(event); } }; targetElement.addEventListener(eventName, eventListener); return function () { targetElement.removeEventListener(eventName, eventListener); }; }, [eventName, element, handler]); } exports.default = useEventListener; //# sourceMappingURL=useEventListener.js.map