UNPKG

@restart/hooks

Version:

A set of utility and general-purpose React hooks.

34 lines (28 loc) 1.09 kB
"use strict"; exports.__esModule = true; exports.default = useEventListener; var _react = require("react"); var _useEventCallback = _interopRequireDefault(require("./useEventCallback")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Attaches an event handler outside directly to specified DOM element * bypassing the react synthetic event system. * * @param element The target to listen for events on * @param event The DOM event name * @param handler An event handler * @param capture Whether or not to listen during the capture event phase */ function useEventListener(eventTarget, event, listener, capture) { if (capture === void 0) { capture = false; } var handler = (0, _useEventCallback.default)(listener); (0, _react.useEffect)(function () { var target = typeof eventTarget === 'function' ? eventTarget() : eventTarget; target.addEventListener(event, handler, capture); return function () { return target.removeEventListener(event, handler, capture); }; }, [eventTarget]); }