UNPKG

use-app-events

Version:

Create custom events and reactive variables in vanilla JavaScript and React.

35 lines (34 loc) 1.09 kB
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 };