@ic-reactor/react 0.2.10 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/context.d.ts CHANGED
@@ -6,6 +6,7 @@ import { ReActorOptions } from "@ic-reactor/store";
6
6
  export type ReActor<A> = ReturnType<typeof createReActor<A>>;
7
7
  export interface ReActorContextType<A = ActorSubclass<any>> extends ReActor<A> {
8
8
  }
9
+ export declare const ReActorContext: React.Context<ReActorContextType<any> | null>;
9
10
  export declare const useReActor: <A = any>() => ReActorContextType<A>;
10
11
  interface ReActorProviderProps extends PropsWithChildren, Omit<ReActorOptions, "idlFactory"> {
11
12
  idlFactory?: IDL.InterfaceFactory;
package/dist/context.js CHANGED
@@ -43,14 +43,14 @@ var __rest = (this && this.__rest) || function (s, e) {
43
43
  return t;
44
44
  };
45
45
  Object.defineProperty(exports, "__esModule", { value: true });
46
- exports.ReActorProvider = exports.useReActor = void 0;
46
+ exports.ReActorProvider = exports.useReActor = exports.ReActorContext = void 0;
47
47
  const react_1 = __importStar(require("react"));
48
48
  const agent_1 = require("@dfinity/agent");
49
49
  const index_1 = require("./index");
50
50
  const store_1 = require("@ic-reactor/store");
51
- const ReActorContext = (0, react_1.createContext)(null);
51
+ exports.ReActorContext = (0, react_1.createContext)(null);
52
52
  const useReActor = () => {
53
- const context = react_1.default.useContext(ReActorContext);
53
+ const context = react_1.default.useContext(exports.ReActorContext);
54
54
  if (!context) {
55
55
  throw new Error("useReActor must be used within a ReActorProvider");
56
56
  }
@@ -108,6 +108,7 @@ const ReActorProvider = (_a) => {
108
108
  return null;
109
109
  }
110
110
  }, [config, didJs]);
111
- return (react_1.default.createElement(ReActorContext.Provider, { value: reActorHooks }, reActorHooks ? children : loadingComponent));
111
+ (0, react_1.useEffect)(() => reActorHooks === null || reActorHooks === void 0 ? void 0 : reActorHooks.unsubscribeAgent, [reActorHooks === null || reActorHooks === void 0 ? void 0 : reActorHooks.unsubscribeAgent]);
112
+ return (react_1.default.createElement(exports.ReActorContext.Provider, { value: reActorHooks }, reActorHooks ? children : loadingComponent));
112
113
  };
113
114
  exports.ReActorProvider = ReActorProvider;
package/dist/hooks.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { CallMethod, ExtractReActorMethodArgs, ReActorActorStore } from "@ic-reactor/store";
2
- import { ReActorUseQueryArgs, ReActorUseUpdateArgs } from "./types";
1
+ import type { CallMethod, ExtractReActorMethodArgs, ReActorActorStore } from "@ic-reactor/store";
2
+ import type { ReActorUseQueryArgs, ReActorUseUpdateArgs } from "./types";
3
3
  export declare const getCallHooks: <A extends unknown>(callMethod: CallMethod<A>, actorStore: ReActorActorStore<A>) => {
4
4
  useQueryCall: <M extends keyof A>({ autoRefresh, refreshInterval, disableInitialCall, ...rest }: ReActorUseQueryArgs<A, M>) => {
5
5
  data: import("@ic-reactor/store").ExtractReActorMethodReturnType<A[M]> | undefined;
package/dist/index.d.ts CHANGED
@@ -2,10 +2,15 @@ import type { AuthClientLoginOptions } from "@dfinity/auth-client";
2
2
  import type { ReActorOptions } from "@ic-reactor/store";
3
3
  export * from "./context";
4
4
  export declare const createReActor: <A extends unknown>(options: ReActorOptions) => {
5
+ unsubscribeAgent: () => void;
5
6
  useMethodFields: () => import("@ic-reactor/store").ReActorMethodField<A>[];
6
7
  useMethodField: (functionName: keyof A & string) => import("@ic-reactor/store").ReActorMethodField<A> | undefined;
8
+ useAgentStore: () => {
9
+ initializeAgent: (agentOptions?: import("@dfinity/agent").HttpAgentOptions | undefined, isLocal?: boolean | undefined) => Promise<void>;
10
+ agent: import("@ic-reactor/store").HttpAgent | undefined;
11
+ canisterId: import("@ic-reactor/store").CanisterId;
12
+ };
7
13
  useActorStore: () => {
8
- initialize: (agentOptions?: import("@dfinity/agent").HttpAgentOptions | undefined, isLocal?: boolean | undefined) => void;
9
14
  actor: A | null;
10
15
  initialized: boolean;
11
16
  initializing: boolean;
package/dist/index.js CHANGED
@@ -33,10 +33,14 @@ const createReActor = (options) => {
33
33
  const isLocal = typeof process !== "undefined" &&
34
34
  (process.env.NODE_ENV === "development" ||
35
35
  process.env.DFX_NETWORK === "local");
36
- const { callMethod, initialize, authenticate, authStore, actorStore } = (0, store_1.createReActorStore)(Object.assign({ isLocal }, options));
36
+ const { unsubscribeAgent, initializeAgent, authenticate, callMethod, authStore, agentStore, actorStore, } = (0, store_1.createReActorStore)(Object.assign({ isLocal }, options));
37
+ const useAgentStore = () => {
38
+ const agentState = (0, zustand_1.useStore)(agentStore, (state) => state);
39
+ return Object.assign(Object.assign({}, agentState), { initializeAgent });
40
+ };
37
41
  const useActorStore = () => {
38
42
  const actorState = (0, zustand_1.useStore)(actorStore, (state) => state);
39
- return Object.assign(Object.assign({}, actorState), { initialize });
43
+ return Object.assign({}, actorState);
40
44
  };
41
45
  const useAuthStore = () => {
42
46
  const authState = (0, zustand_1.useStore)(authStore, (state) => state);
@@ -90,8 +94,10 @@ const createReActor = (options) => {
90
94
  };
91
95
  const { useQueryCall, useMethodField, useMethodFields, useUpdateCall } = (0, hooks_1.getCallHooks)(callMethod, actorStore);
92
96
  return {
97
+ unsubscribeAgent,
93
98
  useMethodFields,
94
99
  useMethodField,
100
+ useAgentStore,
95
101
  useActorStore,
96
102
  useAuthStore,
97
103
  useQueryCall,
package/dist/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { ExtractReActorMethodArgs, ExtractReActorMethodReturnType } from "@ic-reactor/store";
2
+ export * from "@ic-reactor/store";
2
3
  export type ReActorCallArgs<A, M extends keyof A> = {
3
4
  functionName: M & string;
4
5
  args?: ExtractReActorMethodArgs<A[M]>;
package/dist/types.js CHANGED
@@ -1,2 +1,17 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("@ic-reactor/store"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ic-reactor/react",
3
- "version": "0.2.10",
3
+ "version": "0.3.0",
4
4
  "description": "A React library for interacting with Dfinity actors",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -35,7 +35,7 @@
35
35
  "node": ">=10"
36
36
  },
37
37
  "dependencies": {
38
- "@ic-reactor/store": "^0.2.9",
38
+ "@ic-reactor/store": "^0.3.0",
39
39
  "zustand-utils": "^1.3"
40
40
  },
41
41
  "peerDependencies": {
@@ -48,5 +48,5 @@
48
48
  "react": ">=16.8",
49
49
  "zustand": "4.4"
50
50
  },
51
- "gitHead": "fa2f4812c9df4249254412d3f93b709c4ee76927"
51
+ "gitHead": "00b0d7f282c144151f27d344c47d92b9b446b14a"
52
52
  }