@ic-reactor/react 3.8.0 → 3.10.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 (77) hide show
  1. package/README.md +84 -10
  2. package/dist/auth/authentication-manager.d.ts.map +1 -1
  3. package/dist/auth/authentication-manager.js +146 -21
  4. package/dist/auth/authentication-manager.js.map +1 -1
  5. package/dist/auth/createIdentityAttributeHooks.d.ts.map +1 -1
  6. package/dist/auth/createIdentityAttributeHooks.js +47 -5
  7. package/dist/auth/createIdentityAttributeHooks.js.map +1 -1
  8. package/dist/createInfiniteQuery.d.ts +11 -9
  9. package/dist/createInfiniteQuery.d.ts.map +1 -1
  10. package/dist/createInfiniteQuery.js +20 -17
  11. package/dist/createInfiniteQuery.js.map +1 -1
  12. package/dist/createMutation.d.ts.map +1 -1
  13. package/dist/createMutation.js +37 -3
  14. package/dist/createMutation.js.map +1 -1
  15. package/dist/createQuery.d.ts.map +1 -1
  16. package/dist/createQuery.js +7 -3
  17. package/dist/createQuery.js.map +1 -1
  18. package/dist/createSuspenseInfiniteQuery.d.ts +10 -9
  19. package/dist/createSuspenseInfiniteQuery.d.ts.map +1 -1
  20. package/dist/createSuspenseInfiniteQuery.js +18 -16
  21. package/dist/createSuspenseInfiniteQuery.js.map +1 -1
  22. package/dist/createSuspenseQuery.d.ts.map +1 -1
  23. package/dist/createSuspenseQuery.js +7 -3
  24. package/dist/createSuspenseQuery.js.map +1 -1
  25. package/dist/defineReactor.d.ts.map +1 -1
  26. package/dist/defineReactor.js +17 -2
  27. package/dist/defineReactor.js.map +1 -1
  28. package/dist/hooks/createAuthHooks.d.ts.map +1 -1
  29. package/dist/hooks/createAuthHooks.js +13 -0
  30. package/dist/hooks/createAuthHooks.js.map +1 -1
  31. package/dist/hooks/index.d.ts.map +1 -1
  32. package/dist/hooks/index.js +6 -0
  33. package/dist/hooks/index.js.map +1 -1
  34. package/dist/hooks/useActorInfiniteQuery.d.ts.map +1 -1
  35. package/dist/hooks/useActorInfiniteQuery.js +21 -2
  36. package/dist/hooks/useActorInfiniteQuery.js.map +1 -1
  37. package/dist/hooks/useActorMethod.d.ts.map +1 -1
  38. package/dist/hooks/useActorMethod.js +76 -33
  39. package/dist/hooks/useActorMethod.js.map +1 -1
  40. package/dist/hooks/useActorMutation.d.ts +8 -1
  41. package/dist/hooks/useActorMutation.d.ts.map +1 -1
  42. package/dist/hooks/useActorMutation.js +23 -7
  43. package/dist/hooks/useActorMutation.js.map +1 -1
  44. package/dist/hooks/useActorQuery.d.ts.map +1 -1
  45. package/dist/hooks/useActorQuery.js +12 -1
  46. package/dist/hooks/useActorQuery.js.map +1 -1
  47. package/dist/hooks/useActorSuspenseInfiniteQuery.d.ts.map +1 -1
  48. package/dist/hooks/useActorSuspenseInfiniteQuery.js +21 -2
  49. package/dist/hooks/useActorSuspenseInfiniteQuery.js.map +1 -1
  50. package/dist/hooks/useActorSuspenseQuery.d.ts.map +1 -1
  51. package/dist/hooks/useActorSuspenseQuery.js +12 -1
  52. package/dist/hooks/useActorSuspenseQuery.js.map +1 -1
  53. package/dist/types.d.ts +8 -2
  54. package/dist/types.d.ts.map +1 -1
  55. package/dist/utils.d.ts +27 -5
  56. package/dist/utils.d.ts.map +1 -1
  57. package/dist/utils.js +65 -9
  58. package/dist/utils.js.map +1 -1
  59. package/package.json +8 -2
  60. package/src/auth/authentication-manager.ts +162 -21
  61. package/src/auth/createIdentityAttributeHooks.ts +54 -5
  62. package/src/createInfiniteQuery.ts +48 -34
  63. package/src/createMutation.ts +48 -2
  64. package/src/createQuery.ts +17 -10
  65. package/src/createSuspenseInfiniteQuery.ts +44 -32
  66. package/src/createSuspenseQuery.ts +17 -10
  67. package/src/defineReactor.ts +24 -2
  68. package/src/hooks/createAuthHooks.ts +18 -0
  69. package/src/hooks/index.ts +6 -0
  70. package/src/hooks/useActorInfiniteQuery.ts +30 -3
  71. package/src/hooks/useActorMethod.ts +91 -34
  72. package/src/hooks/useActorMutation.ts +35 -12
  73. package/src/hooks/useActorQuery.ts +11 -1
  74. package/src/hooks/useActorSuspenseInfiniteQuery.ts +30 -3
  75. package/src/hooks/useActorSuspenseQuery.ts +11 -1
  76. package/src/types.ts +8 -2
  77. package/src/utils.ts +66 -10
@@ -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":"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"}
@@ -1,6 +1,6 @@
1
1
  import { useMemo, useCallback } from "react";
2
2
  import { useInfiniteQuery, } from "@tanstack/react-query";
3
- import { normalizeQueryData } from "../utils.js";
3
+ import { mergeFactoryQueryKey, normalizeQueryData } from "../utils.js";
4
4
  /**
5
5
  * Hook for executing infinite/paginated query calls on a canister.
6
6
  *
@@ -17,7 +17,26 @@ export const useActorInfiniteQuery = ({ reactor, functionName, getArgs, callConf
17
17
  // Always pass queryKey through generateQueryKey so it is merged with the
18
18
  // reactor/function identity. Using the custom key verbatim would cause cache
19
19
  // collisions if two different actors or methods share the same key string.
20
- const baseQueryKey = useMemo(() => reactor.generateQueryKey({ functionName, queryKey }, callConfig), [queryKey, reactor, functionName, callConfig]);
20
+ const baseQueryKey = useMemo(() => reactor.generateQueryKey({
21
+ functionName,
22
+ // Fold the call arguments into the key. They live in the `getArgs`
23
+ // closure rather than in the config, so without this two hooks on the
24
+ // same method with different arguments share one cache entry and
25
+ // serve each other's pages.
26
+ queryKey: mergeFactoryQueryKey(queryKey, undefined, getArgs(options.initialPageParam)),
27
+ }, callConfig), [
28
+ queryKey,
29
+ reactor,
30
+ // `canisterId` is mutable reactor state that `setCanisterId` can change,
31
+ // while `reactor` itself stays the same object — so it has to be a
32
+ // dependency in its own right or the key stays pinned to the old canister
33
+ // while the queryFn already calls the new one.
34
+ reactor.canisterId?.toString(),
35
+ functionName,
36
+ callConfig,
37
+ getArgs,
38
+ options.initialPageParam,
39
+ ]);
21
40
  // Memoize queryFn to prevent recreation on every render
22
41
  const queryFn = useCallback(async ({ pageParam }) => {
23
42
  const args = getArgs(pageParam);
@@ -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,GAIjB,MAAM,uBAAuB,CAAA;AAW9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAqEhD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAKnC,EACA,OAAO,EACP,YAAY,EACZ,OAAO,EACP,UAAU,EACV,QAAQ,EACR,GAAG,OAAO,EAMX,EAAuE,EAAE;IACxE,yEAAyE;IACzE,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,UAAU,CAAC,EACtE,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAC9C,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,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;YACtC,YAAY;YACZ,IAAI;YACJ,UAAU;SACX,CAAC,CAAA;QACF,OAAO,kBAAkB,CACvB,MAAqD,CACtD,CAAA;IACH,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,CACmD,CAAA;AAC1E,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;AAW9B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAqEtE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAKnC,EACA,OAAO,EACP,YAAY,EACZ,OAAO,EACP,UAAU,EACV,QAAQ,EACR,GAAG,OAAO,EAMX,EAAuE,EAAE;IACxE,yEAAyE;IACzE,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CACH,OAAO,CAAC,gBAAgB,CACtB;QACE,YAAY;QACZ,mEAAmE;QACnE,sEAAsE;QACtE,iEAAiE;QACjE,4BAA4B;QAC5B,QAAQ,EAAE,oBAAoB,CAC5B,QAAQ,EACR,SAAS,EACT,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAClC;KACF,EACD,UAAU,CACX,EACH;QACE,QAAQ;QACR,OAAO;QACP,yEAAyE;QACzE,mEAAmE;QACnE,0EAA0E;QAC1E,+CAA+C;QAC/C,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE;QAC9B,YAAY;QACZ,UAAU;QACV,OAAO;QACP,OAAO,CAAC,gBAAgB;KACzB,CACF,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,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;YACtC,YAAY;YACZ,IAAI;YACJ,UAAU;SACX,CAAC,CAAA;QACF,OAAO,kBAAkB,CACvB,MAAqD,CACtD,CAAA;IACH,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,CACmD,CAAA;AAC1E,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useActorMethod.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorMethod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useActorMethod.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorMethod.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { useCallback, useMemo } from "react";
1
+ import { useCallback, useEffect, useMemo, useRef } from "react";
2
2
  import { useQuery, useMutation, } from "@tanstack/react-query";
3
3
  /**
4
4
  * A unified hook for calling canister methods that automatically handles
@@ -12,38 +12,73 @@ export function useActorMethod({ reactor, functionName, args, callConfig, queryK
12
12
  return reactor.isQueryMethod(functionName);
13
13
  }, [reactor, functionName]);
14
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
- }, callConfig);
23
- }, [reactor, functionName, args, callConfig, customQueryKey]);
15
+ // Latest callbacks, read at dispatch time: this keeps a rerendered closure
16
+ // from being ignored, and keeps callback identity out of the effect deps.
17
+ const onSuccessRef = useRef(onSuccess);
18
+ const onErrorRef = useRef(onError);
19
+ onSuccessRef.current = onSuccess;
20
+ onErrorRef.current = onError;
21
+ // Build the key for a given set of call arguments.
22
+ //
23
+ // A custom `queryKey` is appended to the canister/function prefix rather than
24
+ // replacing it, matching `useActorQuery`. Used verbatim it would carry no
25
+ // canister id, so the entry would be invisible to the canister-scoped
26
+ // invalidation `ClientManager.updateAgent` runs on identity change and would
27
+ // keep serving the previous principal's data after sign-in or sign-out.
28
+ const buildQueryKey = useCallback((keyArgs) => reactor.generateQueryKey({ functionName, args: keyArgs, queryKey: customQueryKey }, callConfig),
29
+ // `canisterId` is mutable reactor state that `setCanisterId` can change,
30
+ // while `reactor` itself stays the same object — so it has to be a
31
+ // dependency in its own right or the key stays pinned to the old canister.
32
+ [
33
+ reactor,
34
+ reactor.canisterId?.toString(),
35
+ functionName,
36
+ callConfig,
37
+ customQueryKey,
38
+ ]);
39
+ const queryKey = useMemo(() => buildQueryKey(args), [buildQueryKey, args]);
24
40
  // ============================================================================
25
41
  // Query Implementation
26
42
  // ============================================================================
27
43
  const queryResult = useQuery({
28
44
  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
- },
45
+ // Callbacks deliberately do NOT live here: a queryFn runs once per fetch
46
+ // attempt, so `onError` fired on every retry (four times with the default
47
+ // QueryClient) and `onSuccess` never fired when data came from the cache
48
+ // or a deduped sibling. They are dispatched from the settled observer
49
+ // result below instead.
50
+ queryFn: () => reactor.callMethod({
51
+ functionName,
52
+ args,
53
+ callConfig,
54
+ }),
44
55
  enabled: isQuery && enabled,
45
56
  ...queryOptions,
46
57
  }, reactor.queryClient);
58
+ // Dispatch the query callbacks from the settled observer result, once per
59
+ // distinct outcome. TanStack v5 removed `onSuccess`/`onError` from useQuery
60
+ // for exactly this reason, so the settle timestamps are what identify a new
61
+ // result: they also advance for a cache hit on a fresh mount, which is the
62
+ // case that previously never notified at all.
63
+ const notifiedSuccessAt = useRef(undefined);
64
+ const notifiedErrorAt = useRef(undefined);
65
+ const { status, data, error, dataUpdatedAt, errorUpdatedAt } = queryResult;
66
+ useEffect(() => {
67
+ if (!isQuery)
68
+ return;
69
+ if (status === "success" && dataUpdatedAt !== notifiedSuccessAt.current) {
70
+ notifiedSuccessAt.current = dataUpdatedAt;
71
+ onSuccessRef.current?.(data);
72
+ }
73
+ }, [isQuery, status, data, dataUpdatedAt]);
74
+ useEffect(() => {
75
+ if (!isQuery)
76
+ return;
77
+ if (status === "error" && errorUpdatedAt !== notifiedErrorAt.current) {
78
+ notifiedErrorAt.current = errorUpdatedAt;
79
+ onErrorRef.current?.(error);
80
+ }
81
+ }, [isQuery, status, error, errorUpdatedAt]);
47
82
  // ============================================================================
48
83
  // Mutation Implementation
49
84
  // ============================================================================
@@ -58,7 +93,7 @@ export function useActorMethod({ reactor, functionName, args, callConfig, queryK
58
93
  return result;
59
94
  },
60
95
  onSuccess: (data) => {
61
- onSuccess?.(data);
96
+ onSuccessRef.current?.(data);
62
97
  // Invalidate specified queries after successful mutation
63
98
  if (invalidateQueries && invalidateQueries.length > 0) {
64
99
  invalidateQueries.forEach((key) => {
@@ -67,7 +102,7 @@ export function useActorMethod({ reactor, functionName, args, callConfig, queryK
67
102
  }
68
103
  },
69
104
  onError: (error) => {
70
- onError?.(error);
105
+ onErrorRef.current?.(error);
71
106
  },
72
107
  }, reactor.queryClient);
73
108
  // ============================================================================
@@ -77,9 +112,14 @@ export function useActorMethod({ reactor, functionName, args, callConfig, queryK
77
112
  if (isQuery) {
78
113
  // For queries, refetch with new args if provided
79
114
  if (callArgs !== undefined) {
115
+ // Key on the args actually being called. Reusing the hook's
116
+ // mount-time key would store this result under the previous args'
117
+ // entry — poisoning it for every other reader — and let fetchQuery
118
+ // dedupe onto an in-flight request for the old args, returning that
119
+ // response as though it answered this one.
80
120
  try {
81
121
  const result = await reactor.queryClient.fetchQuery({
82
- queryKey,
122
+ queryKey: buildQueryKey(callArgs),
83
123
  queryFn: () => reactor.callMethod({
84
124
  functionName,
85
125
  args: callArgs,
@@ -87,11 +127,16 @@ export function useActorMethod({ reactor, functionName, args, callConfig, queryK
87
127
  }),
88
128
  staleTime: 0,
89
129
  });
90
- onSuccess?.(result);
130
+ // Dispatched here rather than by the observer effect: this result
131
+ // lands under the called args' key, which the mounted observer (bound
132
+ // to the hook's own args) does not watch. That separation is also why
133
+ // this can no longer double-fire the way it did when both wrote to
134
+ // the same key.
135
+ onSuccessRef.current?.(result);
91
136
  return result;
92
137
  }
93
138
  catch (error) {
94
- onError?.(error);
139
+ onErrorRef.current?.(error);
95
140
  return undefined;
96
141
  }
97
142
  }
@@ -110,11 +155,9 @@ export function useActorMethod({ reactor, functionName, args, callConfig, queryK
110
155
  reactor,
111
156
  functionName,
112
157
  callConfig,
113
- queryKey,
158
+ buildQueryKey,
114
159
  queryResult,
115
160
  mutationResult,
116
- onSuccess,
117
- onError,
118
161
  ]);
119
162
  // ============================================================================
120
163
  // Reset Function
@@ -1 +1 @@
1
- {"version":3,"file":"useActorMethod.js","sourceRoot":"","sources":["../../src/hooks/useActorMethod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useActorMethod.js","sourceRoot":"","sources":["../../src/hooks/useActorMethod.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,14 @@ export interface UseActorMutationParameters<Service, Method extends FunctionName
5
5
  reactor: Reactor<Service, Transform>;
6
6
  functionName: Method;
7
7
  callConfig?: CallConfig;
8
- invalidateQueries?: QueryKey[];
8
+ /**
9
+ * Queries to invalidate upon successful mutation.
10
+ *
11
+ * `undefined` entries are skipped, so the common
12
+ * `[maybeQuery?.getQueryKey()]` idiom is safe when the optional query object
13
+ * is absent.
14
+ */
15
+ invalidateQueries?: (QueryKey | undefined)[];
9
16
  /**
10
17
  * Callback for canister-level business logic errors.
11
18
  * Called when the canister returns a Result { Err: E } variant.
@@ -1 +1 @@
1
- {"version":3,"file":"useActorMutation.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorMutation.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,EACT,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,OAAO,EACP,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAEhB,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,MAAM,WAAW,0BAA0B,CACzC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,CACzC,SAAQ,IAAI,CACZ,kBAAkB,CAChB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAC3C,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAC5C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CACxC,EACD,YAAY,CACb;IACC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC9B;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAChB,KAAK,EAAE,aAAa,CAClB,uBAAuB,CACrB,SAAS,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAClD,CAAC,SAAS,CAAC,CACb,EACD,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,KAC/C,IAAI,CAAA;CACV;AAED,MAAM,MAAM,sBAAsB,CAChC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,IACvC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;AAE3E,MAAM,MAAM,sBAAsB,CAChC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,IACvC,iBAAiB,CACnB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAC3C,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAC5C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CACxC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,gBAAgB,GAC3B,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,2GASC,0BAA0B,CAC3B,OAAO,EACP,MAAM,EACN,SAAS,CACV,KAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CA0DpD,CAAA"}
1
+ {"version":3,"file":"useActorMutation.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorMutation.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,EACT,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,OAAO,EACP,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAEhB,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,MAAM,WAAW,0BAA0B,CACzC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,CACzC,SAAQ,IAAI,CACZ,kBAAkB,CAChB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAC3C,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAC5C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CACxC,EACD,YAAY,CACb;IACC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAA;IAC5C;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAChB,KAAK,EAAE,aAAa,CAClB,uBAAuB,CACrB,SAAS,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAClD,CAAC,SAAS,CAAC,CACb,EACD,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,KAC/C,IAAI,CAAA;CACV;AAED,MAAM,MAAM,sBAAsB,CAChC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,IACvC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;AAE3E,MAAM,MAAM,sBAAsB,CAChC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,IACvC,iBAAiB,CACnB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAC3C,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAC5C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CACxC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,gBAAgB,GAC3B,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,2GASC,0BAA0B,CAC3B,OAAO,EACP,MAAM,EACN,SAAS,CACV,KAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CA0EpD,CAAA"}
@@ -1,4 +1,4 @@
1
- import { useMemo, useCallback } from "react";
1
+ import { useCallback } from "react";
2
2
  import { useMutation, } from "@tanstack/react-query";
3
3
  import { isCanisterError, } from "@ic-reactor/core";
4
4
  /**
@@ -27,7 +27,15 @@ export const useActorMutation = ({ reactor, functionName, invalidateQueries, onS
27
27
  const mutationFn = useCallback(async (args) => reactor.callMethod({ functionName, callConfig, args }), [reactor, functionName, callConfig]);
28
28
  const handleSuccess = useCallback(async (...params) => {
29
29
  if (invalidateQueries) {
30
- await Promise.all(invalidateQueries.map((queryKey) => reactor.queryClient.invalidateQueries({ queryKey })));
30
+ // Skip undefined entries. React Query reads `{ queryKey: undefined }`
31
+ // as "match everything", so a single undefined — which the natural
32
+ // `invalidateQueries: [maybeQuery?.getQueryKey()]` idiom produces
33
+ // whenever the optional query object is absent — would invalidate every
34
+ // query in the client, including an app's unrelated non-canister ones.
35
+ // `createMutation.invalidateAll` already filters the same way.
36
+ await Promise.all(invalidateQueries
37
+ .filter((queryKey) => queryKey !== undefined)
38
+ .map((queryKey) => reactor.queryClient.invalidateQueries({ queryKey })));
31
39
  }
32
40
  await onSuccess?.(...params);
33
41
  }, [reactor, invalidateQueries, onSuccess]);
@@ -37,14 +45,22 @@ export const useActorMutation = ({ reactor, functionName, invalidateQueries, onS
37
45
  }
38
46
  onError?.(error, variables, context, mutation);
39
47
  }, [onCanisterError, onError]);
40
- const mutationOptions = useMemo(() => ({
48
+ // Not memoized. The deps could only ever list the values destructured above,
49
+ // never the `options` rest bucket, so everything passed straight through —
50
+ // `onMutate`, `onSettled`, `retry`, `meta`, `gcTime` — was frozen at the first
51
+ // render: `useMutation` calls `observer.setOptions` from an effect keyed on
52
+ // the options identity, so a later render's closures never reached it. A
53
+ // component passing only `onSettled` would report the recipient selected at
54
+ // mount rather than at submit.
55
+ //
56
+ // `createMutation`'s own hook builds its options inline for the same reason.
57
+ // A fresh object per render costs nothing here: `setOptions` diffs the values
58
+ // rather than the reference.
59
+ return useMutation({
41
60
  ...options,
42
61
  mutationFn,
43
62
  onSuccess: handleSuccess,
44
63
  onError: handleError,
45
- }),
46
- // eslint-disable-next-line react-hooks/exhaustive-deps
47
- [mutationFn, handleSuccess, handleError]);
48
- return useMutation(mutationOptions, reactor.queryClient);
64
+ }, reactor.queryClient);
49
65
  };
50
66
  //# sourceMappingURL=useActorMutation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useActorMutation.js","sourceRoot":"","sources":["../../src/hooks/useActorMutation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EACL,WAAW,GAIZ,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAOL,eAAe,GAKhB,MAAM,kBAAkB,CAAA;AAkDzB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAI9B,EACA,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,eAAe,EACf,UAAU,EACV,GAAG,OAAO,EAKX,EAAsD,EAAE;IACvD,MAAM,UAAU,GAAG,WAAW,CAC5B,KAAK,EAAE,IAA6C,EAAE,EAAE,CACtD,OAAO,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EACxD,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CACpC,CAAA;IAED,MAAM,aAAa,GAAG,WAAW,CAC/B,KAAK,EACH,GAAG,MAQF,EACD,EAAE;QACF,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,OAAO,CAAC,GAAG,CACf,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACjC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,CACpD,CACF,CAAA;QACH,CAAC;QACD,MAAM,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,CAAA;IAC9B,CAAC,EACD,CAAC,OAAO,EAAE,iBAAiB,EAAE,SAAS,CAAC,CACxC,CAAA;IAED,MAAM,WAAW,GAAG,WAAW,CAC7B,CACE,KAAmD,EACnD,SAAkD,EAClD,OAAgB,EAChB,QAAiB,EACjB,EAAE;QACF,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,eAAe,EAAE,CAAC,KAAY,EAAE,SAAS,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAc,EAAE,QAAe,CAAC,CAAA;IAC9D,CAAC,EACD,CAAC,eAAe,EAAE,OAAO,CAAC,CAC3B,CAAA;IAED,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,OAAO;QACV,UAAU;QACV,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,WAAW;KACrB,CAAC;IACF,uDAAuD;IACvD,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,CACzC,CAAA;IAED,OAAO,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;AAC1D,CAAC,CAAA"}
1
+ {"version":3,"file":"useActorMutation.js","sourceRoot":"","sources":["../../src/hooks/useActorMutation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EACL,WAAW,GAIZ,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAOL,eAAe,GAKhB,MAAM,kBAAkB,CAAA;AAyDzB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAI9B,EACA,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,eAAe,EACf,UAAU,EACV,GAAG,OAAO,EAKX,EAAsD,EAAE;IACvD,MAAM,UAAU,GAAG,WAAW,CAC5B,KAAK,EAAE,IAA6C,EAAE,EAAE,CACtD,OAAO,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EACxD,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CACpC,CAAA;IAED,MAAM,aAAa,GAAG,WAAW,CAC/B,KAAK,EACH,GAAG,MAQF,EACD,EAAE;QACF,IAAI,iBAAiB,EAAE,CAAC;YACtB,sEAAsE;YACtE,mEAAmE;YACnE,kEAAkE;YAClE,wEAAwE;YACxE,uEAAuE;YACvE,+DAA+D;YAC/D,MAAM,OAAO,CAAC,GAAG,CACf,iBAAiB;iBACd,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC;iBAC5C,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAChB,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,CACpD,CACJ,CAAA;QACH,CAAC;QACD,MAAM,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,CAAA;IAC9B,CAAC,EACD,CAAC,OAAO,EAAE,iBAAiB,EAAE,SAAS,CAAC,CACxC,CAAA;IAED,MAAM,WAAW,GAAG,WAAW,CAC7B,CACE,KAAmD,EACnD,SAAkD,EAClD,OAAgB,EAChB,QAAiB,EACjB,EAAE;QACF,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,eAAe,EAAE,CAAC,KAAY,EAAE,SAAS,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAc,EAAE,QAAe,CAAC,CAAA;IAC9D,CAAC,EACD,CAAC,eAAe,EAAE,OAAO,CAAC,CAC3B,CAAA;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,+EAA+E;IAC/E,4EAA4E;IAC5E,yEAAyE;IACzE,4EAA4E;IAC5E,+BAA+B;IAC/B,EAAE;IACF,6EAA6E;IAC7E,8EAA8E;IAC9E,6BAA6B;IAC7B,OAAO,WAAW,CAChB;QACE,GAAG,OAAO;QACV,UAAU;QACV,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,WAAW;KACrB,EACD,OAAO,CAAC,WAAW,CACpB,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useActorQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorQuery.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAER,oBAAoB,EACpB,cAAc,EACf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,MAAM,WAAW,uBAAuB,CACtC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CACxE,SAAQ,IAAI,CACZ,oBAAoB,CAClB,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAC7D,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAC5C,QAAQ,EACR,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAC7D,QAAQ,CACT,EACD,UAAU,GAAG,SAAS,CACvB;IACC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IAC9C,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,MAAM,mBAAmB,CAC7B,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,IACtE,IAAI,CACN,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC7D,SAAS,CACV,CAAA;AAED,MAAM,MAAM,mBAAmB,CAC7B,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,IACtE,cAAc,CAAC,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;AAE1E;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EACxE,oFAOC,uBAAuB,CACxB,OAAO,EACP,MAAM,EACN,SAAS,EACT,QAAQ,CACT,KAAG,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAqB3D,CAAA"}
1
+ {"version":3,"file":"useActorQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorQuery.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAER,oBAAoB,EACpB,cAAc,EACf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,MAAM,WAAW,uBAAuB,CACtC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CACxE,SAAQ,IAAI,CACZ,oBAAoB,CAClB,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAC7D,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAC5C,QAAQ,EACR,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAC7D,QAAQ,CACT,EACD,UAAU,GAAG,SAAS,CACvB;IACC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IAC9C,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,MAAM,mBAAmB,CAC7B,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,IACtE,IAAI,CACN,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC7D,SAAS,CACV,CAAA;AAED,MAAM,MAAM,mBAAmB,CAC7B,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,IACtE,cAAc,CAAC,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;AAE1E;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EACxE,oFAOC,uBAAuB,CACxB,OAAO,EACP,MAAM,EACN,SAAS,EACT,QAAQ,CACT,KAAG,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CA+B3D,CAAA"}
@@ -25,7 +25,18 @@ export const useActorQuery = ({ reactor, functionName, args, callConfig, queryKe
25
25
  functionName,
26
26
  args,
27
27
  queryKey: defaultQueryKey,
28
- }), [reactor, callConfig, functionName, args, defaultQueryKey]);
28
+ }),
29
+ // `canisterId` is mutable reactor state that `setCanisterId` can change,
30
+ // while `reactor` itself stays the same object — so it has to be a
31
+ // dependency in its own right or the key stays pinned to the old canister.
32
+ [
33
+ reactor,
34
+ reactor.canisterId?.toString(),
35
+ callConfig,
36
+ functionName,
37
+ args,
38
+ defaultQueryKey,
39
+ ]);
29
40
  return useQuery({
30
41
  queryFn,
31
42
  ...options,
@@ -1 +1 @@
1
- {"version":3,"file":"useActorQuery.js","sourceRoot":"","sources":["../../src/hooks/useActorQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAEL,QAAQ,GAGT,MAAM,uBAAuB,CAAA;AAmD9B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAK3B,EACA,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,QAAQ,EAAE,eAAe,EACzB,GAAG,OAAO,EAMX,EAA6D,EAAE;IAC9D,+DAA+D;IAC/D,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CACnC,GAAG,EAAE,CACH,OAAO,CAAC,eAAe,CAAS;QAC9B,UAAU;QACV,YAAY;QACZ,IAAI;QACJ,QAAQ,EAAE,eAAe;KAC1B,CAAC,EACJ,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,CAAC,CAC3D,CAAA;IAED,OAAO,QAAQ,CACb;QACE,OAAO;QACP,GAAG,OAAO;QACV,QAAQ;KACT,EACD,OAAO,CAAC,WAAW,CACpB,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"useActorQuery.js","sourceRoot":"","sources":["../../src/hooks/useActorQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAEL,QAAQ,GAGT,MAAM,uBAAuB,CAAA;AAmD9B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAK3B,EACA,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,QAAQ,EAAE,eAAe,EACzB,GAAG,OAAO,EAMX,EAA6D,EAAE;IAC9D,+DAA+D;IAC/D,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CACnC,GAAG,EAAE,CACH,OAAO,CAAC,eAAe,CAAS;QAC9B,UAAU;QACV,YAAY;QACZ,IAAI;QACJ,QAAQ,EAAE,eAAe;KAC1B,CAAC;IACJ,yEAAyE;IACzE,mEAAmE;IACnE,2EAA2E;IAC3E;QACE,OAAO;QACP,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE;QAC9B,UAAU;QACV,YAAY;QACZ,IAAI;QACJ,eAAe;KAChB,CACF,CAAA;IAED,OAAO,QAAQ,CACb;QACE,OAAO;QACP,GAAG,OAAO;QACV,QAAQ;KACT,EACD,OAAO,CAAC,WAAW,CACpB,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useActorSuspenseInfiniteQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorSuspenseInfiniteQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useActorSuspenseInfiniteQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorSuspenseInfiniteQuery.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { useMemo, useCallback } from "react";
2
2
  import { useSuspenseInfiniteQuery, } from "@tanstack/react-query";
3
- import { normalizeQueryData } from "../utils.js";
3
+ import { mergeFactoryQueryKey, normalizeQueryData } from "../utils.js";
4
4
  /**
5
5
  * Hook for executing suspense-enabled infinite/paginated query calls on a canister.
6
6
  *
@@ -17,7 +17,26 @@ export const useActorSuspenseInfiniteQuery = ({ reactor, functionName, getArgs,
17
17
  // Always pass queryKey through generateQueryKey so it is merged with the
18
18
  // reactor/function identity. Using the custom key verbatim would cause cache
19
19
  // collisions if two different actors or methods share the same key string.
20
- const baseQueryKey = useMemo(() => reactor.generateQueryKey({ functionName, queryKey }, callConfig), [queryKey, reactor, functionName, callConfig]);
20
+ const baseQueryKey = useMemo(() => reactor.generateQueryKey({
21
+ functionName,
22
+ // Fold the call arguments into the key. They live in the `getArgs`
23
+ // closure rather than in the config, so without this two hooks on the
24
+ // same method with different arguments share one cache entry and
25
+ // serve each other's pages.
26
+ queryKey: mergeFactoryQueryKey(queryKey, undefined, getArgs(options.initialPageParam)),
27
+ }, callConfig), [
28
+ queryKey,
29
+ reactor,
30
+ // `canisterId` is mutable reactor state that `setCanisterId` can change,
31
+ // while `reactor` itself stays the same object — so it has to be a
32
+ // dependency in its own right or the key stays pinned to the old canister
33
+ // while the queryFn already calls the new one.
34
+ reactor.canisterId?.toString(),
35
+ functionName,
36
+ callConfig,
37
+ getArgs,
38
+ options.initialPageParam,
39
+ ]);
21
40
  // Memoize queryFn to prevent recreation on every render
22
41
  const queryFn = useCallback(async ({ pageParam }) => {
23
42
  const args = getArgs(pageParam);
@@ -1 +1 @@
1
- {"version":3,"file":"useActorSuspenseInfiniteQuery.js","sourceRoot":"","sources":["../../src/hooks/useActorSuspenseInfiniteQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAEL,wBAAwB,GAIzB,MAAM,uBAAuB,CAAA;AAW9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AA0EhD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAK3C,EACA,OAAO,EACP,YAAY,EACZ,OAAO,EACP,UAAU,EACV,QAAQ,EACR,GAAG,OAAO,EAMX,EAKC,EAAE;IACF,yEAAyE;IACzE,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,UAAU,CAAC,EACtE,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAC9C,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,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;YACtC,YAAY;YACZ,IAAI;YACJ,UAAU;SACX,CAAC,CAAA;QACF,OAAO,kBAAkB,CACvB,MAAqD,CACtD,CAAA;IACH,CAAC,EACD,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAC7C,CAAA;IAED,OAAO,wBAAwB,CAC7B;QACE,QAAQ,EAAE,YAAY;QACtB,OAAO;QACP,GAAG,OAAO;KACJ,EACR,OAAO,CAAC,WAAW,CAMpB,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"useActorSuspenseInfiniteQuery.js","sourceRoot":"","sources":["../../src/hooks/useActorSuspenseInfiniteQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAEL,wBAAwB,GAIzB,MAAM,uBAAuB,CAAA;AAW9B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AA0EtE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAK3C,EACA,OAAO,EACP,YAAY,EACZ,OAAO,EACP,UAAU,EACV,QAAQ,EACR,GAAG,OAAO,EAMX,EAKC,EAAE;IACF,yEAAyE;IACzE,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CACH,OAAO,CAAC,gBAAgB,CACtB;QACE,YAAY;QACZ,mEAAmE;QACnE,sEAAsE;QACtE,iEAAiE;QACjE,4BAA4B;QAC5B,QAAQ,EAAE,oBAAoB,CAC5B,QAAQ,EACR,SAAS,EACT,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAClC;KACF,EACD,UAAU,CACX,EACH;QACE,QAAQ;QACR,OAAO;QACP,yEAAyE;QACzE,mEAAmE;QACnE,0EAA0E;QAC1E,+CAA+C;QAC/C,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE;QAC9B,YAAY;QACZ,UAAU;QACV,OAAO;QACP,OAAO,CAAC,gBAAgB;KACzB,CACF,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,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;YACtC,YAAY;YACZ,IAAI;YACJ,UAAU;SACX,CAAC,CAAA;QACF,OAAO,kBAAkB,CACvB,MAAqD,CACtD,CAAA;IACH,CAAC,EACD,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAC7C,CAAA;IAED,OAAO,wBAAwB,CAC7B;QACE,QAAQ,EAAE,YAAY;QACtB,OAAO;QACP,GAAG,OAAO;KACJ,EACR,OAAO,CAAC,WAAW,CAMpB,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useActorSuspenseQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorSuspenseQuery.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAER,oBAAoB,EACpB,sBAAsB,EAEvB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,MAAM,WAAW,+BAA+B,CAC9C,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CACxE,SAAQ,IAAI,CACZ,oBAAoB,CAClB,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAC7D,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAC5C,QAAQ,EACR,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAC7D,QAAQ,CACT,EACD,UAAU,GAAG,SAAS,CACvB;IACC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IAC9C,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,MAAM,2BAA2B,CACrC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,IACtE,IAAI,CACN,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,EACrE,SAAS,CACV,CAAA;AAED,MAAM,MAAM,2BAA2B,CACrC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,IACtE,sBAAsB,CACxB,QAAQ,EACR,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAC7C,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EACxE,oFAOC,+BAA+B,CAChC,OAAO,EACP,MAAM,EACN,SAAS,EACT,QAAQ,CACT,KAAG,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAyBnE,CAAA"}
1
+ {"version":3,"file":"useActorSuspenseQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorSuspenseQuery.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAER,oBAAoB,EACpB,sBAAsB,EAEvB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,MAAM,WAAW,+BAA+B,CAC9C,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CACxE,SAAQ,IAAI,CACZ,oBAAoB,CAClB,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAC7D,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAC5C,QAAQ,EACR,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAC7D,QAAQ,CACT,EACD,UAAU,GAAG,SAAS,CACvB;IACC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IAC9C,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,MAAM,2BAA2B,CACrC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,IACtE,IAAI,CACN,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,EACrE,SAAS,CACV,CAAA;AAED,MAAM,MAAM,2BAA2B,CACrC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,IACtE,sBAAsB,CACxB,QAAQ,EACR,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAC7C,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EACxE,oFAOC,+BAA+B,CAChC,OAAO,EACP,MAAM,EACN,SAAS,EACT,QAAQ,CACT,KAAG,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAmCnE,CAAA"}
@@ -25,7 +25,18 @@ export const useActorSuspenseQuery = ({ reactor, functionName, args, callConfig,
25
25
  functionName,
26
26
  args,
27
27
  queryKey: defaultQueryKey,
28
- }), [reactor, callConfig, functionName, args, defaultQueryKey]);
28
+ }),
29
+ // `canisterId` is mutable reactor state that `setCanisterId` can change,
30
+ // while `reactor` itself stays the same object — so it has to be a
31
+ // dependency in its own right or the key stays pinned to the old canister.
32
+ [
33
+ reactor,
34
+ reactor.canisterId?.toString(),
35
+ callConfig,
36
+ functionName,
37
+ args,
38
+ defaultQueryKey,
39
+ ]);
29
40
  return useSuspenseQuery({
30
41
  // Suspense queries don't support skipToken, so cast the queryFn
31
42
  queryFn: queryFn,
@@ -1 +1 @@
1
- {"version":3,"file":"useActorSuspenseQuery.js","sourceRoot":"","sources":["../../src/hooks/useActorSuspenseQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAEL,gBAAgB,GAIjB,MAAM,uBAAuB,CAAA;AAsD9B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAKnC,EACA,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,QAAQ,EAAE,eAAe,EACzB,GAAG,OAAO,EAMX,EAAqE,EAAE;IACtE,+DAA+D;IAC/D,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CACnC,GAAG,EAAE,CACH,OAAO,CAAC,eAAe,CAAS;QAC9B,UAAU;QACV,YAAY;QACZ,IAAI;QACJ,QAAQ,EAAE,eAAe;KAC1B,CAAC,EACJ,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,CAAC,CAC3D,CAAA;IAED,OAAO,gBAAgB,CACrB;QACE,gEAAgE;QAChE,OAAO,EAAE,OAGR;QACD,GAAG,OAAO;QACV,QAAQ;KACT,EACD,OAAO,CAAC,WAAW,CACpB,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"useActorSuspenseQuery.js","sourceRoot":"","sources":["../../src/hooks/useActorSuspenseQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAEL,gBAAgB,GAIjB,MAAM,uBAAuB,CAAA;AAsD9B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAKnC,EACA,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,QAAQ,EAAE,eAAe,EACzB,GAAG,OAAO,EAMX,EAAqE,EAAE;IACtE,+DAA+D;IAC/D,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CACnC,GAAG,EAAE,CACH,OAAO,CAAC,eAAe,CAAS;QAC9B,UAAU;QACV,YAAY;QACZ,IAAI;QACJ,QAAQ,EAAE,eAAe;KAC1B,CAAC;IACJ,yEAAyE;IACzE,mEAAmE;IACnE,2EAA2E;IAC3E;QACE,OAAO;QACP,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE;QAC9B,UAAU;QACV,YAAY;QACZ,IAAI;QACJ,eAAe;KAChB,CACF,CAAA;IAED,OAAO,gBAAgB,CACrB;QACE,gEAAgE;QAChE,OAAO,EAAE,OAGR;QACD,GAAG,OAAO;QACV,QAAQ;KACT,EACD,OAAO,CAAC,WAAW,CACpB,CAAA;AACH,CAAC,CAAA"}
package/dist/types.d.ts CHANGED
@@ -182,8 +182,14 @@ export interface MutationConfig<Service = BaseActor, Method extends FunctionName
182
182
  functionName: Method;
183
183
  /** Call configuration for the actor method */
184
184
  callConfig?: CallConfig;
185
- /** Queries to invalidate upon successful mutation */
186
- invalidateQueries?: QueryKey[];
185
+ /**
186
+ * Queries to invalidate upon successful mutation.
187
+ *
188
+ * `undefined` entries are skipped, so the common
189
+ * `[maybeQuery?.getQueryKey()]` idiom is safe when the optional query object
190
+ * is absent.
191
+ */
192
+ invalidateQueries?: (QueryKey | undefined)[];
187
193
  /**
188
194
  * Callback for canister-level business logic errors.
189
195
  * Called when the canister returns a Result { Err: E } variant.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -19,11 +19,33 @@ export declare const normalizeQueryData: <T>(value: T) => ReactorQueryData<T>;
19
19
  */
20
20
  export declare function mergeFactoryQueryKey(baseQueryKey?: QueryKey, callQueryKey?: QueryKey, keyArgs?: unknown): QueryKey | undefined;
21
21
  /**
22
- * Build a chained select function that first applies the config-level select
23
- * (if any) and then the hook-level select (if any).
22
+ * Build a chained select that applies the config-level select (if any) and then
23
+ * the hook-level select (if any).
24
24
  *
25
- * This enables `createQuery` / `createSuspenseQuery` to support two-level
26
- * select chaining without duplicating the logic.
25
+ * Returns the caller's own function untouched when only one of the two is
26
+ * present, and `undefined` when neither is — allocating a wrapper only for the
27
+ * genuinely chained case. Identity matters here: `QueryObserver` memoizes a
28
+ * select result on `options.select === previousSelectFn`, so a wrapper rebuilt
29
+ * on every render defeats that check. The select then re-runs each render, and
30
+ * for a select returning a non-plain value (a `Map`, a `Date`, a `Principal`)
31
+ * `replaceEqualDeep` cannot structurally share the result either, so `data`
32
+ * gets a fresh reference every render and a `useEffect([data])` that sets state
33
+ * becomes an unbounded loop.
34
+ *
35
+ * Callers should still memoize the result, since the chained case allocates.
36
+ */
37
+ export declare function buildChainedSelect<TData, TSelected, TFinal = TSelected>(configSelect: ((data: TData) => TSelected) | undefined, hookSelect: ((data: TSelected) => TFinal) | undefined): ((rawData: TData) => TSelected | TFinal) | undefined;
38
+ /**
39
+ * Smallest useful LRU: a `Map` already iterates in insertion order, so
40
+ * re-inserting on read is enough to track recency.
41
+ *
42
+ * Eviction is safe — it costs memoization, never correctness. A query object is
43
+ * a closure over the reactor and config, so one rebuilt after eviction behaves
44
+ * identically; only its reference identity differs.
27
45
  */
28
- export declare function buildChainedSelect<TData, TSelected, TFinal = TSelected>(configSelect: ((data: TData) => TSelected) | undefined, hookSelect: ((data: TSelected) => TFinal) | undefined): (rawData: TData) => TSelected | TFinal;
46
+ export declare function createBoundedCache<V>(limit?: number): {
47
+ get(key: string): V | undefined;
48
+ set(key: string, value: V): void;
49
+ readonly size: number;
50
+ };
29
51
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGxD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,kCAAkC,CAAA;AAEzE,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,gBAAgB,CAAC,CAAC,CACN,CAAA;AAE7D;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,CAAC,EAAE,QAAQ,EACvB,YAAY,CAAC,EAAE,QAAQ,EACvB,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ,GAAG,SAAS,CAgBtB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EACrE,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,GAAG,SAAS,EACtD,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC,GAAG,SAAS,GACpD,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,GAAG,MAAM,CAOxC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGxD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,kCAAkC,CAAA;AAEzE,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,gBAAgB,CAAC,CAAC,CACN,CAAA;AAE7D;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,CAAC,EAAE,QAAQ,EACvB,YAAY,CAAC,EAAE,QAAQ,EACvB,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ,GAAG,SAAS,CAgBtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EACrE,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,GAAG,SAAS,EACtD,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC,GAAG,SAAS,GACpD,CAAC,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,GAAG,MAAM,CAAC,GAAG,SAAS,CAStD;AAaD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,GAAE,MAA4B;aAI5D,MAAM,GAAG,CAAC,GAAG,SAAS;aAQtB,MAAM,SAAS,CAAC,GAAG,IAAI;mBAQpB,MAAM;EAIrB"}