UNPKG

@blockstack/ui

Version:

Blockstack UI components built using React and styled-components with styled-system.

32 lines (25 loc) 881 B
import { useEffect } from 'react'; import { isBrowser } from '../utils/index.esm.js'; import { useLatestRef } from './use-latest-ref.esm.js'; function useEventListener(event, handler, doc, options) { if (doc === void 0) { doc = isBrowser ? document : null; } var savedHandler = useLatestRef(handler); useEffect(function () { if (!doc) return; var listener = function listener(event) { savedHandler.current(event); }; doc.addEventListener(event, listener, options); return function () { doc.removeEventListener(event, listener, options); }; }, [event, doc, options, savedHandler]); return function () { var _doc; (_doc = doc) === null || _doc === void 0 ? void 0 : _doc.removeEventListener(event, savedHandler.current, options); }; } export { useEventListener }; //# sourceMappingURL=use-event-listener.esm.js.map