UNPKG

use-app-events

Version:

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

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