@roochnetwork/rooch-sdk-kit
Version:
Rooch SDK Kit
113 lines (111 loc) • 3.64 kB
JavaScript
;
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