use-app-events
Version:
Create custom events and reactive variables in vanilla JavaScript and React.
35 lines (34 loc) • 1.09 kB
JavaScript
import e from "../options.js";
import "../../utils/debugMessage.js";
import { generateId as t } from "../../utils/generateId.js";
import n from "../useAppEvents/useAppEvents.js";
import { useEffect as r, useMemo as i, useRef as a, useState as o } from "react";
//#region src/lib/useGlobal/useGlobal.tsx
var s = (s, c, l) => {
let { debug: u, synchronize: d = !0 } = l ?? {}, f = u ?? e.debug, p = i(() => t(), []), [m, h] = o(c), g = a(m);
g.current = m;
let { listenForEvents: _, notifyEventListeners: v } = n({ debug: f });
return r(() => {
let e = [];
return e.push(_(s, (e) => {
h(e);
})), e.push(_(`${s}_INIT`, (e) => {
e !== p && v(s, g.current);
})), () => {
e.forEach((e) => e());
};
}, [s]), r(() => (`${p}`, d && v(`${s}_INIT`, p), () => {
`${p}`;
}), []), [m, (e) => {
let t = e instanceof Function, n = typeof e == "object" && Object.prototype.toString.call(e) === "[object Object]";
h((r) => {
let i;
return t || (i = e), t && (i = e(r)), n && (i = {
...r,
...e
}), v(s, i), i;
});
}];
};
//#endregion
export { s as default };