use-app-events
Version: 
Create, trigger and listen for custom events in vanilla JavaScript and React.
34 lines (33 loc) • 810 B
JavaScript
import { useMemo as o, useEffect as f } from "react";
import { generateId as u } from "../../utils/generateId.js";
import { createListenForEvents as l } from "./listenForEvents.js";
import { createNotifyEventListeners as a } from "./notifyEventListeners.js";
import s from "../heap.js";
import v from "../options.js";
const A = (n) => {
  const {
    debug: r
  } = n ?? {}, t = r ?? v.debug, e = o(() => u(), []);
  f(() => {
    const m = () => {
      s.eventListeners = s.eventListeners.filter((p) => p.scopeKey !== e);
    };
    return () => {
      m();
    };
  }, [e, t]);
  const i = o(() => l({
    scopeKey: e,
    debug: t
  }), [e, t]), c = o(() => a({
    scopeKey: e,
    debug: t
  }), [e, t]);
  return {
    listenForEvents: i,
    notifyEventListeners: c
  };
};
export {
  A as default
};