UNPKG

react-custom-events

Version:

A react layer for easily utilizing CustomEvent API

50 lines (46 loc) 1.6 kB
Object.defineProperty(exports, '__esModule', { value: true }); var react = require('react'); var targetElement; function getElement() { if (!targetElement) { targetElement = document.createElement('div'); } return targetElement; } function useCustomEventListener(eventName, eventHandler, deps) { var element; react.useEffect(function () { element = element || getElement(); var handleEvent = function (event) { var data = event.detail; eventHandler(data); }; element.addEventListener(eventName, handleEvent, false); return function () { element === null || element === void 0 ? void 0 : element.removeEventListener(eventName, handleEvent, false); }; }, deps); return function (el) { element = el; }; } function emitCustomEvent(eventName, data) { var element = getElement(); var event = new CustomEvent(eventName, { detail: data }); element.dispatchEvent(event); } function newCustomEventEmitter() { var element; function setElement(el) { element = el; } setElement.emit = function (eventName, data) { var event = new CustomEvent(eventName, { bubbles: true, detail: data }); element === null || element === void 0 ? void 0 : element.dispatchEvent(event); }; return setElement; } exports.emitCustomEvent = emitCustomEvent; exports.newCustomEventEmitter = newCustomEventEmitter; exports.useCustomEventListener = useCustomEventListener; //# sourceMappingURL=index.js.map