UNPKG

mitt-react

Version:

Lightweight utility for integrating mitt with React

2 lines (1 loc) 624 B
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react");function r(t){return{all:t=t||new Map,on:function(e,i){var n=t.get(e);n?n.push(i):t.set(e,[i])},off:function(e,i){var n=t.get(e);n&&(i?n.splice(n.indexOf(i)>>>0,1):t.set(e,[]))},emit:function(e,i){var n=t.get(e);n&&n.slice().map(function(o){o(i)}),(n=t.get("*"))&&n.slice().map(function(o){o(e,i)})}}}const u=r();function s(t,e){u.emit(t,e)}function f(t,e){const i=c.useCallback(e,[e]);c.useEffect(()=>(u.on(t,i),()=>{u.off(t,i)}),[t,i])}const m=s;exports.eventEmit=m;exports.useEventEmit=s;exports.useEventListener=f;