UNPKG

@roochnetwork/rooch-sdk-kit

Version:
113 lines (111 loc) 3.64 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/provider/globalProvider.tsx var globalProvider_exports = {}; __export(globalProvider_exports, { GlobalProvider: () => GlobalProvider, useSubscribeOnError: () => useSubscribeOnError, useSubscribeOnRequest: () => useSubscribeOnRequest, useTriggerError: () => useTriggerError, useTriggerRequest: () => useTriggerRequest }); module.exports = __toCommonJS(globalProvider_exports); var import_react = require("react"); var import_jsx_runtime = require("react/jsx-runtime"); var RequestEventManager = class { constructor() { this.callbacks = []; } subscribe(callback) { this.callbacks.push(callback); return () => { this.callbacks = this.callbacks.filter((cb) => cb !== callback); }; } trigger(status) { this.callbacks.forEach((callback) => callback(status)); } }; var ErrorEventManager = class { constructor() { this.callbacks = []; } subscribe(callback) { this.callbacks.push(callback); return () => { this.callbacks = this.callbacks.filter((cb) => cb !== callback); }; } trigger(error) { this.callbacks.forEach((callback) => callback(error)); } }; var GlobalContext = (0, import_react.createContext)(null); var GlobalProvider = ({ children }) => { const errorEventManager = new ErrorEventManager(); const requestEventManager = new RequestEventManager(); const triggerError = (error) => { errorEventManager.trigger(error); }; const subscribeOnError = (callback) => { return errorEventManager.subscribe(callback); }; const triggerRequest = (status) => { requestEventManager.trigger(status); }; const subscribeOnRequest = (callback) => { return requestEventManager.subscribe(callback); }; return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( GlobalContext.Provider, { value: { triggerError, subscribeOnError, triggerRequest, subscribeOnRequest }, children } ); }; var useSubscribeOnError = () => { const ctx = (0, import_react.useContext)(GlobalContext); if (!ctx) { throw new Error("useSubscribeToError must be used within a GlobalProvider"); } return ctx.subscribeOnError; }; var useTriggerError = () => { const ctx = (0, import_react.useContext)(GlobalContext); if (!ctx) { throw new Error("useTriggerError must be used within a GlobalProvider"); } return ctx.triggerError; }; var useSubscribeOnRequest = () => { const ctx = (0, import_react.useContext)(GlobalContext); if (!ctx) { throw new Error("useSubscribeToError must be used within a GlobalProvider"); } return ctx.subscribeOnRequest; }; var useTriggerRequest = () => { const ctx = (0, import_react.useContext)(GlobalContext); if (!ctx) { throw new Error("useTriggerError must be used within a GlobalProvider"); } return ctx.triggerRequest; }; //# sourceMappingURL=globalProvider.js.map