@ic-reactor/react 3.0.18-beta.0 → 3.1.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/README.md +72 -4
- package/dist/createInfiniteQuery.d.ts +23 -10
- package/dist/createInfiniteQuery.d.ts.map +1 -1
- package/dist/createInfiniteQuery.js +24 -3
- package/dist/createInfiniteQuery.js.map +1 -1
- package/dist/createMutation.d.ts.map +1 -1
- package/dist/createMutation.js +11 -1
- package/dist/createMutation.js.map +1 -1
- package/dist/createSuspenseInfiniteQuery.d.ts +29 -5
- package/dist/createSuspenseInfiniteQuery.d.ts.map +1 -1
- package/dist/createSuspenseInfiniteQuery.js +31 -3
- package/dist/createSuspenseInfiniteQuery.js.map +1 -1
- package/dist/hooks/useActorMethod.d.ts.map +1 -1
- package/dist/hooks/useActorMethod.js +1 -0
- package/dist/hooks/useActorMethod.js.map +1 -1
- package/package.json +6 -6
- package/src/createInfiniteQuery.ts +76 -25
- package/src/createMutation.ts +15 -1
- package/src/createSuspenseInfiniteQuery.ts +105 -27
- package/src/hooks/useActorMethod.ts +1 -0
package/README.md
CHANGED
|
@@ -210,6 +210,10 @@ const { data, fetchNextPage, hasNextPage } = useActorInfiniteQuery({
|
|
|
210
210
|
})
|
|
211
211
|
```
|
|
212
212
|
|
|
213
|
+
`createInfiniteQuery(...)` and `createInfiniteQueryFactory(...)` support standard
|
|
214
|
+
TanStack Query infinite-query options at the create level, including
|
|
215
|
+
`refetchInterval`, `refetchOnMount`, `refetchOnWindowFocus`, `retry`, and `gcTime`.
|
|
216
|
+
|
|
213
217
|
## Mutation Examples
|
|
214
218
|
|
|
215
219
|
### Basic Mutation
|
|
@@ -257,10 +261,74 @@ export const getBalance = createSuspenseQueryFactory(backend, {
|
|
|
257
261
|
select: (balance) => `${balance} tokens`,
|
|
258
262
|
})
|
|
259
263
|
|
|
260
|
-
// In component -
|
|
261
|
-
const
|
|
262
|
-
|
|
264
|
+
// In component - create the query instance with args at call time
|
|
265
|
+
const balanceQuery = getBalance([{ owner: userPrincipal, subaccount: [] }])
|
|
266
|
+
const { data } = balanceQuery.useSuspenseQuery()
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### Infinite Query Factory (Route/Search Params Safe)
|
|
270
|
+
|
|
271
|
+
Use `getKeyArgs` in the factory config to derive a stable logical identity from
|
|
272
|
+
the first-page args, and keep pagination cursors inside `getArgs(pageParam)`.
|
|
273
|
+
This prevents cache collisions when loaders rerun with different search params.
|
|
274
|
+
|
|
275
|
+
```tsx
|
|
276
|
+
import { createInfiniteQueryFactory } from "@ic-reactor/react"
|
|
277
|
+
|
|
278
|
+
type TodoSearch = {
|
|
279
|
+
filter: "all" | "active" | "completed"
|
|
280
|
+
q: string
|
|
281
|
+
sort: "newest" | "oldest"
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export const makeTodoListQuery = createInfiniteQueryFactory(todoReactor, {
|
|
285
|
+
functionName: "list_todos",
|
|
286
|
+
initialPageParam: 0,
|
|
287
|
+
getKeyArgs: (args) => {
|
|
288
|
+
const [request] = args
|
|
289
|
+
return [
|
|
290
|
+
{
|
|
291
|
+
filter: request.filter,
|
|
292
|
+
q: request.q,
|
|
293
|
+
sort: request.sort,
|
|
294
|
+
},
|
|
295
|
+
]
|
|
296
|
+
},
|
|
297
|
+
getNextPageParam: (lastPage) => lastPage.nextCursor,
|
|
263
298
|
})
|
|
299
|
+
|
|
300
|
+
// TanStack Router loader/search-param flow
|
|
301
|
+
export async function loader({ context, deps }: any) {
|
|
302
|
+
const search = deps.search as TodoSearch
|
|
303
|
+
|
|
304
|
+
const todosQuery = makeTodoListQuery((cursor) => [
|
|
305
|
+
{
|
|
306
|
+
cursor,
|
|
307
|
+
limit: 20,
|
|
308
|
+
filter: search.filter,
|
|
309
|
+
q: search.q,
|
|
310
|
+
sort: search.sort,
|
|
311
|
+
},
|
|
312
|
+
])
|
|
313
|
+
|
|
314
|
+
await todosQuery.fetch()
|
|
315
|
+
return { queryKey: todosQuery.getQueryKey() }
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
function TodosPage({ search }: { search: TodoSearch }) {
|
|
319
|
+
const todosQuery = makeTodoListQuery((cursor) => [
|
|
320
|
+
{
|
|
321
|
+
cursor,
|
|
322
|
+
limit: 20,
|
|
323
|
+
filter: search.filter,
|
|
324
|
+
q: search.q,
|
|
325
|
+
sort: search.sort,
|
|
326
|
+
},
|
|
327
|
+
])
|
|
328
|
+
|
|
329
|
+
const { data, fetchNextPage, hasNextPage } = todosQuery.useInfiniteQuery()
|
|
330
|
+
return null
|
|
331
|
+
}
|
|
264
332
|
```
|
|
265
333
|
|
|
266
334
|
## Advanced: Direct Reactor Usage
|
|
@@ -311,7 +379,7 @@ import {
|
|
|
311
379
|
|
|
312
380
|
## Documentation
|
|
313
381
|
|
|
314
|
-
For comprehensive guides and API reference, visit the [documentation site](https://
|
|
382
|
+
For comprehensive guides and API reference, visit the [documentation site](https://ic-reactor.b3pay.net/v3).
|
|
315
383
|
|
|
316
384
|
## License
|
|
317
385
|
|
|
@@ -22,15 +22,21 @@
|
|
|
22
22
|
* postsQuery.invalidate()
|
|
23
23
|
*/
|
|
24
24
|
import type { Reactor, FunctionName, ReactorArgs, BaseActor, TransformKey, ReactorReturnOk, ReactorReturnErr } from "@ic-reactor/core";
|
|
25
|
-
import { QueryKey, InfiniteData, UseInfiniteQueryResult, UseInfiniteQueryOptions } from "@tanstack/react-query";
|
|
25
|
+
import { QueryKey, InfiniteData, UseInfiniteQueryResult, UseInfiniteQueryOptions, InfiniteQueryObserverOptions } from "@tanstack/react-query";
|
|
26
26
|
import { CallConfig } from "@icp-sdk/core/agent";
|
|
27
27
|
import { NoInfer } from "./types";
|
|
28
|
+
type InfiniteQueryFactoryFn<A, M extends FunctionName<A>, T extends TransformKey, TPageParam, TSelected> = {
|
|
29
|
+
(getArgs: (pageParam: TPageParam) => ReactorArgs<A, M, T>): InfiniteQueryResult<InfiniteQueryPageData<A, M, T>, TPageParam, TSelected, InfiniteQueryError<A, M, T>>;
|
|
30
|
+
};
|
|
28
31
|
/** The raw page data type returned by the query function */
|
|
29
32
|
export type InfiniteQueryPageData<A = BaseActor, M extends FunctionName<A> = FunctionName<A>, T extends TransformKey = "candid"> = ReactorReturnOk<A, M, T>;
|
|
30
33
|
/** The error type for infinite queries */
|
|
31
34
|
export type InfiniteQueryError<A = BaseActor, M extends FunctionName<A> = FunctionName<A>, T extends TransformKey = "candid"> = ReactorReturnErr<A, M, T>;
|
|
32
35
|
/**
|
|
33
36
|
* Configuration for createActorInfiniteQuery.
|
|
37
|
+
* Extends InfiniteQueryObserverOptions to accept standard TanStack Query
|
|
38
|
+
* infinite-query options at the create level (e.g. refetchInterval,
|
|
39
|
+
* refetchOnMount, refetchOnWindowFocus, retry, gcTime, networkMode).
|
|
34
40
|
*
|
|
35
41
|
* @template A - The actor interface type
|
|
36
42
|
* @template M - The method name on the actor
|
|
@@ -38,7 +44,7 @@ export type InfiniteQueryError<A = BaseActor, M extends FunctionName<A> = Functi
|
|
|
38
44
|
* @template TPageParam - The type of the page parameter
|
|
39
45
|
* @template TSelected - The type returned after select transformation
|
|
40
46
|
*/
|
|
41
|
-
export interface InfiniteQueryConfig<A = BaseActor, M extends FunctionName<A> = FunctionName<A>, T extends TransformKey = "candid", TPageParam = unknown, TSelected = InfiniteData<InfiniteQueryPageData<A, M, T>, TPageParam>> {
|
|
47
|
+
export interface InfiniteQueryConfig<A = BaseActor, M extends FunctionName<A> = FunctionName<A>, T extends TransformKey = "candid", TPageParam = unknown, TSelected = InfiniteData<InfiniteQueryPageData<A, M, T>, TPageParam>> extends Omit<InfiniteQueryObserverOptions<InfiniteQueryPageData<A, M, T>, InfiniteQueryError<A, M, T>, TSelected, QueryKey, TPageParam>, "queryKey" | "queryFn"> {
|
|
42
48
|
/** The method to call on the canister */
|
|
43
49
|
functionName: M;
|
|
44
50
|
/** Call configuration for the actor method */
|
|
@@ -53,17 +59,19 @@ export interface InfiniteQueryConfig<A = BaseActor, M extends FunctionName<A> =
|
|
|
53
59
|
getNextPageParam: (lastPage: InfiniteQueryPageData<A, M, T>, allPages: InfiniteQueryPageData<A, M, T>[], lastPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined | null;
|
|
54
60
|
/** Function to determine previous page parameter (for bi-directional) */
|
|
55
61
|
getPreviousPageParam?: (firstPage: InfiniteQueryPageData<A, M, T>, allPages: InfiniteQueryPageData<A, M, T>[], firstPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined | null;
|
|
56
|
-
/** Maximum number of pages to keep in cache */
|
|
57
|
-
maxPages?: number;
|
|
58
|
-
/** How long data stays fresh before becoming stale (default: 5 min) */
|
|
59
|
-
staleTime?: number;
|
|
60
|
-
/** Transform the raw InfiniteData result before returning */
|
|
61
|
-
select?: (data: InfiniteData<InfiniteQueryPageData<A, M, T>, TPageParam>) => TSelected;
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
64
|
* Configuration for createActorInfiniteQueryFactory (without initialPageParam, getArgs determined at call time).
|
|
65
65
|
*/
|
|
66
|
-
export type InfiniteQueryFactoryConfig<A = BaseActor, M extends FunctionName<A> = FunctionName<A>, T extends TransformKey = "candid", TPageParam = unknown, TSelected = InfiniteData<InfiniteQueryPageData<A, M, T>, TPageParam>> = Omit<InfiniteQueryConfig<A, M, T, TPageParam, TSelected>, "getArgs"
|
|
66
|
+
export type InfiniteQueryFactoryConfig<A = BaseActor, M extends FunctionName<A> = FunctionName<A>, T extends TransformKey = "candid", TPageParam = unknown, TSelected = InfiniteData<InfiniteQueryPageData<A, M, T>, TPageParam>> = Omit<InfiniteQueryConfig<A, M, T, TPageParam, TSelected>, "getArgs"> & {
|
|
67
|
+
/**
|
|
68
|
+
* Optional key-args derivation for factory calls.
|
|
69
|
+
* Receives the resolved args from `getArgs(initialPageParam)` and should return
|
|
70
|
+
* a stable serializable representation of the logical query identity
|
|
71
|
+
* (typically excluding pagination/cursor fields).
|
|
72
|
+
*/
|
|
73
|
+
getKeyArgs?: (args: ReactorArgs<A, M, T>) => unknown;
|
|
74
|
+
};
|
|
67
75
|
/**
|
|
68
76
|
* useInfiniteQuery hook with chained select support.
|
|
69
77
|
*/
|
|
@@ -118,6 +126,10 @@ export declare function createInfiniteQuery<A, T extends TransformKey, M extends
|
|
|
118
126
|
* const getPostsQuery = createActorInfiniteQueryFactory(reactor, {
|
|
119
127
|
* functionName: "get_posts",
|
|
120
128
|
* initialPageParam: 0,
|
|
129
|
+
* getKeyArgs: (args) => {
|
|
130
|
+
* const [{ userId }] = args
|
|
131
|
+
* return [{ userId }]
|
|
132
|
+
* },
|
|
121
133
|
* getNextPageParam: (lastPage) => lastPage.nextCursor,
|
|
122
134
|
* })
|
|
123
135
|
*
|
|
@@ -125,5 +137,6 @@ export declare function createInfiniteQuery<A, T extends TransformKey, M extends
|
|
|
125
137
|
* const userPostsQuery = getPostsQuery((cursor) => [{ userId, cursor, limit: 10 }])
|
|
126
138
|
* const { data, fetchNextPage } = userPostsQuery.useInfiniteQuery()
|
|
127
139
|
*/
|
|
128
|
-
export declare function createInfiniteQueryFactory<A, T extends TransformKey, M extends FunctionName<A> = FunctionName<A>, TPageParam = unknown, TSelected = InfiniteData<InfiniteQueryPageData<A, M, T>, TPageParam>>(reactor: Reactor<A, T>, config: InfiniteQueryFactoryConfig<NoInfer<A>, M, T, TPageParam, TSelected>):
|
|
140
|
+
export declare function createInfiniteQueryFactory<A, T extends TransformKey, M extends FunctionName<A> = FunctionName<A>, TPageParam = unknown, TSelected = InfiniteData<InfiniteQueryPageData<A, M, T>, TPageParam>>(reactor: Reactor<A, T>, config: InfiniteQueryFactoryConfig<NoInfer<A>, M, T, TPageParam, TSelected>): InfiniteQueryFactoryFn<A, M, T, TPageParam, TSelected>;
|
|
141
|
+
export {};
|
|
129
142
|
//# sourceMappingURL=createInfiniteQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createInfiniteQuery.d.ts","sourceRoot":"","sources":["../src/createInfiniteQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,SAAS,EACT,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,QAAQ,EAER,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"createInfiniteQuery.d.ts","sourceRoot":"","sources":["../src/createInfiniteQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,11 +22,22 @@
|
|
|
22
22
|
* postsQuery.invalidate()
|
|
23
23
|
*/
|
|
24
24
|
import { useInfiniteQuery, } from "@tanstack/react-query";
|
|
25
|
+
const FACTORY_KEY_ARGS_QUERY_KEY = "__ic_reactor_factory_key_args";
|
|
26
|
+
const mergeFactoryQueryKey = (baseQueryKey, keyArgs) => {
|
|
27
|
+
const merged = [];
|
|
28
|
+
if (baseQueryKey) {
|
|
29
|
+
merged.push(...baseQueryKey);
|
|
30
|
+
}
|
|
31
|
+
if (keyArgs !== undefined) {
|
|
32
|
+
merged.push({ [FACTORY_KEY_ARGS_QUERY_KEY]: keyArgs });
|
|
33
|
+
}
|
|
34
|
+
return merged.length > 0 ? merged : undefined;
|
|
35
|
+
};
|
|
25
36
|
// ============================================================================
|
|
26
37
|
// Internal Implementation
|
|
27
38
|
// ============================================================================
|
|
28
39
|
const createInfiniteQueryImpl = (reactor, config) => {
|
|
29
|
-
const { functionName, callConfig, queryKey: customQueryKey, initialPageParam, getArgs, getNextPageParam, getPreviousPageParam, maxPages, staleTime = 5 * 60 * 1000, select, } = config;
|
|
40
|
+
const { functionName, callConfig, queryKey: customQueryKey, initialPageParam, getArgs, getNextPageParam, getPreviousPageParam, maxPages, staleTime = 5 * 60 * 1000, select, ...rest } = config;
|
|
30
41
|
// Get query key from actor manager
|
|
31
42
|
const getQueryKey = () => {
|
|
32
43
|
return reactor.generateQueryKey({
|
|
@@ -83,6 +94,7 @@ const createInfiniteQueryImpl = (reactor, config) => {
|
|
|
83
94
|
getPreviousPageParam,
|
|
84
95
|
maxPages,
|
|
85
96
|
staleTime,
|
|
97
|
+
...rest,
|
|
86
98
|
...options,
|
|
87
99
|
select: chainedSelect,
|
|
88
100
|
}, reactor.queryClient);
|
|
@@ -142,6 +154,10 @@ export function createInfiniteQuery(reactor, config) {
|
|
|
142
154
|
* const getPostsQuery = createActorInfiniteQueryFactory(reactor, {
|
|
143
155
|
* functionName: "get_posts",
|
|
144
156
|
* initialPageParam: 0,
|
|
157
|
+
* getKeyArgs: (args) => {
|
|
158
|
+
* const [{ userId }] = args
|
|
159
|
+
* return [{ userId }]
|
|
160
|
+
* },
|
|
145
161
|
* getNextPageParam: (lastPage) => lastPage.nextCursor,
|
|
146
162
|
* })
|
|
147
163
|
*
|
|
@@ -150,11 +166,16 @@ export function createInfiniteQuery(reactor, config) {
|
|
|
150
166
|
* const { data, fetchNextPage } = userPostsQuery.useInfiniteQuery()
|
|
151
167
|
*/
|
|
152
168
|
export function createInfiniteQueryFactory(reactor, config) {
|
|
153
|
-
|
|
169
|
+
const factory = (getArgs) => {
|
|
170
|
+
const initialArgs = getArgs(config.initialPageParam);
|
|
171
|
+
const keyArgs = config.getKeyArgs?.(initialArgs) ?? initialArgs;
|
|
172
|
+
const queryKey = mergeFactoryQueryKey(config.queryKey, keyArgs);
|
|
154
173
|
return createInfiniteQueryImpl(reactor, {
|
|
155
|
-
...config,
|
|
174
|
+
...(({ getKeyArgs: _getKeyArgs, ...rest }) => rest)(config),
|
|
175
|
+
queryKey,
|
|
156
176
|
getArgs,
|
|
157
177
|
});
|
|
158
178
|
};
|
|
179
|
+
return factory;
|
|
159
180
|
}
|
|
160
181
|
//# sourceMappingURL=createInfiniteQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createInfiniteQuery.js","sourceRoot":"","sources":["../src/createInfiniteQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAWH,OAAO,EAEL,gBAAgB,
|
|
1
|
+
{"version":3,"file":"createInfiniteQuery.js","sourceRoot":"","sources":["../src/createInfiniteQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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;AAqIhB,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"}
|
package/dist/createMutation.js
CHANGED
|
@@ -22,17 +22,27 @@ const createMutationImpl = (reactor, config) => {
|
|
|
22
22
|
const { functionName, callConfig, invalidateQueries: factoryInvalidateQueries, onSuccess: factoryOnSuccess, onCanisterError: factoryOnCanisterError, onError: factoryOnError, ...factoryOptions } = config;
|
|
23
23
|
// Direct execution function
|
|
24
24
|
const execute = async (args) => {
|
|
25
|
-
|
|
25
|
+
const result = await reactor.callMethod({
|
|
26
26
|
functionName,
|
|
27
27
|
args,
|
|
28
28
|
callConfig,
|
|
29
29
|
});
|
|
30
|
+
if (factoryInvalidateQueries) {
|
|
31
|
+
await Promise.all(factoryInvalidateQueries.map((queryKey) => {
|
|
32
|
+
return reactor.queryClient.invalidateQueries({ queryKey });
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
30
36
|
};
|
|
31
37
|
// Hook implementation
|
|
32
38
|
const useMutationHook = (options) => {
|
|
39
|
+
const baseOptions = reactor.getQueryOptions({
|
|
40
|
+
functionName,
|
|
41
|
+
});
|
|
33
42
|
// Extract our custom options
|
|
34
43
|
const { invalidateQueries: hookInvalidateQueries, onCanisterError: hookOnCanisterError, ...restOptions } = options || {};
|
|
35
44
|
return useMutation({
|
|
45
|
+
mutationKey: baseOptions.queryKey,
|
|
36
46
|
...factoryOptions,
|
|
37
47
|
...restOptions,
|
|
38
48
|
mutationFn: execute,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMutation.js","sourceRoot":"","sources":["../src/createMutation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAQnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAQlD,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E,MAAM,kBAAkB,GAAG,CAKzB,OAAsB,EACtB,MAA+B,EACN,EAAE;IAC3B,MAAM,EACJ,YAAY,EACZ,UAAU,EACV,iBAAiB,EAAE,wBAAwB,EAC3C,SAAS,EAAE,gBAAgB,EAC3B,eAAe,EAAE,sBAAsB,EACvC,OAAO,EAAE,cAAc,EACvB,GAAG,cAAc,EAClB,GAAG,MAAM,CAAA;IAEV,4BAA4B;IAC5B,MAAM,OAAO,GAAG,KAAK,EACnB,IAA0B,EACS,EAAE;QACrC,
|
|
1
|
+
{"version":3,"file":"createMutation.js","sourceRoot":"","sources":["../src/createMutation.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,13 @@ import type { Reactor, FunctionName, ReactorArgs, BaseActor, TransformKey, React
|
|
|
27
27
|
import { QueryKey, InfiniteData, UseSuspenseInfiniteQueryResult, UseSuspenseInfiniteQueryOptions, InfiniteQueryObserverOptions } from "@tanstack/react-query";
|
|
28
28
|
import { CallConfig } from "@icp-sdk/core/agent";
|
|
29
29
|
import { NoInfer } from "./types";
|
|
30
|
+
type SuspenseInfiniteFactoryCallOptions = {
|
|
31
|
+
queryKey?: QueryKey;
|
|
32
|
+
};
|
|
33
|
+
type SuspenseInfiniteQueryFactoryFn<A, M extends FunctionName<A>, T extends TransformKey, TPageParam, TSelected> = {
|
|
34
|
+
(getArgs: (pageParam: TPageParam) => ReactorArgs<A, M, T>): SuspenseInfiniteQueryResult<SuspenseInfiniteQueryPageData<A, M, T>, TPageParam, TSelected, SuspenseInfiniteQueryError<A, M, T>>;
|
|
35
|
+
(getArgs: (pageParam: TPageParam) => ReactorArgs<A, M, T>, options?: SuspenseInfiniteFactoryCallOptions): SuspenseInfiniteQueryResult<SuspenseInfiniteQueryPageData<A, M, T>, TPageParam, TSelected, SuspenseInfiniteQueryError<A, M, T>>;
|
|
36
|
+
};
|
|
30
37
|
/** The raw page data type returned by the query function */
|
|
31
38
|
export type SuspenseInfiniteQueryPageData<A = BaseActor, M extends FunctionName<A> = FunctionName<A>, T extends TransformKey = "candid"> = ReactorReturnOk<A, M, T>;
|
|
32
39
|
/** The error type for infinite queries */
|
|
@@ -52,9 +59,17 @@ export interface SuspenseInfiniteQueryConfig<A = BaseActor, M extends FunctionNa
|
|
|
52
59
|
getArgs: (pageParam: TPageParam) => ReactorArgs<A, M, T>;
|
|
53
60
|
}
|
|
54
61
|
/**
|
|
55
|
-
* Configuration for createActorSuspenseInfiniteQueryFactory (without
|
|
62
|
+
* Configuration for createActorSuspenseInfiniteQueryFactory (without getArgs; provided at call time).
|
|
56
63
|
*/
|
|
57
|
-
export type SuspenseInfiniteQueryFactoryConfig<A = BaseActor, M extends FunctionName<A> = FunctionName<A>, T extends TransformKey = "candid", TPageParam = unknown, TSelected = InfiniteData<SuspenseInfiniteQueryPageData<A, M, T>, TPageParam>> = Omit<SuspenseInfiniteQueryConfig<A, M, T, TPageParam, TSelected>, "getArgs"
|
|
64
|
+
export type SuspenseInfiniteQueryFactoryConfig<A = BaseActor, M extends FunctionName<A> = FunctionName<A>, T extends TransformKey = "candid", TPageParam = unknown, TSelected = InfiniteData<SuspenseInfiniteQueryPageData<A, M, T>, TPageParam>> = Omit<SuspenseInfiniteQueryConfig<A, M, T, TPageParam, TSelected>, "getArgs"> & {
|
|
65
|
+
/**
|
|
66
|
+
* Optional key-args derivation for factory calls.
|
|
67
|
+
* Receives the resolved args from `getArgs(initialPageParam)` and should return
|
|
68
|
+
* a stable serializable representation of the logical query identity
|
|
69
|
+
* (typically excluding pagination/cursor fields).
|
|
70
|
+
*/
|
|
71
|
+
getKeyArgs?: (args: ReactorArgs<A, M, T>) => unknown;
|
|
72
|
+
};
|
|
58
73
|
/**
|
|
59
74
|
* useSuspenseInfiniteQuery hook with chained select support.
|
|
60
75
|
*/
|
|
@@ -109,14 +124,23 @@ export declare function createSuspenseInfiniteQuery<A, T extends TransformKey, M
|
|
|
109
124
|
* const getPostsQuery = createActorSuspenseInfiniteQueryFactory(reactor, {
|
|
110
125
|
* functionName: "get_posts",
|
|
111
126
|
* initialPageParam: 0,
|
|
127
|
+
* getKeyArgs: (args) => {
|
|
128
|
+
* const [{ userId }] = args
|
|
129
|
+
* return [{ userId }]
|
|
130
|
+
* },
|
|
112
131
|
* getNextPageParam: (lastPage) => lastPage.nextCursor,
|
|
113
132
|
* })
|
|
114
133
|
*
|
|
115
134
|
* // Create query with specific args builder
|
|
116
135
|
* const userPostsQuery = getPostsQuery((cursor) => [{ userId, cursor, limit: 10 }])
|
|
117
136
|
* const { data, fetchNextPage } = userPostsQuery.useSuspenseInfiniteQuery()
|
|
137
|
+
*
|
|
138
|
+
* // Optional: append a manual query-key suffix in addition to auto key args
|
|
139
|
+
* const scopedPostsQuery = getPostsQuery(
|
|
140
|
+
* (cursor) => [{ userId, cursor, limit: 10 }],
|
|
141
|
+
* { queryKey: ["v2"] }
|
|
142
|
+
* )
|
|
118
143
|
*/
|
|
119
|
-
export declare function createSuspenseInfiniteQueryFactory<A, T extends TransformKey, M extends FunctionName<A> = FunctionName<A>, TPageParam = unknown, TSelected = InfiniteData<SuspenseInfiniteQueryPageData<A, M, T>, TPageParam>>(reactor: Reactor<A, T>, config: SuspenseInfiniteQueryFactoryConfig<NoInfer<A>, M, T, TPageParam, TSelected>):
|
|
120
|
-
|
|
121
|
-
}) => SuspenseInfiniteQueryResult<SuspenseInfiniteQueryPageData<A, M, T>, TPageParam, TSelected, SuspenseInfiniteQueryError<A, M, T>>;
|
|
144
|
+
export declare function createSuspenseInfiniteQueryFactory<A, T extends TransformKey, M extends FunctionName<A> = FunctionName<A>, TPageParam = unknown, TSelected = InfiniteData<SuspenseInfiniteQueryPageData<A, M, T>, TPageParam>>(reactor: Reactor<A, T>, config: SuspenseInfiniteQueryFactoryConfig<NoInfer<A>, M, T, TPageParam, TSelected>): SuspenseInfiniteQueryFactoryFn<A, M, T, TPageParam, TSelected>;
|
|
145
|
+
export {};
|
|
122
146
|
//# sourceMappingURL=createSuspenseInfiniteQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSuspenseInfiniteQuery.d.ts","sourceRoot":"","sources":["../src/createSuspenseInfiniteQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,SAAS,EACT,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,QAAQ,EAER,YAAY,EACZ,8BAA8B,EAC9B,+BAA+B,EAG/B,4BAA4B,EAC7B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"createSuspenseInfiniteQuery.d.ts","sourceRoot":"","sources":["../src/createSuspenseInfiniteQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,20 @@
|
|
|
24
24
|
* const allPosts = data.pages.flatMap(page => page.posts)
|
|
25
25
|
*/
|
|
26
26
|
import { useSuspenseInfiniteQuery, } from "@tanstack/react-query";
|
|
27
|
+
const FACTORY_KEY_ARGS_QUERY_KEY = "__ic_reactor_factory_key_args";
|
|
28
|
+
const mergeFactoryQueryKey = (baseQueryKey, callQueryKey, keyArgs) => {
|
|
29
|
+
const merged = [];
|
|
30
|
+
if (baseQueryKey) {
|
|
31
|
+
merged.push(...baseQueryKey);
|
|
32
|
+
}
|
|
33
|
+
if (callQueryKey) {
|
|
34
|
+
merged.push(...callQueryKey);
|
|
35
|
+
}
|
|
36
|
+
if (keyArgs !== undefined) {
|
|
37
|
+
merged.push({ [FACTORY_KEY_ARGS_QUERY_KEY]: keyArgs });
|
|
38
|
+
}
|
|
39
|
+
return merged.length > 0 ? merged : undefined;
|
|
40
|
+
};
|
|
27
41
|
// ============================================================================
|
|
28
42
|
// Internal Implementation
|
|
29
43
|
// ============================================================================
|
|
@@ -141,20 +155,34 @@ export function createSuspenseInfiniteQuery(reactor, config) {
|
|
|
141
155
|
* const getPostsQuery = createActorSuspenseInfiniteQueryFactory(reactor, {
|
|
142
156
|
* functionName: "get_posts",
|
|
143
157
|
* initialPageParam: 0,
|
|
158
|
+
* getKeyArgs: (args) => {
|
|
159
|
+
* const [{ userId }] = args
|
|
160
|
+
* return [{ userId }]
|
|
161
|
+
* },
|
|
144
162
|
* getNextPageParam: (lastPage) => lastPage.nextCursor,
|
|
145
163
|
* })
|
|
146
164
|
*
|
|
147
165
|
* // Create query with specific args builder
|
|
148
166
|
* const userPostsQuery = getPostsQuery((cursor) => [{ userId, cursor, limit: 10 }])
|
|
149
167
|
* const { data, fetchNextPage } = userPostsQuery.useSuspenseInfiniteQuery()
|
|
168
|
+
*
|
|
169
|
+
* // Optional: append a manual query-key suffix in addition to auto key args
|
|
170
|
+
* const scopedPostsQuery = getPostsQuery(
|
|
171
|
+
* (cursor) => [{ userId, cursor, limit: 10 }],
|
|
172
|
+
* { queryKey: ["v2"] }
|
|
173
|
+
* )
|
|
150
174
|
*/
|
|
151
175
|
export function createSuspenseInfiniteQueryFactory(reactor, config) {
|
|
152
|
-
|
|
176
|
+
const factory = (getArgs, options) => {
|
|
177
|
+
const initialArgs = getArgs(config.initialPageParam);
|
|
178
|
+
const keyArgs = config.getKeyArgs?.(initialArgs) ?? initialArgs;
|
|
179
|
+
const queryKey = mergeFactoryQueryKey(config.queryKey, options?.queryKey, keyArgs);
|
|
153
180
|
return createSuspenseInfiniteQueryImpl(reactor, {
|
|
154
|
-
...config,
|
|
155
|
-
|
|
181
|
+
...(({ getKeyArgs: _getKeyArgs, ...rest }) => rest)(config),
|
|
182
|
+
queryKey,
|
|
156
183
|
getArgs,
|
|
157
184
|
});
|
|
158
185
|
};
|
|
186
|
+
return factory;
|
|
159
187
|
}
|
|
160
188
|
//# sourceMappingURL=createSuspenseInfiniteQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSuspenseInfiniteQuery.js","sourceRoot":"","sources":["../src/createSuspenseInfiniteQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAWH,OAAO,EAEL,wBAAwB,GAOzB,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"createSuspenseInfiniteQuery.js","sourceRoot":"","sources":["../src/createSuspenseInfiniteQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|
|
@@ -48,6 +48,7 @@ export function useActorMethod({ reactor, functionName, args, callConfig, queryK
|
|
|
48
48
|
// Mutation Implementation
|
|
49
49
|
// ============================================================================
|
|
50
50
|
const mutationResult = useMutation({
|
|
51
|
+
mutationKey: queryKey,
|
|
51
52
|
mutationFn: async (mutationArgs) => {
|
|
52
53
|
const result = await reactor.callMethod({
|
|
53
54
|
functionName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActorMethod.js","sourceRoot":"","sources":["../../src/hooks/useActorMethod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EACL,QAAQ,EACR,WAAW,GAKZ,MAAM,uBAAuB,CAAA;AAoJ9B;;;GAGG;AACH,MAAM,UAAU,cAAc,CAI5B,EACA,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAG,IAAI,EACd,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,GAAG,YAAY,EACmB;IAClC,0DAA0D;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7D,OAAO,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;IAC5C,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;IAE3B,MAAM,YAAY,GAAiB,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;IAE/D,qBAAqB;IACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,IAAI,cAAc;YAAE,OAAO,cAAc,CAAA;QACzC,OAAO,OAAO,CAAC,gBAAgB,CAAC;YAC9B,YAAY;YACZ,IAAI;SACL,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAA;IAEjD,+EAA+E;IAC/E,uBAAuB;IACvB,+EAA+E;IAE/E,MAAM,WAAW,GAAG,QAAQ,CAI1B;QACE,QAAQ;QACR,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;oBACtC,YAAY;oBACZ,IAAI;oBACJ,UAAU;iBACX,CAAC,CAAA;gBACF,SAAS,EAAE,CAAC,MAAM,CAAC,CAAA;gBACnB,OAAO,MAAM,CAAA;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC,KAAkC,CAAC,CAAA;gBAC7C,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;QACD,OAAO,EAAE,OAAO,IAAI,OAAO;QAC3B,GAAG,YAAY;KAChB,EACD,OAAO,CAAC,WAAW,CACpB,CAAA;IAED,+EAA+E;IAC/E,0BAA0B;IAC1B,+EAA+E;IAE/E,MAAM,cAAc,GAAG,WAAW,CAKhC;QACE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;gBACtC,YAAY;gBACZ,IAAI,EAAE,YAAY,IAAI,IAAI;gBAC1B,UAAU;aACX,CAAC,CAAA;YACF,OAAO,MAAM,CAAA;QACf,CAAC;QACD,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAClB,SAAS,EAAE,CAAC,IAAI,CAAC,CAAA;YACjB,yDAAyD;YACzD,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtD,iBAAiB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAChC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;gBAC1D,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;QAClB,CAAC;KACF,EACD,OAAO,CAAC,WAAW,CACpB,CAAA;IAED,+EAA+E;IAC/E,wBAAwB;IACxB,+EAA+E;IAE/E,MAAM,IAAI,GAAG,WAAW,CACtB,KAAK,EACH,QAA+B,EACgB,EAAE;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,iDAAiD;YACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC;wBAClD,QAAQ;wBACR,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO,CAAC,UAAU,CAAC;4BACjB,YAAY;4BACZ,IAAI,EAAE,QAAQ;4BACd,UAAU;yBACX,CAAC;wBACJ,SAAS,EAAE,CAAC;qBACb,CAAC,CAAA;oBACF,SAAS,EAAE,CAAC,MAAM,CAAC,CAAA;oBACnB,OAAO,MAAM,CAAA;gBACf,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,EAAE,CAAC,KAAkC,CAAC,CAAA;oBAC7C,OAAO,SAAS,CAAA;gBAClB,CAAC;YACH,CAAC;YACD,yBAAyB;YACzB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,CAAA;YAC5C,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,CAAC;YACN,4CAA4C;YAC5C,OAAO,cAAc;iBAClB,WAAW,CAAC,QAAgC,CAAC;iBAC7C,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC,EACD;QACE,OAAO;QACP,OAAO;QACP,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,WAAW;QACX,cAAc;QACd,SAAS;QACT,OAAO;KACR,CACF,CAAA;IAED,+EAA+E;IAC/E,iBAAiB;IACjB,+EAA+E;IAE/E,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;QACjD,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,KAAK,EAAE,CAAA;QACxB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAA;IAEhD,+EAA+E;IAC/E,mBAAmB;IACnB,+EAA+E;IAE/E,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,CAAA;YAC1C,OAAO,MAAM,CAAC,IAAI,CAAA;QACpB,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;IAE1B,+EAA+E;IAC/E,wBAAwB;IACxB,+EAA+E;IAE/E,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,OAAO,EAAE,IAAI;YACb,YAAY;YACZ,IAAI;YACJ,KAAK;YACL,OAAO;YACP,WAAW;SACqB,CAAA;IACpC,CAAC;SAAM,CAAC;QACN,OAAO;YACL,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,OAAO,EAAE,KAAK;YACd,YAAY;YACZ,IAAI;YACJ,KAAK;YACL,OAAO;YACP,cAAc;SACkB,CAAA;IACpC,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAGpC,OAAsB;IACtB,OAAO;QACL;;WAEG;QACH,SAAS,EAAE,CACT,MAA0D,EAC1D,EAAE,CACF,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAIlC,CAAC;KACL,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"useActorMethod.js","sourceRoot":"","sources":["../../src/hooks/useActorMethod.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ic-reactor/react",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "IC Reactor React Library",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"author": "Behrad Deylami",
|
|
43
43
|
"license": "MIT",
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@ic-reactor/core": "^3.
|
|
45
|
+
"@ic-reactor/core": "^3.1.0"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"react": ">=18.0.0",
|
|
@@ -57,14 +57,14 @@
|
|
|
57
57
|
"@testing-library/dom": "^10.4.1",
|
|
58
58
|
"@testing-library/jest-dom": "^6.9.1",
|
|
59
59
|
"@testing-library/react": "^16.3.2",
|
|
60
|
-
"@types/react": "^19.2.
|
|
60
|
+
"@types/react": "^19.2.14",
|
|
61
61
|
"@types/react-dom": "^19.2.3",
|
|
62
62
|
"fake-indexeddb": "^6.2.5",
|
|
63
|
-
"jsdom": "^28.
|
|
63
|
+
"jsdom": "^28.1.0",
|
|
64
64
|
"react": "^19.2.3",
|
|
65
65
|
"react-dom": "^19.2.3",
|
|
66
66
|
"size-limit": "^12.0.0",
|
|
67
|
-
"vitest": "^4.0.
|
|
67
|
+
"vitest": "^4.0.18"
|
|
68
68
|
},
|
|
69
69
|
"size-limit": [
|
|
70
70
|
{
|
|
@@ -84,6 +84,6 @@
|
|
|
84
84
|
"build": "tsc",
|
|
85
85
|
"test": "vitest run",
|
|
86
86
|
"size": "size-limit",
|
|
87
|
-
"analyze": "size-limit
|
|
87
|
+
"analyze": "size-limit"
|
|
88
88
|
}
|
|
89
89
|
}
|
|
@@ -39,10 +39,46 @@ import {
|
|
|
39
39
|
UseInfiniteQueryOptions,
|
|
40
40
|
QueryFunctionContext,
|
|
41
41
|
FetchInfiniteQueryOptions,
|
|
42
|
+
InfiniteQueryObserverOptions,
|
|
42
43
|
} from "@tanstack/react-query"
|
|
43
44
|
import { CallConfig } from "@icp-sdk/core/agent"
|
|
44
45
|
import { NoInfer } from "./types"
|
|
45
46
|
|
|
47
|
+
const FACTORY_KEY_ARGS_QUERY_KEY = "__ic_reactor_factory_key_args"
|
|
48
|
+
|
|
49
|
+
type InfiniteQueryFactoryFn<
|
|
50
|
+
A,
|
|
51
|
+
M extends FunctionName<A>,
|
|
52
|
+
T extends TransformKey,
|
|
53
|
+
TPageParam,
|
|
54
|
+
TSelected,
|
|
55
|
+
> = {
|
|
56
|
+
(
|
|
57
|
+
getArgs: (pageParam: TPageParam) => ReactorArgs<A, M, T>
|
|
58
|
+
): InfiniteQueryResult<
|
|
59
|
+
InfiniteQueryPageData<A, M, T>,
|
|
60
|
+
TPageParam,
|
|
61
|
+
TSelected,
|
|
62
|
+
InfiniteQueryError<A, M, T>
|
|
63
|
+
>
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const mergeFactoryQueryKey = (
|
|
67
|
+
baseQueryKey?: QueryKey,
|
|
68
|
+
keyArgs?: unknown
|
|
69
|
+
): QueryKey | undefined => {
|
|
70
|
+
const merged: unknown[] = []
|
|
71
|
+
|
|
72
|
+
if (baseQueryKey) {
|
|
73
|
+
merged.push(...baseQueryKey)
|
|
74
|
+
}
|
|
75
|
+
if (keyArgs !== undefined) {
|
|
76
|
+
merged.push({ [FACTORY_KEY_ARGS_QUERY_KEY]: keyArgs })
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return merged.length > 0 ? merged : undefined
|
|
80
|
+
}
|
|
81
|
+
|
|
46
82
|
// ============================================================================
|
|
47
83
|
// Type Definitions
|
|
48
84
|
// ============================================================================
|
|
@@ -67,6 +103,9 @@ export type InfiniteQueryError<
|
|
|
67
103
|
|
|
68
104
|
/**
|
|
69
105
|
* Configuration for createActorInfiniteQuery.
|
|
106
|
+
* Extends InfiniteQueryObserverOptions to accept standard TanStack Query
|
|
107
|
+
* infinite-query options at the create level (e.g. refetchInterval,
|
|
108
|
+
* refetchOnMount, refetchOnWindowFocus, retry, gcTime, networkMode).
|
|
70
109
|
*
|
|
71
110
|
* @template A - The actor interface type
|
|
72
111
|
* @template M - The method name on the actor
|
|
@@ -80,6 +119,15 @@ export interface InfiniteQueryConfig<
|
|
|
80
119
|
T extends TransformKey = "candid",
|
|
81
120
|
TPageParam = unknown,
|
|
82
121
|
TSelected = InfiniteData<InfiniteQueryPageData<A, M, T>, TPageParam>,
|
|
122
|
+
> extends Omit<
|
|
123
|
+
InfiniteQueryObserverOptions<
|
|
124
|
+
InfiniteQueryPageData<A, M, T>,
|
|
125
|
+
InfiniteQueryError<A, M, T>,
|
|
126
|
+
TSelected,
|
|
127
|
+
QueryKey,
|
|
128
|
+
TPageParam
|
|
129
|
+
>,
|
|
130
|
+
"queryKey" | "queryFn"
|
|
83
131
|
> {
|
|
84
132
|
/** The method to call on the canister */
|
|
85
133
|
functionName: M
|
|
@@ -105,14 +153,6 @@ export interface InfiniteQueryConfig<
|
|
|
105
153
|
firstPageParam: TPageParam,
|
|
106
154
|
allPageParams: TPageParam[]
|
|
107
155
|
) => TPageParam | undefined | null
|
|
108
|
-
/** Maximum number of pages to keep in cache */
|
|
109
|
-
maxPages?: number
|
|
110
|
-
/** How long data stays fresh before becoming stale (default: 5 min) */
|
|
111
|
-
staleTime?: number
|
|
112
|
-
/** Transform the raw InfiniteData result before returning */
|
|
113
|
-
select?: (
|
|
114
|
-
data: InfiniteData<InfiniteQueryPageData<A, M, T>, TPageParam>
|
|
115
|
-
) => TSelected
|
|
116
156
|
}
|
|
117
157
|
|
|
118
158
|
/**
|
|
@@ -124,7 +164,15 @@ export type InfiniteQueryFactoryConfig<
|
|
|
124
164
|
T extends TransformKey = "candid",
|
|
125
165
|
TPageParam = unknown,
|
|
126
166
|
TSelected = InfiniteData<InfiniteQueryPageData<A, M, T>, TPageParam>,
|
|
127
|
-
> = Omit<InfiniteQueryConfig<A, M, T, TPageParam, TSelected>, "getArgs">
|
|
167
|
+
> = Omit<InfiniteQueryConfig<A, M, T, TPageParam, TSelected>, "getArgs"> & {
|
|
168
|
+
/**
|
|
169
|
+
* Optional key-args derivation for factory calls.
|
|
170
|
+
* Receives the resolved args from `getArgs(initialPageParam)` and should return
|
|
171
|
+
* a stable serializable representation of the logical query identity
|
|
172
|
+
* (typically excluding pagination/cursor fields).
|
|
173
|
+
*/
|
|
174
|
+
getKeyArgs?: (args: ReactorArgs<A, M, T>) => unknown
|
|
175
|
+
}
|
|
128
176
|
|
|
129
177
|
// ============================================================================
|
|
130
178
|
// Hook Interface
|
|
@@ -253,6 +301,7 @@ const createInfiniteQueryImpl = <
|
|
|
253
301
|
maxPages,
|
|
254
302
|
staleTime = 5 * 60 * 1000,
|
|
255
303
|
select,
|
|
304
|
+
...rest
|
|
256
305
|
} = config
|
|
257
306
|
|
|
258
307
|
// Get query key from actor manager
|
|
@@ -337,6 +386,7 @@ const createInfiniteQueryImpl = <
|
|
|
337
386
|
getPreviousPageParam,
|
|
338
387
|
maxPages,
|
|
339
388
|
staleTime,
|
|
389
|
+
...rest,
|
|
340
390
|
...options,
|
|
341
391
|
select: chainedSelect,
|
|
342
392
|
} as any,
|
|
@@ -430,6 +480,10 @@ export function createInfiniteQuery<
|
|
|
430
480
|
* const getPostsQuery = createActorInfiniteQueryFactory(reactor, {
|
|
431
481
|
* functionName: "get_posts",
|
|
432
482
|
* initialPageParam: 0,
|
|
483
|
+
* getKeyArgs: (args) => {
|
|
484
|
+
* const [{ userId }] = args
|
|
485
|
+
* return [{ userId }]
|
|
486
|
+
* },
|
|
433
487
|
* getNextPageParam: (lastPage) => lastPage.nextCursor,
|
|
434
488
|
* })
|
|
435
489
|
*
|
|
@@ -447,25 +501,22 @@ export function createInfiniteQueryFactory<
|
|
|
447
501
|
>(
|
|
448
502
|
reactor: Reactor<A, T>,
|
|
449
503
|
config: InfiniteQueryFactoryConfig<NoInfer<A>, M, T, TPageParam, TSelected>
|
|
450
|
-
):
|
|
451
|
-
|
|
452
|
-
) => InfiniteQueryResult<
|
|
453
|
-
InfiniteQueryPageData<A, M, T>,
|
|
454
|
-
TPageParam,
|
|
455
|
-
TSelected,
|
|
456
|
-
InfiniteQueryError<A, M, T>
|
|
457
|
-
> {
|
|
458
|
-
return (
|
|
504
|
+
): InfiniteQueryFactoryFn<A, M, T, TPageParam, TSelected> {
|
|
505
|
+
const factory: InfiniteQueryFactoryFn<A, M, T, TPageParam, TSelected> = (
|
|
459
506
|
getArgs: (pageParam: TPageParam) => ReactorArgs<A, M, T>
|
|
460
|
-
)
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
> => {
|
|
507
|
+
) => {
|
|
508
|
+
const initialArgs = getArgs(config.initialPageParam)
|
|
509
|
+
const keyArgs = config.getKeyArgs?.(initialArgs) ?? initialArgs
|
|
510
|
+
const queryKey = mergeFactoryQueryKey(config.queryKey, keyArgs)
|
|
511
|
+
|
|
466
512
|
return createInfiniteQueryImpl<A, M, T, TPageParam, TSelected>(reactor, {
|
|
467
|
-
...(
|
|
513
|
+
...(({ getKeyArgs: _getKeyArgs, ...rest }) => rest)(
|
|
514
|
+
config as InfiniteQueryFactoryConfig<A, M, T, TPageParam, TSelected>
|
|
515
|
+
),
|
|
516
|
+
queryKey,
|
|
468
517
|
getArgs,
|
|
469
518
|
})
|
|
470
519
|
}
|
|
520
|
+
|
|
521
|
+
return factory
|
|
471
522
|
}
|
package/src/createMutation.ts
CHANGED
|
@@ -56,15 +56,28 @@ const createMutationImpl = <
|
|
|
56
56
|
const execute = async (
|
|
57
57
|
args: ReactorArgs<A, M, T>
|
|
58
58
|
): Promise<ReactorReturnOk<A, M, T>> => {
|
|
59
|
-
|
|
59
|
+
const result = await reactor.callMethod({
|
|
60
60
|
functionName,
|
|
61
61
|
args,
|
|
62
62
|
callConfig,
|
|
63
63
|
})
|
|
64
|
+
|
|
65
|
+
if (factoryInvalidateQueries) {
|
|
66
|
+
await Promise.all(
|
|
67
|
+
factoryInvalidateQueries.map((queryKey) => {
|
|
68
|
+
return reactor.queryClient.invalidateQueries({ queryKey })
|
|
69
|
+
})
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return result
|
|
64
74
|
}
|
|
65
75
|
|
|
66
76
|
// Hook implementation
|
|
67
77
|
const useMutationHook = (options?: MutationHookOptions<A, M, T>) => {
|
|
78
|
+
const baseOptions = reactor.getQueryOptions({
|
|
79
|
+
functionName,
|
|
80
|
+
})
|
|
68
81
|
// Extract our custom options
|
|
69
82
|
const {
|
|
70
83
|
invalidateQueries: hookInvalidateQueries,
|
|
@@ -74,6 +87,7 @@ const createMutationImpl = <
|
|
|
74
87
|
|
|
75
88
|
return useMutation(
|
|
76
89
|
{
|
|
90
|
+
mutationKey: baseOptions.queryKey,
|
|
77
91
|
...factoryOptions,
|
|
78
92
|
...restOptions,
|
|
79
93
|
mutationFn: execute,
|
|
@@ -46,6 +46,58 @@ import {
|
|
|
46
46
|
import { CallConfig } from "@icp-sdk/core/agent"
|
|
47
47
|
import { NoInfer } from "./types"
|
|
48
48
|
|
|
49
|
+
const FACTORY_KEY_ARGS_QUERY_KEY = "__ic_reactor_factory_key_args"
|
|
50
|
+
|
|
51
|
+
type SuspenseInfiniteFactoryCallOptions = {
|
|
52
|
+
queryKey?: QueryKey
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
type SuspenseInfiniteQueryFactoryFn<
|
|
56
|
+
A,
|
|
57
|
+
M extends FunctionName<A>,
|
|
58
|
+
T extends TransformKey,
|
|
59
|
+
TPageParam,
|
|
60
|
+
TSelected,
|
|
61
|
+
> = {
|
|
62
|
+
(
|
|
63
|
+
getArgs: (pageParam: TPageParam) => ReactorArgs<A, M, T>
|
|
64
|
+
): SuspenseInfiniteQueryResult<
|
|
65
|
+
SuspenseInfiniteQueryPageData<A, M, T>,
|
|
66
|
+
TPageParam,
|
|
67
|
+
TSelected,
|
|
68
|
+
SuspenseInfiniteQueryError<A, M, T>
|
|
69
|
+
>
|
|
70
|
+
(
|
|
71
|
+
getArgs: (pageParam: TPageParam) => ReactorArgs<A, M, T>,
|
|
72
|
+
options?: SuspenseInfiniteFactoryCallOptions
|
|
73
|
+
): SuspenseInfiniteQueryResult<
|
|
74
|
+
SuspenseInfiniteQueryPageData<A, M, T>,
|
|
75
|
+
TPageParam,
|
|
76
|
+
TSelected,
|
|
77
|
+
SuspenseInfiniteQueryError<A, M, T>
|
|
78
|
+
>
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const mergeFactoryQueryKey = (
|
|
82
|
+
baseQueryKey?: QueryKey,
|
|
83
|
+
callQueryKey?: QueryKey,
|
|
84
|
+
keyArgs?: unknown
|
|
85
|
+
): QueryKey | undefined => {
|
|
86
|
+
const merged: unknown[] = []
|
|
87
|
+
|
|
88
|
+
if (baseQueryKey) {
|
|
89
|
+
merged.push(...baseQueryKey)
|
|
90
|
+
}
|
|
91
|
+
if (callQueryKey) {
|
|
92
|
+
merged.push(...callQueryKey)
|
|
93
|
+
}
|
|
94
|
+
if (keyArgs !== undefined) {
|
|
95
|
+
merged.push({ [FACTORY_KEY_ARGS_QUERY_KEY]: keyArgs })
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return merged.length > 0 ? merged : undefined
|
|
99
|
+
}
|
|
100
|
+
|
|
49
101
|
// ============================================================================
|
|
50
102
|
// Type Definitions
|
|
51
103
|
// ============================================================================
|
|
@@ -105,7 +157,7 @@ export interface SuspenseInfiniteQueryConfig<
|
|
|
105
157
|
}
|
|
106
158
|
|
|
107
159
|
/**
|
|
108
|
-
* Configuration for createActorSuspenseInfiniteQueryFactory (without
|
|
160
|
+
* Configuration for createActorSuspenseInfiniteQueryFactory (without getArgs; provided at call time).
|
|
109
161
|
*/
|
|
110
162
|
export type SuspenseInfiniteQueryFactoryConfig<
|
|
111
163
|
A = BaseActor,
|
|
@@ -113,7 +165,18 @@ export type SuspenseInfiniteQueryFactoryConfig<
|
|
|
113
165
|
T extends TransformKey = "candid",
|
|
114
166
|
TPageParam = unknown,
|
|
115
167
|
TSelected = InfiniteData<SuspenseInfiniteQueryPageData<A, M, T>, TPageParam>,
|
|
116
|
-
> = Omit<
|
|
168
|
+
> = Omit<
|
|
169
|
+
SuspenseInfiniteQueryConfig<A, M, T, TPageParam, TSelected>,
|
|
170
|
+
"getArgs"
|
|
171
|
+
> & {
|
|
172
|
+
/**
|
|
173
|
+
* Optional key-args derivation for factory calls.
|
|
174
|
+
* Receives the resolved args from `getArgs(initialPageParam)` and should return
|
|
175
|
+
* a stable serializable representation of the logical query identity
|
|
176
|
+
* (typically excluding pagination/cursor fields).
|
|
177
|
+
*/
|
|
178
|
+
getKeyArgs?: (args: ReactorArgs<A, M, T>) => unknown
|
|
179
|
+
}
|
|
117
180
|
|
|
118
181
|
// ============================================================================
|
|
119
182
|
// Hook Interface
|
|
@@ -419,12 +482,22 @@ export function createSuspenseInfiniteQuery<
|
|
|
419
482
|
* const getPostsQuery = createActorSuspenseInfiniteQueryFactory(reactor, {
|
|
420
483
|
* functionName: "get_posts",
|
|
421
484
|
* initialPageParam: 0,
|
|
485
|
+
* getKeyArgs: (args) => {
|
|
486
|
+
* const [{ userId }] = args
|
|
487
|
+
* return [{ userId }]
|
|
488
|
+
* },
|
|
422
489
|
* getNextPageParam: (lastPage) => lastPage.nextCursor,
|
|
423
490
|
* })
|
|
424
491
|
*
|
|
425
492
|
* // Create query with specific args builder
|
|
426
493
|
* const userPostsQuery = getPostsQuery((cursor) => [{ userId, cursor, limit: 10 }])
|
|
427
494
|
* const { data, fetchNextPage } = userPostsQuery.useSuspenseInfiniteQuery()
|
|
495
|
+
*
|
|
496
|
+
* // Optional: append a manual query-key suffix in addition to auto key args
|
|
497
|
+
* const scopedPostsQuery = getPostsQuery(
|
|
498
|
+
* (cursor) => [{ userId, cursor, limit: 10 }],
|
|
499
|
+
* { queryKey: ["v2"] }
|
|
500
|
+
* )
|
|
428
501
|
*/
|
|
429
502
|
|
|
430
503
|
export function createSuspenseInfiniteQueryFactory<
|
|
@@ -442,37 +515,42 @@ export function createSuspenseInfiniteQueryFactory<
|
|
|
442
515
|
TPageParam,
|
|
443
516
|
TSelected
|
|
444
517
|
>
|
|
445
|
-
):
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
TPageParam,
|
|
451
|
-
TSelected,
|
|
452
|
-
SuspenseInfiniteQueryError<A, M, T>
|
|
453
|
-
> {
|
|
454
|
-
return (
|
|
455
|
-
getArgs: (pageParam: TPageParam) => ReactorArgs<A, M, T>,
|
|
456
|
-
options?: { queryKey?: QueryKey }
|
|
457
|
-
): SuspenseInfiniteQueryResult<
|
|
458
|
-
SuspenseInfiniteQueryPageData<A, M, T>,
|
|
518
|
+
): SuspenseInfiniteQueryFactoryFn<A, M, T, TPageParam, TSelected> {
|
|
519
|
+
const factory: SuspenseInfiniteQueryFactoryFn<
|
|
520
|
+
A,
|
|
521
|
+
M,
|
|
522
|
+
T,
|
|
459
523
|
TPageParam,
|
|
460
|
-
TSelected
|
|
461
|
-
|
|
462
|
-
|
|
524
|
+
TSelected
|
|
525
|
+
> = (
|
|
526
|
+
getArgs: (pageParam: TPageParam) => ReactorArgs<A, M, T>,
|
|
527
|
+
options?: SuspenseInfiniteFactoryCallOptions
|
|
528
|
+
) => {
|
|
529
|
+
const initialArgs = getArgs(config.initialPageParam)
|
|
530
|
+
const keyArgs = config.getKeyArgs?.(initialArgs) ?? initialArgs
|
|
531
|
+
const queryKey = mergeFactoryQueryKey(
|
|
532
|
+
config.queryKey,
|
|
533
|
+
options?.queryKey,
|
|
534
|
+
keyArgs
|
|
535
|
+
)
|
|
536
|
+
|
|
463
537
|
return createSuspenseInfiniteQueryImpl<A, M, T, TPageParam, TSelected>(
|
|
464
538
|
reactor,
|
|
465
539
|
{
|
|
466
|
-
...(
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
540
|
+
...(({ getKeyArgs: _getKeyArgs, ...rest }) => rest)(
|
|
541
|
+
config as SuspenseInfiniteQueryFactoryConfig<
|
|
542
|
+
A,
|
|
543
|
+
M,
|
|
544
|
+
T,
|
|
545
|
+
TPageParam,
|
|
546
|
+
TSelected
|
|
547
|
+
>
|
|
548
|
+
),
|
|
549
|
+
queryKey,
|
|
474
550
|
getArgs,
|
|
475
551
|
} as SuspenseInfiniteQueryConfig<A, M, T, TPageParam, TSelected>
|
|
476
552
|
)
|
|
477
553
|
}
|
|
554
|
+
|
|
555
|
+
return factory
|
|
478
556
|
}
|