@ic-reactor/react 3.0.0-beta.7 → 3.0.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.
Files changed (46) hide show
  1. package/README.md +11 -10
  2. package/dist/createActorHooks.d.ts +2 -0
  3. package/dist/createActorHooks.d.ts.map +1 -1
  4. package/dist/createActorHooks.js +2 -0
  5. package/dist/createActorHooks.js.map +1 -1
  6. package/dist/createMutation.d.ts.map +1 -1
  7. package/dist/createMutation.js +4 -0
  8. package/dist/createMutation.js.map +1 -1
  9. package/dist/hooks/index.d.ts +18 -5
  10. package/dist/hooks/index.d.ts.map +1 -1
  11. package/dist/hooks/index.js +15 -5
  12. package/dist/hooks/index.js.map +1 -1
  13. package/dist/hooks/useActorInfiniteQuery.d.ts +13 -11
  14. package/dist/hooks/useActorInfiniteQuery.d.ts.map +1 -1
  15. package/dist/hooks/useActorInfiniteQuery.js.map +1 -1
  16. package/dist/hooks/useActorMethod.d.ts +105 -0
  17. package/dist/hooks/useActorMethod.d.ts.map +1 -0
  18. package/dist/hooks/useActorMethod.js +192 -0
  19. package/dist/hooks/useActorMethod.js.map +1 -0
  20. package/dist/hooks/useActorSuspenseInfiniteQuery.d.ts +13 -10
  21. package/dist/hooks/useActorSuspenseInfiniteQuery.d.ts.map +1 -1
  22. package/dist/hooks/useActorSuspenseInfiniteQuery.js.map +1 -1
  23. package/package.json +9 -8
  24. package/src/createActorHooks.ts +146 -0
  25. package/src/createAuthHooks.ts +137 -0
  26. package/src/createInfiniteQuery.ts +471 -0
  27. package/src/createMutation.ts +163 -0
  28. package/src/createQuery.ts +197 -0
  29. package/src/createSuspenseInfiniteQuery.ts +478 -0
  30. package/src/createSuspenseQuery.ts +215 -0
  31. package/src/hooks/index.ts +93 -0
  32. package/src/hooks/useActorInfiniteQuery.test.tsx +457 -0
  33. package/src/hooks/useActorInfiniteQuery.ts +134 -0
  34. package/src/hooks/useActorMethod.test.tsx +798 -0
  35. package/src/hooks/useActorMethod.ts +397 -0
  36. package/src/hooks/useActorMutation.test.tsx +220 -0
  37. package/src/hooks/useActorMutation.ts +124 -0
  38. package/src/hooks/useActorQuery.test.tsx +287 -0
  39. package/src/hooks/useActorQuery.ts +110 -0
  40. package/src/hooks/useActorSuspenseInfiniteQuery.test.tsx +472 -0
  41. package/src/hooks/useActorSuspenseInfiniteQuery.ts +137 -0
  42. package/src/hooks/useActorSuspenseQuery.test.tsx +254 -0
  43. package/src/hooks/useActorSuspenseQuery.ts +112 -0
  44. package/src/index.ts +21 -0
  45. package/src/types.ts +435 -0
  46. package/src/validation.ts +202 -0
package/README.md CHANGED
@@ -48,17 +48,18 @@ import { idlFactory, type _SERVICE } from "./declarations/my_canister"
48
48
  // Create query client for caching
49
49
  export const queryClient = new QueryClient()
50
50
 
51
+ // Create client manager (handles identity and agent)
51
52
  // Create client manager (handles identity and agent)
52
53
  export const clientManager = new ClientManager({
53
54
  queryClient,
54
- withProcessEnv: true, // Reads DFX_NETWORK from environment
55
+ withCanisterEnv: true, // Reads canister IDs from environment/cookies
55
56
  })
56
57
 
57
58
  // Create reactor for your canister
58
59
  export const backend = new Reactor<_SERVICE>({
59
60
  clientManager,
60
61
  idlFactory,
61
- canisterId: "rrkah-fqaaa-aaaaa-aaaaq-cai",
62
+ name: "backend", // Required: explicit name for the reactor
62
63
  })
63
64
  ```
64
65
 
@@ -124,14 +125,14 @@ function Greeting() {
124
125
 
125
126
  ### Reactor vs DisplayReactor
126
127
 
127
- | Feature | `Reactor` | `DisplayReactor` |
128
- | ------------- | ---------------- | --------------------------- |
129
- | Types | Raw Candid types | Display-friendly types |
130
- | BigInt | `bigint` | `string` |
131
- | Principal | `Principal` | `string` |
132
- | Vec nat8 | `Uint8Array` | <= 96 bytes: `string` (hex) |
133
- | Result | Unwrapped | Unwrapped |
134
- | Form-friendly | No | Yes |
128
+ | Feature | `Reactor` | `DisplayReactor` |
129
+ | ------------- | ---------------- | ---------------------------- |
130
+ | Types | Raw Candid types | Display-friendly types |
131
+ | BigInt | `bigint` | `string` |
132
+ | Principal | `Principal` | `string` |
133
+ | Vec nat8 | `Uint8Array` | <= 512 bytes: `string` (hex) |
134
+ | Result | Unwrapped | Unwrapped |
135
+ | Form-friendly | No | Yes |
135
136
 
136
137
  ```typescript
137
138
  import { DisplayReactor } from "@ic-reactor/react"
@@ -20,6 +20,7 @@ import { Reactor, DisplayReactor, ReactorReturnErr, ReactorReturnOk, BaseActor,
20
20
  import { UseQueryResult, UseSuspenseQueryResult, UseInfiniteQueryResult, UseSuspenseInfiniteQueryResult, UseMutationResult, InfiniteData } from "@tanstack/react-query";
21
21
  import { InfiniteQueryConfig } from "./createInfiniteQuery";
22
22
  import { SuspenseInfiniteQueryConfig } from "./createSuspenseInfiniteQuery";
23
+ import { useActorMethod, UseActorMethodParameters } from "./hooks/useActorMethod";
23
24
  import { QueryConfig, SuspenseQueryConfig, MutationConfig } from "./types";
24
25
  export type ActorHooks<A, T extends TransformKey> = {
25
26
  useActorQuery: {
@@ -33,6 +34,7 @@ export type ActorHooks<A, T extends TransformKey> = {
33
34
  useActorInfiniteQuery: <M extends FunctionName<A>, TPageParam = unknown>(config: InfiniteQueryConfig<A, M, T, TPageParam>) => UseInfiniteQueryResult<InfiniteData<ReactorReturnOk<A, M, T>, TPageParam>, ReactorReturnErr<A, M, T>>;
34
35
  useActorSuspenseInfiniteQuery: <M extends FunctionName<A>, TPageParam = unknown>(config: SuspenseInfiniteQueryConfig<A, M, T, TPageParam>) => UseSuspenseInfiniteQueryResult<InfiniteData<ReactorReturnOk<A, M, T>, TPageParam>, ReactorReturnErr<A, M, T>>;
35
36
  useActorMutation: <M extends FunctionName<A>>(config: MutationConfig<A, M, T>) => UseMutationResult<ReactorReturnOk<A, M, T>, ReactorReturnErr<A, M, T>>;
37
+ useActorMethod: <M extends FunctionName<A>>(config: Omit<UseActorMethodParameters<A, M, T>, "reactor">) => ReturnType<typeof useActorMethod<A, M, T>>;
36
38
  };
37
39
  export declare function createActorHooks<A>(reactor: DisplayReactor<A>): ActorHooks<A, "display">;
38
40
  export declare function createActorHooks<A = BaseActor, T extends TransformKey = "candid">(reactor: Reactor<A, T>): ActorHooks<A, T>;
@@ -1 +1 @@
1
- {"version":3,"file":"createActorHooks.d.ts","sourceRoot":"","sources":["../src/createActorHooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createActorHooks.d.ts","sourceRoot":"","sources":["../src/createActorHooks.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { createSuspenseQuery } from "./createSuspenseQuery";
3
3
  import { createInfiniteQuery } from "./createInfiniteQuery";
4
4
  import { createSuspenseInfiniteQuery, } from "./createSuspenseInfiniteQuery";
5
5
  import { createMutation } from "./createMutation";
6
+ import { useActorMethod, } from "./hooks/useActorMethod";
6
7
  export function createActorHooks(reactor) {
7
8
  return {
8
9
  useActorQuery: ((config) => {
@@ -25,6 +26,7 @@ export function createActorHooks(reactor) {
25
26
  const { onSuccess, invalidateQueries, ...options } = config;
26
27
  return createMutation(reactor, config).useMutation(options);
27
28
  }),
29
+ useActorMethod: (config) => useActorMethod({ ...config, reactor }),
28
30
  };
29
31
  }
30
32
  //# sourceMappingURL=createActorHooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createActorHooks.js","sourceRoot":"","sources":["../src/createActorHooks.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAuB,MAAM,uBAAuB,CAAA;AAChF,OAAO,EACL,2BAA2B,GAE5B,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAwDjD,MAAM,UAAU,gBAAgB,CAC9B,OAAsB;IAEtB,OAAO;QACL,aAAa,EAAE,CAAC,CAAC,MAAW,EAAE,EAAE;YAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAA;YACrC,OAAO,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACvD,CAAC,CAAsC;QAEvC,qBAAqB,EAAE,CAAC,CAAC,MAAW,EAAE,EAAE;YACtC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAA;YACrC,OAAO,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACvE,CAAC,CAA8C;QAE/C,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;YACjC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAA;YACrC,OAAO,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACvE,CAAC,CAA8C;QAE/C,6BAA6B,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;YACzC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAA;YACrC,OAAO,2BAA2B,CAChC,OAAO,EACP,MAAM,CACP,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;QACrC,CAAC,CAAsD;QAEvD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5B,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAA;YAC3D,OAAO,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC7D,CAAC,CAAyC;KAC3C,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"createActorHooks.js","sourceRoot":"","sources":["../src/createActorHooks.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAuB,MAAM,uBAAuB,CAAA;AAChF,OAAO,EACL,2BAA2B,GAE5B,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,cAAc,GAEf,MAAM,wBAAwB,CAAA;AA4D/B,MAAM,UAAU,gBAAgB,CAC9B,OAAsB;IAEtB,OAAO;QACL,aAAa,EAAE,CAAC,CAAC,MAAW,EAAE,EAAE;YAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAA;YACrC,OAAO,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACvD,CAAC,CAAsC;QAEvC,qBAAqB,EAAE,CAAC,CAAC,MAAW,EAAE,EAAE;YACtC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAA;YACrC,OAAO,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACvE,CAAC,CAA8C;QAE/C,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;YACjC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAA;YACrC,OAAO,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACvE,CAAC,CAA8C;QAE/C,6BAA6B,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;YACzC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAA;YACrC,OAAO,2BAA2B,CAChC,OAAO,EACP,MAAM,CACP,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;QACrC,CAAC,CAAsD;QAEvD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5B,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAA;YAC3D,OAAO,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC7D,CAAC,CAAyC;QAE1C,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CACzB,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAIlC,CAAC;KACL,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createMutation.d.ts","sourceRoot":"","sources":["../src/createMutation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EAEZ,YAAY,EAEb,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAEd,OAAO,EACR,MAAM,SAAS,CAAA;AAuHhB,wBAAgB,cAAc,CAC5B,CAAC,EACD,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAE3C,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACvC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAEzB"}
1
+ {"version":3,"file":"createMutation.d.ts","sourceRoot":"","sources":["../src/createMutation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EAEZ,YAAY,EAEb,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAEd,OAAO,EACR,MAAM,SAAS,CAAA;AA2HhB,wBAAgB,cAAc,CAC5B,CAAC,EACD,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAE3C,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACvC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAEzB"}
@@ -30,9 +30,13 @@ const createMutationImpl = (reactor, config) => {
30
30
  };
31
31
  // Hook implementation
32
32
  const useMutationHook = (options) => {
33
+ const baseOptions = reactor.getQueryOptions({
34
+ functionName,
35
+ });
33
36
  // Extract our custom options
34
37
  const { invalidateQueries: hookInvalidateQueries, onCanisterError: hookOnCanisterError, ...restOptions } = options || {};
35
38
  return useMutation({
39
+ mutationKey: baseOptions.queryKey,
36
40
  ...factoryOptions,
37
41
  ...restOptions,
38
42
  mutationFn: execute,
@@ -1 +1 @@
1
- {"version":3,"file":"createMutation.js","sourceRoot":"","sources":["../src/createMutation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createMutation.js","sourceRoot":"","sources":["../src/createMutation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,19 @@
1
- export { useActorQuery as useReactorQuery } from "./useActorQuery";
2
- export { useActorMutation as useReactorMutation } from "./useActorMutation";
3
- export { useActorSuspenseQuery as useReactorSuspenseQuery } from "./useActorSuspenseQuery";
4
- export { useActorInfiniteQuery as useReactorInfiniteQuery } from "./useActorInfiniteQuery";
5
- export { useActorSuspenseInfiniteQuery as useReactorSuspenseInfiniteQuery } from "./useActorSuspenseInfiniteQuery";
1
+ export { useActorQuery as useReactorQuery } from "./useActorQuery.js";
2
+ export { useActorMutation as useReactorMutation } from "./useActorMutation.js";
3
+ export { useActorSuspenseQuery as useReactorSuspenseQuery } from "./useActorSuspenseQuery.js";
4
+ export { useActorInfiniteQuery as useReactorInfiniteQuery } from "./useActorInfiniteQuery.js";
5
+ export { useActorSuspenseInfiniteQuery as useReactorSuspenseInfiniteQuery } from "./useActorSuspenseInfiniteQuery.js";
6
+ export { useActorMethod, useActorMethod as useReactorMethod, createActorMethodHooks, } from "./useActorMethod.js";
7
+ export type { UseActorQueryParameters as UseReactorQueryParameters, UseActorQueryResult as UseReactorQueryResult, } from "./useActorQuery.js";
8
+ export type { UseActorMutationParameters as UseReactorMutationParameters, UseActorMutationResult as UseReactorMutationResult, } from "./useActorMutation.js";
9
+ export type { UseActorSuspenseQueryParameters as UseReactorSuspenseQueryParameters, UseActorSuspenseQueryResult as UseReactorSuspenseQueryResult, } from "./useActorSuspenseQuery.js";
10
+ export type { UseActorInfiniteQueryParameters as UseReactorInfiniteQueryParameters, UseActorInfiniteQueryResult as UseReactorInfiniteQueryResult, } from "./useActorInfiniteQuery.js";
11
+ export type { UseActorSuspenseInfiniteQueryParameters as UseReactorSuspenseInfiniteQueryParameters, UseActorSuspenseInfiniteQueryResult as UseReactorSuspenseInfiniteQueryResult, } from "./useActorSuspenseInfiniteQuery.js";
12
+ export type { UseActorMethodParameters as UseReactorMethodParameters, UseActorMethodResult as UseReactorMethodResult, } from "./useActorMethod.js";
13
+ export type { UseActorQueryConfig as UseActorQueryParameters, UseActorQueryResult, } from "./useActorQuery.js";
14
+ export type { UseActorMutationConfig as UseActorMutationParameters, UseActorMutationResult, } from "./useActorMutation.js";
15
+ export type { UseActorSuspenseQueryConfig as UseActorSuspenseQueryParameters, UseActorSuspenseQueryResult, } from "./useActorSuspenseQuery.js";
16
+ export type { UseActorInfiniteQueryConfig as UseActorInfiniteQueryParameters, UseActorInfiniteQueryResult, } from "./useActorInfiniteQuery.js";
17
+ export type { UseActorSuspenseInfiniteQueryConfig as UseActorSuspenseInfiniteQueryParameters, UseActorSuspenseInfiniteQueryResult, } from "./useActorSuspenseInfiniteQuery.js";
18
+ export type { UseActorMethodConfig as UseActorMethodParameters, UseActorMethodResult, } from "./useActorMethod.js";
6
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAE,6BAA6B,IAAI,+BAA+B,EAAE,MAAM,iCAAiC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGrE,OAAO,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAG9E,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAG7F,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAG7F,OAAO,EAAE,6BAA6B,IAAI,+BAA+B,EAAE,MAAM,oCAAoC,CAAA;AAGrH,OAAO,EACL,cAAc,EACd,cAAc,IAAI,gBAAgB,EAClC,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAM5B,YAAY,EACV,uBAAuB,IAAI,yBAAyB,EACpD,mBAAmB,IAAI,qBAAqB,GAC7C,MAAM,oBAAoB,CAAA;AAE3B,YAAY,EACV,0BAA0B,IAAI,4BAA4B,EAC1D,sBAAsB,IAAI,wBAAwB,GACnD,MAAM,uBAAuB,CAAA;AAE9B,YAAY,EACV,+BAA+B,IAAI,iCAAiC,EACpE,2BAA2B,IAAI,6BAA6B,GAC7D,MAAM,4BAA4B,CAAA;AAEnC,YAAY,EACV,+BAA+B,IAAI,iCAAiC,EACpE,2BAA2B,IAAI,6BAA6B,GAC7D,MAAM,4BAA4B,CAAA;AAEnC,YAAY,EACV,uCAAuC,IAAI,yCAAyC,EACpF,mCAAmC,IAAI,qCAAqC,GAC7E,MAAM,oCAAoC,CAAA;AAE3C,YAAY,EACV,wBAAwB,IAAI,0BAA0B,EACtD,oBAAoB,IAAI,sBAAsB,GAC/C,MAAM,qBAAqB,CAAA;AAM5B,YAAY,EACV,mBAAmB,IAAI,uBAAuB,EAC9C,mBAAmB,GACpB,MAAM,oBAAoB,CAAA;AAE3B,YAAY,EACV,sBAAsB,IAAI,0BAA0B,EACpD,sBAAsB,GACvB,MAAM,uBAAuB,CAAA;AAE9B,YAAY,EACV,2BAA2B,IAAI,+BAA+B,EAC9D,2BAA2B,GAC5B,MAAM,4BAA4B,CAAA;AAEnC,YAAY,EACV,2BAA2B,IAAI,+BAA+B,EAC9D,2BAA2B,GAC5B,MAAM,4BAA4B,CAAA;AAEnC,YAAY,EACV,mCAAmC,IAAI,uCAAuC,EAC9E,mCAAmC,GACpC,MAAM,oCAAoC,CAAA;AAE3C,YAAY,EACV,oBAAoB,IAAI,wBAAwB,EAChD,oBAAoB,GACrB,MAAM,qBAAqB,CAAA"}
@@ -1,6 +1,16 @@
1
- export { useActorQuery as useReactorQuery } from "./useActorQuery";
2
- export { useActorMutation as useReactorMutation } from "./useActorMutation";
3
- export { useActorSuspenseQuery as useReactorSuspenseQuery } from "./useActorSuspenseQuery";
4
- export { useActorInfiniteQuery as useReactorInfiniteQuery } from "./useActorInfiniteQuery";
5
- export { useActorSuspenseInfiniteQuery as useReactorSuspenseInfiniteQuery } from "./useActorSuspenseInfiniteQuery";
1
+ // ============================================================================
2
+ // Hooks
3
+ // ============================================================================
4
+ // useActorQuery / useReactorQuery
5
+ export { useActorQuery as useReactorQuery } from "./useActorQuery.js";
6
+ // useActorMutation / useReactorMutation
7
+ export { useActorMutation as useReactorMutation } from "./useActorMutation.js";
8
+ // useActorSuspenseQuery / useReactorSuspenseQuery
9
+ export { useActorSuspenseQuery as useReactorSuspenseQuery } from "./useActorSuspenseQuery.js";
10
+ // useActorInfiniteQuery / useReactorInfiniteQuery
11
+ export { useActorInfiniteQuery as useReactorInfiniteQuery } from "./useActorInfiniteQuery.js";
12
+ // useActorSuspenseInfiniteQuery / useReactorSuspenseInfiniteQuery
13
+ export { useActorSuspenseInfiniteQuery as useReactorSuspenseInfiniteQuery } from "./useActorSuspenseInfiniteQuery.js";
14
+ // useActorMethod / useReactorMethod
15
+ export { useActorMethod, useActorMethod as useReactorMethod, createActorMethodHooks, } from "./useActorMethod.js";
6
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAE,6BAA6B,IAAI,+BAA+B,EAAE,MAAM,iCAAiC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,kCAAkC;AAClC,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAErE,wCAAwC;AACxC,OAAO,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE9E,kDAAkD;AAClD,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAE7F,kDAAkD;AAClD,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAE7F,kEAAkE;AAClE,OAAO,EAAE,6BAA6B,IAAI,+BAA+B,EAAE,MAAM,oCAAoC,CAAA;AAErH,oCAAoC;AACpC,OAAO,EACL,cAAc,EACd,cAAc,IAAI,gBAAgB,EAClC,sBAAsB,GACvB,MAAM,qBAAqB,CAAA"}
@@ -1,23 +1,25 @@
1
- import { QueryKey, UseInfiniteQueryResult, InfiniteData } from "@tanstack/react-query";
1
+ import { QueryKey, UseInfiniteQueryResult, UseInfiniteQueryOptions, InfiniteData } from "@tanstack/react-query";
2
2
  import { FunctionName, Reactor, TransformKey, ReactorArgs, ReactorReturnOk, ReactorReturnErr } from "@ic-reactor/core";
3
3
  import { CallConfig } from "@icp-sdk/core/agent";
4
- export interface UseActorInfiniteQueryParameters<A, M extends FunctionName<A>, T extends TransformKey = "candid", TPageParam = unknown> {
4
+ /**
5
+ * Parameters for useActorInfiniteQuery hook.
6
+ * Extends react-query's UseInfiniteQueryOptions with custom reactor params.
7
+ */
8
+ export interface UseActorInfiniteQueryParameters<A, M extends FunctionName<A>, T extends TransformKey = "candid", TPageParam = unknown, TSelected = InfiniteData<ReactorReturnOk<A, M, T>, TPageParam>> extends Omit<UseInfiniteQueryOptions<ReactorReturnOk<A, M, T>, ReactorReturnErr<A, M, T>, TSelected, QueryKey, TPageParam>, "queryKey" | "queryFn" | "getNextPageParam" | "initialPageParam"> {
9
+ /** The reactor instance to use for method calls */
5
10
  reactor: Reactor<A, T>;
11
+ /** The method name to call on the canister */
6
12
  functionName: M;
13
+ /** Function to get args from page parameter */
7
14
  getArgs: (pageParam: TPageParam) => ReactorArgs<A, M, T>;
15
+ /** Agent call configuration (effectiveCanisterId, etc.) */
8
16
  callConfig?: CallConfig;
17
+ /** Custom query key (auto-generated if not provided) */
9
18
  queryKey?: QueryKey;
19
+ /** Initial page parameter */
10
20
  initialPageParam: TPageParam;
21
+ /** Function to determine next page parameter */
11
22
  getNextPageParam: (lastPage: ReactorReturnOk<A, M, T>, allPages: ReactorReturnOk<A, M, T>[], lastPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined | null;
12
- getPreviousPageParam?: (firstPage: ReactorReturnOk<A, M, T>, allPages: ReactorReturnOk<A, M, T>[], firstPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined | null;
13
- maxPages?: number;
14
- enabled?: boolean;
15
- staleTime?: number;
16
- gcTime?: number;
17
- refetchOnWindowFocus?: boolean;
18
- refetchOnMount?: boolean;
19
- refetchOnReconnect?: boolean;
20
- select?: (data: InfiniteData<ReactorReturnOk<A, M, T>, TPageParam>) => InfiniteData<ReactorReturnOk<A, M, T>, TPageParam>;
21
23
  }
22
24
  export type UseActorInfiniteQueryConfig<A, M extends FunctionName<A>, T extends TransformKey = "candid", TPageParam = unknown> = Omit<UseActorInfiniteQueryParameters<A, M, T, TPageParam>, "reactor">;
23
25
  export type UseActorInfiniteQueryResult<A, M extends FunctionName<A>, T extends TransformKey = "candid", TPageParam = unknown> = UseInfiniteQueryResult<InfiniteData<ReactorReturnOk<A, M, T>, TPageParam>, ReactorReturnErr<A, M, T>>;
@@ -1 +1 @@
1
- {"version":3,"file":"useActorInfiniteQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorInfiniteQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useActorInfiniteQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorInfiniteQuery.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAER,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD;;;GAGG;AACH,MAAM,WAAW,+BAA+B,CAC9C,CAAC,EACD,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EACzB,CAAC,SAAS,YAAY,GAAG,QAAQ,EACjC,UAAU,GAAG,OAAO,EACpB,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAC9D,SAAQ,IAAI,CACZ,uBAAuB,CACrB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACxB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACzB,SAAS,EACT,QAAQ,EACR,UAAU,CACX,EACD,UAAU,GAAG,SAAS,GAAG,kBAAkB,GAAG,kBAAkB,CACjE;IACC,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACtB,8CAA8C;IAC9C,YAAY,EAAE,CAAC,CAAA;IACf,+CAA+C;IAC/C,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACxD,2DAA2D;IAC3D,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,6BAA6B;IAC7B,gBAAgB,EAAE,UAAU,CAAA;IAC5B,gDAAgD;IAChD,gBAAgB,EAAE,CAChB,QAAQ,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAClC,QAAQ,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EACpC,aAAa,EAAE,UAAU,EACzB,aAAa,EAAE,UAAU,EAAE,KACxB,UAAU,GAAG,SAAS,GAAG,IAAI,CAAA;CACnC;AAED,MAAM,MAAM,2BAA2B,CACrC,CAAC,EACD,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EACzB,CAAC,SAAS,YAAY,GAAG,QAAQ,EACjC,UAAU,GAAG,OAAO,IAClB,IAAI,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,CAAA;AAEzE,MAAM,MAAM,2BAA2B,CACrC,CAAC,EACD,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EACzB,CAAC,SAAS,YAAY,GAAG,QAAQ,EACjC,UAAU,GAAG,OAAO,IAClB,sBAAsB,CACxB,YAAY,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,EAClD,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAC1B,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,GAChC,CAAC,EACD,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EACzB,CAAC,SAAS,YAAY,GAAG,QAAQ,EACjC,UAAU,GAAG,OAAO,EACpB,sEAOC,+BAA+B,CAChC,CAAC,EACD,CAAC,EACD,CAAC,EACD,UAAU,CACX,KAAG,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CA4BlD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useActorInfiniteQuery.js","sourceRoot":"","sources":["../../src/hooks/useActorInfiniteQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAEL,gBAAgB,GAGjB,MAAM,uBAAuB,CAAA;AAgE9B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAKnC,EACA,OAAO,EACP,YAAY,EACZ,OAAO,EACP,UAAU,EACV,QAAQ,EACR,GAAG,OAAO,EAMX,EAAoD,EAAE;IACrD,0DAA0D;IAC1D,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC,EAC5D,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAClC,CAAA;IAED,wDAAwD;IACxD,MAAM,OAAO,GAAG,WAAW,CACzB,KAAK,EAAE,EAAE,SAAS,EAA6B,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;QAC/B,OAAO,OAAO,CAAC,UAAU,CAAC;YACxB,YAAY;YACZ,IAAI;YACJ,UAAU;SACX,CAAC,CAAA;IACJ,CAAC,EACD,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAC7C,CAAA;IAED,OAAO,gBAAgB,CACrB;QACE,QAAQ,EAAE,YAAY;QACtB,OAAO;QACP,GAAG,OAAO;KACJ,EACR,OAAO,CAAC,WAAW,CACgC,CAAA;AACvD,CAAC,CAAA"}
1
+ {"version":3,"file":"useActorInfiniteQuery.js","sourceRoot":"","sources":["../../src/hooks/useActorInfiniteQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAEL,gBAAgB,GAIjB,MAAM,uBAAuB,CAAA;AAqE9B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAKnC,EACA,OAAO,EACP,YAAY,EACZ,OAAO,EACP,UAAU,EACV,QAAQ,EACR,GAAG,OAAO,EAMX,EAAoD,EAAE;IACrD,0DAA0D;IAC1D,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC,EAC5D,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAClC,CAAA;IAED,wDAAwD;IACxD,MAAM,OAAO,GAAG,WAAW,CACzB,KAAK,EAAE,EAAE,SAAS,EAA6B,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;QAC/B,OAAO,OAAO,CAAC,UAAU,CAAC;YACxB,YAAY;YACZ,IAAI;YACJ,UAAU;SACX,CAAC,CAAA;IACJ,CAAC,EACD,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAC7C,CAAA;IAED,OAAO,gBAAgB,CACrB;QACE,QAAQ,EAAE,YAAY;QACtB,OAAO;QACP,GAAG,OAAO;KACJ,EACR,OAAO,CAAC,WAAW,CACgC,CAAA;AACvD,CAAC,CAAA"}
@@ -0,0 +1,105 @@
1
+ import { type UseQueryResult, type UseMutationResult, type QueryKey, type QueryObserverOptions } from "@tanstack/react-query";
2
+ import { Reactor, BaseActor, FunctionName, TransformKey, ReactorArgs, ReactorReturnOk, ReactorReturnErr, FunctionType } from "@ic-reactor/core";
3
+ import { CallConfig } from "@icp-sdk/core/agent";
4
+ /**
5
+ * Configuration for useActorMethod hook.
6
+ * Extends react-query's QueryObserverOptions with custom reactor params.
7
+ *
8
+ * This is a unified hook that handles both query and mutation methods.
9
+ * Query-specific options (like refetchInterval) only apply to query methods.
10
+ * Mutation-specific options (like invalidateQueries) only apply to mutation methods.
11
+ */
12
+ export interface UseActorMethodParameters<A = BaseActor, M extends FunctionName<A> = FunctionName<A>, T extends TransformKey = "candid"> extends Omit<QueryObserverOptions<ReactorReturnOk<A, M, T>, ReactorReturnErr<A, M, T>, ReactorReturnOk<A, M, T>, ReactorReturnOk<A, M, T>, QueryKey>, "queryKey" | "queryFn"> {
13
+ /** The reactor instance to use for method calls */
14
+ reactor: Reactor<A, T>;
15
+ /** The method name to call on the canister */
16
+ functionName: M;
17
+ /** Arguments to pass to the method (optional for parameterless methods) */
18
+ args?: ReactorArgs<A, M, T>;
19
+ /** Agent call configuration (effectiveCanisterId, etc.) */
20
+ callConfig?: CallConfig;
21
+ /** Custom query key (auto-generated if not provided) */
22
+ queryKey?: QueryKey;
23
+ /**
24
+ * Callback when the method call succeeds.
25
+ * Works for both query and mutation methods.
26
+ */
27
+ onSuccess?: (data: ReactorReturnOk<A, M, T>) => void;
28
+ /**
29
+ * Callback when the method call fails.
30
+ * Works for both query and mutation methods.
31
+ */
32
+ onError?: (error: ReactorReturnErr<A, M, T>) => void;
33
+ /**
34
+ * Query keys to invalidate after a successful mutation.
35
+ * Only applies to mutation methods (updates).
36
+ */
37
+ invalidateQueries?: QueryKey[];
38
+ }
39
+ /**
40
+ * Configuration type for bound useActorMethod hook (reactor omitted).
41
+ * For use with createActorHooks.
42
+ */
43
+ export type UseActorMethodConfig<A = BaseActor, M extends FunctionName<A> = FunctionName<A>, T extends TransformKey = "candid"> = Omit<UseActorMethodParameters<A, M, T>, "reactor">;
44
+ /**
45
+ * Result type for useActorMethod hook.
46
+ * Provides a unified interface for both query and mutation methods.
47
+ */
48
+ export interface UseActorMethodResult<A = BaseActor, M extends FunctionName<A> = FunctionName<A>, T extends TransformKey = "candid"> {
49
+ /** The returned data from the method call */
50
+ data: ReactorReturnOk<A, M, T> | undefined;
51
+ /** Whether the method is currently executing */
52
+ isLoading: boolean;
53
+ /** Alias for isLoading - whether a mutation is pending */
54
+ isPending: boolean;
55
+ /** Whether there was an error */
56
+ isError: boolean;
57
+ /** Whether the method has successfully completed at least once */
58
+ isSuccess: boolean;
59
+ /** The error if one occurred */
60
+ error: ReactorReturnErr<A, M, T> | null;
61
+ /** Whether this is a query method (true) or mutation method (false) */
62
+ isQuery: boolean;
63
+ /** The function type (query, update, composite_query) */
64
+ functionType: FunctionType;
65
+ /**
66
+ * Call the method with optional arguments.
67
+ * For queries: triggers a refetch
68
+ * For mutations: executes the mutation with the provided args
69
+ */
70
+ call: (args?: ReactorArgs<A, M, T>) => Promise<ReactorReturnOk<A, M, T> | undefined>;
71
+ /**
72
+ * Reset the state (clear data and error).
73
+ * For queries: removes the query from cache
74
+ * For mutations: resets the mutation state
75
+ */
76
+ reset: () => void;
77
+ /**
78
+ * For queries only: Refetch the query
79
+ */
80
+ refetch: () => Promise<ReactorReturnOk<A, M, T> | undefined>;
81
+ /** The raw query result (only available for query methods) */
82
+ queryResult?: UseQueryResult<ReactorReturnOk<A, M, T>, ReactorReturnErr<A, M, T>>;
83
+ /** The raw mutation result (only available for mutation methods) */
84
+ mutationResult?: UseMutationResult<ReactorReturnOk<A, M, T>, ReactorReturnErr<A, M, T>, ReactorArgs<A, M, T>>;
85
+ }
86
+ /**
87
+ * A unified hook for calling canister methods that automatically handles
88
+ * both query and mutation methods based on the Candid interface.
89
+ */
90
+ export declare function useActorMethod<A = BaseActor, M extends FunctionName<A> = FunctionName<A>, T extends TransformKey = "candid">({ reactor, functionName, args, callConfig, queryKey: customQueryKey, enabled, onSuccess, onError, invalidateQueries, ...queryOptions }: UseActorMethodParameters<A, M, T>): UseActorMethodResult<A, M, T>;
91
+ /**
92
+ * Creates a bound useMethod hook for a specific reactor instance.
93
+ *
94
+ * @example
95
+ * ```tsx
96
+ * const { useMethod } = createActorMethodHooks(reactor)
97
+ * ```
98
+ */
99
+ export declare function createActorMethodHooks<A = BaseActor, T extends TransformKey = "candid">(reactor: Reactor<A, T>): {
100
+ /**
101
+ * Hook for calling methods on the bound reactor.
102
+ */
103
+ useMethod: <M extends FunctionName<A>>(config: Omit<UseActorMethodParameters<A, M, T>, "reactor">) => UseActorMethodResult<A, M, T>;
104
+ };
105
+ //# sourceMappingURL=useActorMethod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActorMethod.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorMethod.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,192 @@
1
+ import { useCallback, useMemo } from "react";
2
+ import { useQuery, useMutation, } from "@tanstack/react-query";
3
+ /**
4
+ * A unified hook for calling canister methods that automatically handles
5
+ * both query and mutation methods based on the Candid interface.
6
+ */
7
+ export function useActorMethod({ reactor, functionName, args, callConfig, queryKey: customQueryKey, enabled = true, onSuccess, onError, invalidateQueries, ...queryOptions }) {
8
+ // Determine if this is a query method by checking the IDL
9
+ const isQuery = useMemo(() => {
10
+ if (!reactor)
11
+ throw new Error("Reactor instance is required");
12
+ return reactor.isQueryMethod(functionName);
13
+ }, [reactor, functionName]);
14
+ const functionType = isQuery ? "query" : "update";
15
+ // Generate query key
16
+ const queryKey = useMemo(() => {
17
+ if (customQueryKey)
18
+ return customQueryKey;
19
+ return reactor.generateQueryKey({
20
+ functionName,
21
+ args,
22
+ });
23
+ }, [reactor, functionName, args, customQueryKey]);
24
+ // ============================================================================
25
+ // Query Implementation
26
+ // ============================================================================
27
+ const queryResult = useQuery({
28
+ queryKey,
29
+ queryFn: async () => {
30
+ try {
31
+ const result = await reactor.callMethod({
32
+ functionName,
33
+ args,
34
+ callConfig,
35
+ });
36
+ onSuccess?.(result);
37
+ return result;
38
+ }
39
+ catch (error) {
40
+ onError?.(error);
41
+ throw error;
42
+ }
43
+ },
44
+ enabled: isQuery && enabled,
45
+ ...queryOptions,
46
+ }, reactor.queryClient);
47
+ // ============================================================================
48
+ // Mutation Implementation
49
+ // ============================================================================
50
+ const mutationResult = useMutation({
51
+ mutationKey: queryKey,
52
+ mutationFn: async (mutationArgs) => {
53
+ const result = await reactor.callMethod({
54
+ functionName,
55
+ args: mutationArgs ?? args,
56
+ callConfig,
57
+ });
58
+ return result;
59
+ },
60
+ onSuccess: (data) => {
61
+ onSuccess?.(data);
62
+ // Invalidate specified queries after successful mutation
63
+ if (invalidateQueries && invalidateQueries.length > 0) {
64
+ invalidateQueries.forEach((key) => {
65
+ reactor.queryClient.invalidateQueries({ queryKey: key });
66
+ });
67
+ }
68
+ },
69
+ onError: (error) => {
70
+ onError?.(error);
71
+ },
72
+ }, reactor.queryClient);
73
+ // ============================================================================
74
+ // Unified Call Function
75
+ // ============================================================================
76
+ const call = useCallback(async (callArgs) => {
77
+ if (isQuery) {
78
+ // For queries, refetch with new args if provided
79
+ if (callArgs !== undefined) {
80
+ try {
81
+ const result = await reactor.queryClient.fetchQuery({
82
+ queryKey,
83
+ queryFn: () => reactor.callMethod({
84
+ functionName,
85
+ args: callArgs,
86
+ callConfig,
87
+ }),
88
+ staleTime: 0,
89
+ });
90
+ onSuccess?.(result);
91
+ return result;
92
+ }
93
+ catch (error) {
94
+ onError?.(error);
95
+ return undefined;
96
+ }
97
+ }
98
+ // Otherwise just refetch
99
+ const { data } = await queryResult.refetch();
100
+ return data;
101
+ }
102
+ else {
103
+ // For mutations, execute with provided args
104
+ return mutationResult
105
+ .mutateAsync(callArgs)
106
+ .catch(() => undefined);
107
+ }
108
+ }, [
109
+ isQuery,
110
+ reactor,
111
+ functionName,
112
+ callConfig,
113
+ queryKey,
114
+ queryResult,
115
+ mutationResult,
116
+ onSuccess,
117
+ onError,
118
+ ]);
119
+ // ============================================================================
120
+ // Reset Function
121
+ // ============================================================================
122
+ const reset = useCallback(() => {
123
+ if (isQuery) {
124
+ reactor.queryClient.removeQueries({ queryKey });
125
+ }
126
+ else {
127
+ mutationResult.reset();
128
+ }
129
+ }, [isQuery, reactor, queryKey, mutationResult]);
130
+ // ============================================================================
131
+ // Refetch Function
132
+ // ============================================================================
133
+ const refetch = useCallback(async () => {
134
+ if (isQuery) {
135
+ const result = await queryResult.refetch();
136
+ return result.data;
137
+ }
138
+ return undefined;
139
+ }, [isQuery, queryResult]);
140
+ // ============================================================================
141
+ // Return Unified Result
142
+ // ============================================================================
143
+ if (isQuery) {
144
+ return {
145
+ data: queryResult.data,
146
+ isLoading: queryResult.isLoading,
147
+ isPending: queryResult.isLoading,
148
+ isError: queryResult.isError,
149
+ isSuccess: queryResult.isSuccess,
150
+ error: queryResult.error,
151
+ isQuery: true,
152
+ functionType,
153
+ call,
154
+ reset,
155
+ refetch,
156
+ queryResult,
157
+ };
158
+ }
159
+ else {
160
+ return {
161
+ data: mutationResult.data,
162
+ isLoading: mutationResult.isPending,
163
+ isPending: mutationResult.isPending,
164
+ isError: mutationResult.isError,
165
+ isSuccess: mutationResult.isSuccess,
166
+ error: mutationResult.error,
167
+ isQuery: false,
168
+ functionType,
169
+ call,
170
+ reset,
171
+ refetch,
172
+ mutationResult,
173
+ };
174
+ }
175
+ }
176
+ /**
177
+ * Creates a bound useMethod hook for a specific reactor instance.
178
+ *
179
+ * @example
180
+ * ```tsx
181
+ * const { useMethod } = createActorMethodHooks(reactor)
182
+ * ```
183
+ */
184
+ export function createActorMethodHooks(reactor) {
185
+ return {
186
+ /**
187
+ * Hook for calling methods on the bound reactor.
188
+ */
189
+ useMethod: (config) => useActorMethod({ ...config, reactor }),
190
+ };
191
+ }
192
+ //# sourceMappingURL=useActorMethod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActorMethod.js","sourceRoot":"","sources":["../../src/hooks/useActorMethod.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,25 @@
1
- import { QueryKey, UseSuspenseInfiniteQueryResult, InfiniteData } from "@tanstack/react-query";
1
+ import { QueryKey, UseSuspenseInfiniteQueryResult, UseSuspenseInfiniteQueryOptions, InfiniteData } from "@tanstack/react-query";
2
2
  import { FunctionName, Reactor, TransformKey, ReactorArgs, ReactorReturnOk, ReactorReturnErr } from "@ic-reactor/core";
3
3
  import { CallConfig } from "@icp-sdk/core/agent";
4
- export interface UseActorSuspenseInfiniteQueryParameters<A, M extends FunctionName<A>, T extends TransformKey = "candid", TPageParam = unknown> {
4
+ /**
5
+ * Parameters for useActorSuspenseInfiniteQuery hook.
6
+ * Extends react-query's UseSuspenseInfiniteQueryOptions with custom reactor params.
7
+ */
8
+ export interface UseActorSuspenseInfiniteQueryParameters<A, M extends FunctionName<A>, T extends TransformKey = "candid", TPageParam = unknown, TSelected = InfiniteData<ReactorReturnOk<A, M, T>, TPageParam>> extends Omit<UseSuspenseInfiniteQueryOptions<ReactorReturnOk<A, M, T>, ReactorReturnErr<A, M, T>, TSelected, QueryKey, TPageParam>, "queryKey" | "queryFn" | "getNextPageParam" | "initialPageParam"> {
9
+ /** The reactor instance to use for method calls */
5
10
  reactor: Reactor<A, T>;
11
+ /** The method name to call on the canister */
6
12
  functionName: M;
13
+ /** Function to get args from page parameter */
7
14
  getArgs: (pageParam: TPageParam) => ReactorArgs<A, M, T>;
15
+ /** Agent call configuration (effectiveCanisterId, etc.) */
8
16
  callConfig?: CallConfig;
17
+ /** Custom query key (auto-generated if not provided) */
9
18
  queryKey?: QueryKey;
19
+ /** Initial page parameter */
10
20
  initialPageParam: TPageParam;
21
+ /** Function to determine next page parameter */
11
22
  getNextPageParam: (lastPage: ReactorReturnOk<A, M, T>, allPages: ReactorReturnOk<A, M, T>[], lastPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined | null;
12
- getPreviousPageParam?: (firstPage: ReactorReturnOk<A, M, T>, allPages: ReactorReturnOk<A, M, T>[], firstPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined | null;
13
- maxPages?: number;
14
- staleTime?: number;
15
- gcTime?: number;
16
- refetchOnWindowFocus?: boolean;
17
- refetchOnMount?: boolean;
18
- refetchOnReconnect?: boolean;
19
- select?: (data: InfiniteData<ReactorReturnOk<A, M, T>, TPageParam>) => InfiniteData<ReactorReturnOk<A, M, T>, TPageParam>;
20
23
  }
21
24
  export type UseActorSuspenseInfiniteQueryConfig<A, M extends FunctionName<A>, T extends TransformKey = "candid", TPageParam = unknown> = Omit<UseActorSuspenseInfiniteQueryParameters<A, M, T, TPageParam>, "reactor">;
22
25
  export type UseActorSuspenseInfiniteQueryResult<A, M extends FunctionName<A>, T extends TransformKey = "candid", TPageParam = unknown> = UseSuspenseInfiniteQueryResult<InfiniteData<ReactorReturnOk<A, M, T>, TPageParam>, ReactorReturnErr<A, M, T>>;