use-app-events
Version:
Create custom events and reactive variables in vanilla JavaScript and React.
34 lines (33 loc) • 1 kB
JavaScript
import e from "../heap.js";
import t from "../options.js";
import "../../utils/debugMessage.js";
import { generateId as n } from "../../utils/generateId.js";
import { createListenForEvents as r } from "./listenForEvents.js";
import { createNotifyEventListeners as i } from "./notifyEventListeners.js";
import { useEffect as a, useMemo as o, useRef as s } from "react";
//#region src/lib/useAppEvents/useAppEvents.tsx
var c = (c) => {
let { debug: l } = c ?? {}, u = l ?? t.debug, d = o(() => n(), []), f = s(null), p = () => {
f.current !== null && (clearTimeout(f.current), f.current = null);
};
return a(() => {
p(), `${d}`;
let t = () => {
e.eventListeners = e.eventListeners.filter((e) => e.scopeKey !== d);
};
return () => {
`${d}`, f.current = setTimeout(t);
};
}, [d, u]), {
listenForEvents: o(() => r({
scopeKey: d,
debug: u
}), [d, u]),
notifyEventListeners: o(() => i({
scopeKey: d,
debug: u
}), [d, u])
};
};
//#endregion
export { c as default };