@ic-reactor/react 3.6.0 → 3.8.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 +117 -13
- package/dist/auth/authentication-manager.d.ts +98 -0
- package/dist/auth/authentication-manager.d.ts.map +1 -0
- package/dist/auth/authentication-manager.js +532 -0
- package/dist/auth/authentication-manager.js.map +1 -0
- package/dist/auth/constants.d.ts +18 -0
- package/dist/auth/constants.d.ts.map +1 -0
- package/dist/auth/constants.js +18 -0
- package/dist/auth/constants.js.map +1 -0
- package/dist/auth/createIdentityAttributeHooks.d.ts +14 -0
- package/dist/auth/createIdentityAttributeHooks.d.ts.map +1 -0
- package/dist/auth/createIdentityAttributeHooks.js +54 -0
- package/dist/auth/createIdentityAttributeHooks.js.map +1 -0
- package/dist/auth/identity-attributes-manager.d.ts +26 -0
- package/dist/auth/identity-attributes-manager.d.ts.map +1 -0
- package/dist/auth/identity-attributes-manager.js +108 -0
- package/dist/auth/identity-attributes-manager.js.map +1 -0
- package/dist/auth/identity-attributes.d.ts +19 -0
- package/dist/auth/identity-attributes.d.ts.map +1 -0
- package/dist/auth/identity-attributes.js +170 -0
- package/dist/auth/identity-attributes.js.map +1 -0
- package/dist/auth/index.d.ts +8 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +8 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/types.d.ts +182 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +2 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/createActorHooks.d.ts +16 -16
- package/dist/createActorHooks.d.ts.map +1 -1
- package/dist/createActorHooks.js +6 -6
- package/dist/createActorHooks.js.map +1 -1
- package/dist/createInfiniteQuery.d.ts +33 -33
- package/dist/createInfiniteQuery.d.ts.map +1 -1
- package/dist/createInfiniteQuery.js +6 -6
- package/dist/createInfiniteQuery.js.map +1 -1
- package/dist/createMutation.d.ts +13 -2
- package/dist/createMutation.d.ts.map +1 -1
- package/dist/createMutation.js +11 -0
- package/dist/createMutation.js.map +1 -1
- package/dist/createQuery.d.ts +13 -3
- package/dist/createQuery.d.ts.map +1 -1
- package/dist/createQuery.js +16 -6
- package/dist/createQuery.js.map +1 -1
- package/dist/createSuspenseInfiniteQuery.d.ts +32 -32
- package/dist/createSuspenseInfiniteQuery.d.ts.map +1 -1
- package/dist/createSuspenseInfiniteQuery.js +6 -6
- package/dist/createSuspenseInfiniteQuery.js.map +1 -1
- package/dist/createSuspenseQuery.d.ts +3 -3
- package/dist/createSuspenseQuery.d.ts.map +1 -1
- package/dist/createSuspenseQuery.js +1 -1
- package/dist/createSuspenseQuery.js.map +1 -1
- package/dist/defineReactor.d.ts +124 -0
- package/dist/defineReactor.d.ts.map +1 -0
- package/dist/defineReactor.js +145 -0
- package/dist/defineReactor.js.map +1 -0
- package/dist/{createAuthHooks.d.ts → hooks/createAuthHooks.d.ts} +6 -13
- package/dist/hooks/createAuthHooks.d.ts.map +1 -0
- package/dist/{createAuthHooks.js → hooks/createAuthHooks.js} +18 -58
- package/dist/hooks/createAuthHooks.js.map +1 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useActorInfiniteQuery.d.ts +9 -9
- package/dist/hooks/useActorInfiniteQuery.d.ts.map +1 -1
- package/dist/hooks/useActorInfiniteQuery.js +3 -1
- package/dist/hooks/useActorInfiniteQuery.js.map +1 -1
- package/dist/hooks/useActorMethod.d.ts +17 -17
- package/dist/hooks/useActorMethod.d.ts.map +1 -1
- package/dist/hooks/useActorMethod.js.map +1 -1
- package/dist/hooks/useActorMutation.d.ts +18 -7
- package/dist/hooks/useActorMutation.d.ts.map +1 -1
- package/dist/hooks/useActorMutation.js +11 -0
- package/dist/hooks/useActorMutation.js.map +1 -1
- package/dist/hooks/useActorQuery.d.ts +8 -8
- package/dist/hooks/useActorQuery.d.ts.map +1 -1
- package/dist/hooks/useActorQuery.js.map +1 -1
- package/dist/hooks/useActorSuspenseInfiniteQuery.d.ts +9 -9
- package/dist/hooks/useActorSuspenseInfiniteQuery.d.ts.map +1 -1
- package/dist/hooks/useActorSuspenseInfiniteQuery.js +3 -1
- package/dist/hooks/useActorSuspenseInfiniteQuery.js.map +1 -1
- package/dist/hooks/useActorSuspenseQuery.d.ts +8 -8
- package/dist/hooks/useActorSuspenseQuery.d.ts.map +1 -1
- package/dist/hooks/useActorSuspenseQuery.js.map +1 -1
- package/dist/index.d.ts +11 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -10
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +24 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +3 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +10 -2
- package/dist/utils.js.map +1 -1
- package/llms.txt +48 -0
- package/package.json +34 -23
- package/src/auth/authentication-manager.ts +591 -0
- package/src/auth/constants.ts +25 -0
- package/src/auth/createIdentityAttributeHooks.ts +83 -0
- package/src/auth/identity-attributes-manager.ts +136 -0
- package/src/auth/identity-attributes.ts +270 -0
- package/src/auth/index.ts +7 -0
- package/src/auth/types.ts +204 -0
- package/src/createActorHooks.ts +90 -58
- package/src/createInfiniteQuery.ts +154 -98
- package/src/createMutation.ts +35 -19
- package/src/createQuery.ts +94 -50
- package/src/createSuspenseInfiniteQuery.ts +166 -115
- package/src/createSuspenseQuery.ts +69 -43
- package/src/defineReactor.ts +272 -0
- package/src/{createAuthHooks.ts → hooks/createAuthHooks.ts} +23 -99
- package/src/hooks/index.ts +4 -0
- package/src/hooks/useActorInfiniteQuery.ts +44 -30
- package/src/hooks/useActorMethod.ts +62 -53
- package/src/hooks/useActorMutation.ts +47 -30
- package/src/hooks/useActorQuery.ts +36 -32
- package/src/hooks/useActorSuspenseInfiniteQuery.ts +56 -30
- package/src/hooks/useActorSuspenseQuery.ts +42 -32
- package/src/index.ts +12 -10
- package/src/types.ts +76 -71
- package/src/utils.ts +15 -2
- package/dist/createAuthHooks.d.ts.map +0 -1
- package/dist/createAuthHooks.js.map +0 -1
- package/src/hooks/useActorInfiniteQuery.test.tsx +0 -457
- package/src/hooks/useActorMethod.test.tsx +0 -798
- package/src/hooks/useActorMutation.test.tsx +0 -220
- package/src/hooks/useActorQuery.test.tsx +0 -287
- package/src/hooks/useActorSuspenseInfiniteQuery.test.tsx +0 -472
- package/src/hooks/useActorSuspenseQuery.test.tsx +0 -254
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createAuthHooks.d.ts","sourceRoot":"","sources":["../../src/hooks/createAuthHooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAa,2BAA2B,EAAE,MAAM,kBAAkB,CAAA;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA;IACjD,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,2BAA2B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1D,eAAe,EAAE,OAAO,CAAA;IACxB,gBAAgB,EAAE,OAAO,CAAA;IACzB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IACzB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAA;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,UAAU,CAAA;IAC/B,gBAAgB,EAAE,MAAM,SAAS,GAAG,IAAI,CAAA;IACxC,OAAO,EAAE,MAAM,aAAa,CAAA;CAC7B;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,GAC1B,gBAAgB,qBAAqB,KACpC,qBA2GF,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { useSyncExternalStore, useEffect, useRef, useMemo
|
|
1
|
+
import { useSyncExternalStore, useEffect, useRef, useMemo } from "react";
|
|
2
2
|
/**
|
|
3
3
|
* Create authentication hooks for managing user sessions with Internet Identity.
|
|
4
4
|
*
|
|
5
5
|
* @example
|
|
6
|
-
* const { useAuth, useUserPrincipal, useAgentState } = createAuthHooks(
|
|
6
|
+
* const { useAuth, useUserPrincipal, useAgentState } = createAuthHooks(authentication)
|
|
7
7
|
*
|
|
8
8
|
* function App() {
|
|
9
9
|
* const { login, logout, principal, isAuthenticated } = useAuth()
|
|
@@ -13,7 +13,8 @@ import { useSyncExternalStore, useEffect, useRef, useMemo, useState, useCallback
|
|
|
13
13
|
* : <button onClick={login}>Login with II</button>
|
|
14
14
|
* }
|
|
15
15
|
*/
|
|
16
|
-
export const createAuthHooks = (
|
|
16
|
+
export const createAuthHooks = (authentication) => {
|
|
17
|
+
const { clientManager } = authentication;
|
|
17
18
|
/**
|
|
18
19
|
* Subscribe to agent state changes.
|
|
19
20
|
* Returns the current agent state (agent, isInitialized, etc.)
|
|
@@ -25,9 +26,9 @@ export const createAuthHooks = (clientManager) => {
|
|
|
25
26
|
* Subscribe to authentication state changes.
|
|
26
27
|
* Returns auth state (isAuthenticated, isAuthenticating, identity, error)
|
|
27
28
|
*/
|
|
28
|
-
const useAuthState = () => useSyncExternalStore((callback) =>
|
|
29
|
+
const useAuthState = () => useSyncExternalStore((callback) => authentication.subscribeAuthState(callback), () => authentication.authState,
|
|
29
30
|
// Server snapshot - provide initial state for SSR
|
|
30
|
-
() =>
|
|
31
|
+
() => authentication.authState);
|
|
31
32
|
/**
|
|
32
33
|
* Main authentication hook that provides login/logout methods and auth state.
|
|
33
34
|
* Automatically initializes the session on first use, restoring any previous session.
|
|
@@ -47,15 +48,24 @@ export const createAuthHooks = (clientManager) => {
|
|
|
47
48
|
* }
|
|
48
49
|
*/
|
|
49
50
|
const useAuth = () => {
|
|
50
|
-
const { login, logout, authenticate } =
|
|
51
|
+
const { login, logout, authenticate } = authentication;
|
|
51
52
|
const { isAuthenticated, isAuthenticating, identity, error } = useAuthState();
|
|
52
53
|
// Track if we've already initialized to avoid duplicate calls
|
|
53
54
|
const initializedRef = useRef(false);
|
|
54
|
-
// Auto-initialize on first mount to restore previous session
|
|
55
|
+
// Auto-initialize on first mount to restore previous session.
|
|
56
|
+
// `prepareClient` also warms up the AuthClient so a later `login()` can
|
|
57
|
+
// open the identity provider window inside the click handler.
|
|
55
58
|
useEffect(() => {
|
|
56
59
|
if (!initializedRef.current) {
|
|
57
60
|
initializedRef.current = true;
|
|
58
|
-
|
|
61
|
+
authentication
|
|
62
|
+
.prepareClient()
|
|
63
|
+
.catch(() => undefined)
|
|
64
|
+
.then(() => clientManager.initialize())
|
|
65
|
+
.then(() => authentication.authenticate())
|
|
66
|
+
// Failures are already reflected in authState/agentState; without
|
|
67
|
+
// this the rejection escapes as an unhandled promise rejection.
|
|
68
|
+
.catch(() => undefined);
|
|
59
69
|
}
|
|
60
70
|
}, []);
|
|
61
71
|
const principal = useMemo(() => (identity ? identity.getPrincipal() : null), [identity]);
|
|
@@ -85,60 +95,10 @@ export const createAuthHooks = (clientManager) => {
|
|
|
85
95
|
const { identity } = useAuthState();
|
|
86
96
|
return identity ? identity.getPrincipal() : null;
|
|
87
97
|
};
|
|
88
|
-
const useIdentityAttributes = () => {
|
|
89
|
-
const [attributes, setAttributes] = useState(null);
|
|
90
|
-
const [isRequestingAttributes, setIsRequestingAttributes] = useState(false);
|
|
91
|
-
const [attributeError, setAttributeError] = useState(null);
|
|
92
|
-
const requestAttributes = useCallback(async (params) => {
|
|
93
|
-
setIsRequestingAttributes(true);
|
|
94
|
-
setAttributeError(null);
|
|
95
|
-
try {
|
|
96
|
-
const result = await clientManager.requestIdentityAttributes(params);
|
|
97
|
-
setAttributes(result);
|
|
98
|
-
return result;
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
setAttributeError(error);
|
|
102
|
-
throw error;
|
|
103
|
-
}
|
|
104
|
-
finally {
|
|
105
|
-
setIsRequestingAttributes(false);
|
|
106
|
-
}
|
|
107
|
-
}, []);
|
|
108
|
-
const requestOpenIdAttributes = useCallback(async (params) => {
|
|
109
|
-
setIsRequestingAttributes(true);
|
|
110
|
-
setAttributeError(null);
|
|
111
|
-
try {
|
|
112
|
-
const result = await clientManager.requestOpenIdIdentityAttributes(params);
|
|
113
|
-
setAttributes(result);
|
|
114
|
-
return result;
|
|
115
|
-
}
|
|
116
|
-
catch (error) {
|
|
117
|
-
setAttributeError(error);
|
|
118
|
-
throw error;
|
|
119
|
-
}
|
|
120
|
-
finally {
|
|
121
|
-
setIsRequestingAttributes(false);
|
|
122
|
-
}
|
|
123
|
-
}, []);
|
|
124
|
-
const clearAttributes = useCallback(() => {
|
|
125
|
-
setAttributes(null);
|
|
126
|
-
setAttributeError(null);
|
|
127
|
-
}, []);
|
|
128
|
-
return {
|
|
129
|
-
requestAttributes,
|
|
130
|
-
requestOpenIdAttributes,
|
|
131
|
-
attributes,
|
|
132
|
-
isRequestingAttributes,
|
|
133
|
-
attributeError,
|
|
134
|
-
clearAttributes,
|
|
135
|
-
};
|
|
136
|
-
};
|
|
137
98
|
return {
|
|
138
99
|
useAuth,
|
|
139
100
|
useAgentState,
|
|
140
101
|
useUserPrincipal,
|
|
141
|
-
useIdentityAttributes,
|
|
142
102
|
};
|
|
143
103
|
};
|
|
144
104
|
//# sourceMappingURL=createAuthHooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createAuthHooks.js","sourceRoot":"","sources":["../../src/hooks/createAuthHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAwBxE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,cAAqC,EACd,EAAE;IACzB,MAAM,EAAE,aAAa,EAAE,GAAG,cAAc,CAAA;IACxC;;;OAGG;IACH,MAAM,aAAa,GAAG,GAAe,EAAE,CACrC,oBAAoB,CAClB,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EACzD,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU;IAC9B,kDAAkD;IAClD,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAC/B,CAAA;IAEH;;;OAGG;IACH,MAAM,YAAY,GAAG,GAAc,EAAE,CACnC,oBAAoB,CAClB,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EACzD,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS;IAC9B,kDAAkD;IAClD,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,CAC/B,CAAA;IAEH;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,OAAO,GAAG,GAAkB,EAAE;QAClC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,cAAc,CAAA;QACtD,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,GAC1D,YAAY,EAAE,CAAA;QAEhB,8DAA8D;QAC9D,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAEpC,8DAA8D;QAC9D,wEAAwE;QACxE,8DAA8D;QAC9D,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC5B,cAAc,CAAC,OAAO,GAAG,IAAI,CAAA;gBAC7B,cAAc;qBACX,aAAa,EAAE;qBACf,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;qBACtB,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;qBACtC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;oBAC1C,kEAAkE;oBAClE,gEAAgE;qBAC/D,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC,EAAE,EAAE,CAAC,CAAA;QAEN,MAAM,SAAS,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACjD,CAAC,QAAQ,CAAC,CACX,CAAA;QAED,OAAO;YACL,YAAY;YACZ,KAAK;YACL,MAAM;YACN,eAAe;YACf,gBAAgB;YAChB,SAAS;YACT,QAAQ;YACR,KAAK;SACN,CAAA;IACH,CAAC,CAAA;IAED;;;;;;;;;;OAUG;IACH,MAAM,gBAAgB,GAAG,GAAqB,EAAE;QAC9C,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAA;QACnC,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IAClD,CAAC,CAAA;IAED,OAAO;QACL,OAAO;QACP,aAAa;QACb,gBAAgB;KACjB,CAAA;AACH,CAAC,CAAA"}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export { useActorSuspenseQuery as useReactorSuspenseQuery } from "./useActorSusp
|
|
|
4
4
|
export { useActorInfiniteQuery as useReactorInfiniteQuery } from "./useActorInfiniteQuery.js";
|
|
5
5
|
export { useActorSuspenseInfiniteQuery as useReactorSuspenseInfiniteQuery } from "./useActorSuspenseInfiniteQuery.js";
|
|
6
6
|
export { useActorMethod, useActorMethod as useReactorMethod, createActorMethodHooks, } from "./useActorMethod.js";
|
|
7
|
+
export { createAuthHooks } from "./createAuthHooks.js";
|
|
8
|
+
export type { CreateAuthHooksReturn, UseAuthReturn } from "./createAuthHooks.js";
|
|
7
9
|
export type { UseActorQueryParameters as UseReactorQueryParameters, UseActorQueryResult as UseReactorQueryResult, } from "./useActorQuery.js";
|
|
8
10
|
export type { UseActorMutationParameters as UseReactorMutationParameters, UseActorMutationResult as UseReactorMutationResult, } from "./useActorMutation.js";
|
|
9
11
|
export type { UseActorSuspenseQueryParameters as UseReactorSuspenseQueryParameters, UseActorSuspenseQueryResult as UseReactorSuspenseQueryResult, } from "./useActorSuspenseQuery.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGrE,OAAO,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAG9E,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAG7F,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAG7F,OAAO,EAAE,6BAA6B,IAAI,+BAA+B,EAAE,MAAM,oCAAoC,CAAA;AAGrH,OAAO,EACL,cAAc,EACd,cAAc,IAAI,gBAAgB,EAClC,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGrE,OAAO,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAG9E,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAG7F,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAG7F,OAAO,EAAE,6BAA6B,IAAI,+BAA+B,EAAE,MAAM,oCAAoC,CAAA;AAGrH,OAAO,EACL,cAAc,EACd,cAAc,IAAI,gBAAgB,EAClC,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAMhF,YAAY,EACV,uBAAuB,IAAI,yBAAyB,EACpD,mBAAmB,IAAI,qBAAqB,GAC7C,MAAM,oBAAoB,CAAA;AAE3B,YAAY,EACV,0BAA0B,IAAI,4BAA4B,EAC1D,sBAAsB,IAAI,wBAAwB,GACnD,MAAM,uBAAuB,CAAA;AAE9B,YAAY,EACV,+BAA+B,IAAI,iCAAiC,EACpE,2BAA2B,IAAI,6BAA6B,GAC7D,MAAM,4BAA4B,CAAA;AAEnC,YAAY,EACV,+BAA+B,IAAI,iCAAiC,EACpE,2BAA2B,IAAI,6BAA6B,GAC7D,MAAM,4BAA4B,CAAA;AAEnC,YAAY,EACV,uCAAuC,IAAI,yCAAyC,EACpF,mCAAmC,IAAI,qCAAqC,GAC7E,MAAM,oCAAoC,CAAA;AAE3C,YAAY,EACV,wBAAwB,IAAI,0BAA0B,EACtD,oBAAoB,IAAI,sBAAsB,GAC/C,MAAM,qBAAqB,CAAA;AAM5B,YAAY,EACV,mBAAmB,IAAI,uBAAuB,EAC9C,mBAAmB,GACpB,MAAM,oBAAoB,CAAA;AAE3B,YAAY,EACV,sBAAsB,IAAI,0BAA0B,EACpD,sBAAsB,GACvB,MAAM,uBAAuB,CAAA;AAE9B,YAAY,EACV,2BAA2B,IAAI,+BAA+B,EAC9D,2BAA2B,GAC5B,MAAM,4BAA4B,CAAA;AAEnC,YAAY,EACV,2BAA2B,IAAI,+BAA+B,EAC9D,2BAA2B,GAC5B,MAAM,4BAA4B,CAAA;AAEnC,YAAY,EACV,mCAAmC,IAAI,uCAAuC,EAC9E,mCAAmC,GACpC,MAAM,oCAAoC,CAAA;AAE3C,YAAY,EACV,oBAAoB,IAAI,wBAAwB,EAChD,oBAAoB,GACrB,MAAM,qBAAqB,CAAA"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -13,4 +13,6 @@ export { useActorInfiniteQuery as useReactorInfiniteQuery } from "./useActorInfi
|
|
|
13
13
|
export { useActorSuspenseInfiniteQuery as useReactorSuspenseInfiniteQuery } from "./useActorSuspenseInfiniteQuery.js";
|
|
14
14
|
// useActorMethod / useReactorMethod
|
|
15
15
|
export { useActorMethod, useActorMethod as useReactorMethod, createActorMethodHooks, } from "./useActorMethod.js";
|
|
16
|
+
// createAuthHooks
|
|
17
|
+
export { createAuthHooks } from "./createAuthHooks.js";
|
|
16
18
|
//# sourceMappingURL=index.js.map
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,kCAAkC;AAClC,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAErE,wCAAwC;AACxC,OAAO,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE9E,kDAAkD;AAClD,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAE7F,kDAAkD;AAClD,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAE7F,kEAAkE;AAClE,OAAO,EAAE,6BAA6B,IAAI,+BAA+B,EAAE,MAAM,oCAAoC,CAAA;AAErH,oCAAoC;AACpC,OAAO,EACL,cAAc,EACd,cAAc,IAAI,gBAAgB,EAClC,sBAAsB,GACvB,MAAM,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,kCAAkC;AAClC,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAErE,wCAAwC;AACxC,OAAO,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE9E,kDAAkD;AAClD,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAE7F,kDAAkD;AAClD,OAAO,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAE7F,kEAAkE;AAClE,OAAO,EAAE,6BAA6B,IAAI,+BAA+B,EAAE,MAAM,oCAAoC,CAAA;AAErH,oCAAoC;AACpC,OAAO,EACL,cAAc,EACd,cAAc,IAAI,gBAAgB,EAClC,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAE5B,kBAAkB;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { QueryKey, UseInfiniteQueryResult, UseInfiniteQueryOptions, InfiniteData } from "@tanstack/react-query";
|
|
2
|
-
import { FunctionName, Reactor, TransformKey, ReactorArgs, ReactorReturnOk, ReactorReturnErr } from "@ic-reactor/core";
|
|
2
|
+
import { FunctionName, Reactor, TransformKey, ReactorArgs, ReactorReturnOk, ReactorQueryData, ReactorReturnErr } from "@ic-reactor/core";
|
|
3
3
|
import { CallConfig } from "@icp-sdk/core/agent";
|
|
4
4
|
/**
|
|
5
5
|
* Parameters for useActorInfiniteQuery hook.
|
|
6
6
|
* Extends react-query's UseInfiniteQueryOptions with custom reactor params.
|
|
7
7
|
*/
|
|
8
|
-
export interface UseActorInfiniteQueryParameters<
|
|
8
|
+
export interface UseActorInfiniteQueryParameters<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", TPageParam = unknown, Selected = InfiniteData<ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, TPageParam>> extends Omit<UseInfiniteQueryOptions<ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, ReactorReturnErr<Service, Method, Transform>, Selected, QueryKey, TPageParam>, "queryKey" | "queryFn" | "getNextPageParam" | "initialPageParam"> {
|
|
9
9
|
/** The reactor instance to use for method calls */
|
|
10
|
-
reactor: Reactor<
|
|
10
|
+
reactor: Reactor<Service, Transform>;
|
|
11
11
|
/** The method name to call on the canister */
|
|
12
|
-
functionName:
|
|
12
|
+
functionName: Method;
|
|
13
13
|
/** Function to get args from page parameter */
|
|
14
|
-
getArgs: (pageParam: TPageParam) => ReactorArgs<
|
|
14
|
+
getArgs: (pageParam: TPageParam) => ReactorArgs<Service, Method, Transform>;
|
|
15
15
|
/** Agent call configuration (effectiveCanisterId, etc.) */
|
|
16
16
|
callConfig?: CallConfig;
|
|
17
17
|
/** Custom query key (auto-generated if not provided) */
|
|
@@ -19,10 +19,10 @@ export interface UseActorInfiniteQueryParameters<A, M extends FunctionName<A>, T
|
|
|
19
19
|
/** Initial page parameter */
|
|
20
20
|
initialPageParam: TPageParam;
|
|
21
21
|
/** Function to determine next page parameter */
|
|
22
|
-
getNextPageParam: (lastPage: ReactorReturnOk<
|
|
22
|
+
getNextPageParam: (lastPage: ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, allPages: ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>[], lastPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined | null;
|
|
23
23
|
}
|
|
24
|
-
export type UseActorInfiniteQueryConfig<
|
|
25
|
-
export type UseActorInfiniteQueryResult<
|
|
24
|
+
export type UseActorInfiniteQueryConfig<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", TPageParam = unknown> = Omit<UseActorInfiniteQueryParameters<Service, Method, Transform, TPageParam>, "reactor">;
|
|
25
|
+
export type UseActorInfiniteQueryResult<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", TPageParam = unknown> = UseInfiniteQueryResult<InfiniteData<ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, TPageParam>, ReactorReturnErr<Service, Method, Transform>>;
|
|
26
26
|
/**
|
|
27
27
|
* Hook for executing infinite/paginated query calls on a canister.
|
|
28
28
|
*
|
|
@@ -35,5 +35,5 @@ export type UseActorInfiniteQueryResult<A, M extends FunctionName<A>, T extends
|
|
|
35
35
|
* getNextPageParam: (lastPage) => lastPage.nextOffset,
|
|
36
36
|
* })
|
|
37
37
|
*/
|
|
38
|
-
export declare const useActorInfiniteQuery: <
|
|
38
|
+
export declare const useActorInfiniteQuery: <Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", TPageParam = unknown>({ reactor, functionName, getArgs, callConfig, queryKey, ...options }: UseActorInfiniteQueryParameters<Service, Method, Transform, TPageParam>) => UseActorInfiniteQueryResult<Service, Method, Transform, TPageParam>;
|
|
39
39
|
//# sourceMappingURL=useActorInfiniteQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActorInfiniteQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorInfiniteQuery.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAER,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"useActorInfiniteQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorInfiniteQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useMemo, useCallback } from "react";
|
|
2
2
|
import { useInfiniteQuery, } from "@tanstack/react-query";
|
|
3
|
+
import { normalizeQueryData } from "../utils.js";
|
|
3
4
|
/**
|
|
4
5
|
* Hook for executing infinite/paginated query calls on a canister.
|
|
5
6
|
*
|
|
@@ -20,11 +21,12 @@ export const useActorInfiniteQuery = ({ reactor, functionName, getArgs, callConf
|
|
|
20
21
|
// Memoize queryFn to prevent recreation on every render
|
|
21
22
|
const queryFn = useCallback(async ({ pageParam }) => {
|
|
22
23
|
const args = getArgs(pageParam);
|
|
23
|
-
|
|
24
|
+
const result = await reactor.callMethod({
|
|
24
25
|
functionName,
|
|
25
26
|
args,
|
|
26
27
|
callConfig,
|
|
27
28
|
});
|
|
29
|
+
return normalizeQueryData(result);
|
|
28
30
|
}, [reactor, functionName, getArgs, callConfig]);
|
|
29
31
|
return useInfiniteQuery({
|
|
30
32
|
queryKey: baseQueryKey,
|
|
@@ -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;
|
|
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"}
|
|
@@ -9,13 +9,13 @@ import { CallConfig } from "@icp-sdk/core/agent";
|
|
|
9
9
|
* Query-specific options (like refetchInterval) only apply to query methods.
|
|
10
10
|
* Mutation-specific options (like invalidateQueries) only apply to mutation methods.
|
|
11
11
|
*/
|
|
12
|
-
export interface UseActorMethodParameters<
|
|
12
|
+
export interface UseActorMethodParameters<Service = BaseActor, Method extends FunctionName<Service> = FunctionName<Service>, Transform extends TransformKey = "candid"> extends Omit<QueryObserverOptions<ReactorReturnOk<Service, Method, Transform>, ReactorReturnErr<Service, Method, Transform>, ReactorReturnOk<Service, Method, Transform>, ReactorReturnOk<Service, Method, Transform>, QueryKey>, "queryKey" | "queryFn"> {
|
|
13
13
|
/** The reactor instance to use for method calls */
|
|
14
|
-
reactor: Reactor<
|
|
14
|
+
reactor: Reactor<Service, Transform>;
|
|
15
15
|
/** The method name to call on the canister */
|
|
16
|
-
functionName:
|
|
16
|
+
functionName: Method;
|
|
17
17
|
/** Arguments to pass to the method (optional for parameterless methods) */
|
|
18
|
-
args?: ReactorArgs<
|
|
18
|
+
args?: ReactorArgs<Service, Method, Transform>;
|
|
19
19
|
/** Agent call configuration (effectiveCanisterId, etc.) */
|
|
20
20
|
callConfig?: CallConfig;
|
|
21
21
|
/** Custom query key (auto-generated if not provided) */
|
|
@@ -24,12 +24,12 @@ export interface UseActorMethodParameters<A = BaseActor, M extends FunctionName<
|
|
|
24
24
|
* Callback when the method call succeeds.
|
|
25
25
|
* Works for both query and mutation methods.
|
|
26
26
|
*/
|
|
27
|
-
onSuccess?: (data: ReactorReturnOk<
|
|
27
|
+
onSuccess?: (data: ReactorReturnOk<Service, Method, Transform>) => void;
|
|
28
28
|
/**
|
|
29
29
|
* Callback when the method call fails.
|
|
30
30
|
* Works for both query and mutation methods.
|
|
31
31
|
*/
|
|
32
|
-
onError?: (error: ReactorReturnErr<
|
|
32
|
+
onError?: (error: ReactorReturnErr<Service, Method, Transform>) => void;
|
|
33
33
|
/**
|
|
34
34
|
* Query keys to invalidate after a successful mutation.
|
|
35
35
|
* Only applies to mutation methods (updates).
|
|
@@ -40,14 +40,14 @@ export interface UseActorMethodParameters<A = BaseActor, M extends FunctionName<
|
|
|
40
40
|
* Configuration type for bound useActorMethod hook (reactor omitted).
|
|
41
41
|
* For use with createActorHooks.
|
|
42
42
|
*/
|
|
43
|
-
export type UseActorMethodConfig<
|
|
43
|
+
export type UseActorMethodConfig<Service = BaseActor, Method extends FunctionName<Service> = FunctionName<Service>, Transform extends TransformKey = "candid"> = Omit<UseActorMethodParameters<Service, Method, Transform>, "reactor">;
|
|
44
44
|
/**
|
|
45
45
|
* Result type for useActorMethod hook.
|
|
46
46
|
* Provides a unified interface for both query and mutation methods.
|
|
47
47
|
*/
|
|
48
|
-
export interface UseActorMethodResult<
|
|
48
|
+
export interface UseActorMethodResult<Service = BaseActor, Method extends FunctionName<Service> = FunctionName<Service>, Transform extends TransformKey = "candid"> {
|
|
49
49
|
/** The returned data from the method call */
|
|
50
|
-
data: ReactorReturnOk<
|
|
50
|
+
data: ReactorReturnOk<Service, Method, Transform> | undefined;
|
|
51
51
|
/** Whether the method is currently executing */
|
|
52
52
|
isLoading: boolean;
|
|
53
53
|
/** Alias for isLoading - whether a mutation is pending */
|
|
@@ -57,7 +57,7 @@ export interface UseActorMethodResult<A = BaseActor, M extends FunctionName<A> =
|
|
|
57
57
|
/** Whether the method has successfully completed at least once */
|
|
58
58
|
isSuccess: boolean;
|
|
59
59
|
/** The error if one occurred */
|
|
60
|
-
error: ReactorReturnErr<
|
|
60
|
+
error: ReactorReturnErr<Service, Method, Transform> | null;
|
|
61
61
|
/** Whether this is a query method (true) or mutation method (false) */
|
|
62
62
|
isQuery: boolean;
|
|
63
63
|
/** The function type (query, update, composite_query) */
|
|
@@ -67,7 +67,7 @@ export interface UseActorMethodResult<A = BaseActor, M extends FunctionName<A> =
|
|
|
67
67
|
* For queries: triggers a refetch
|
|
68
68
|
* For mutations: executes the mutation with the provided args
|
|
69
69
|
*/
|
|
70
|
-
call: (args?: ReactorArgs<
|
|
70
|
+
call: (args?: ReactorArgs<Service, Method, Transform>) => Promise<ReactorReturnOk<Service, Method, Transform> | undefined>;
|
|
71
71
|
/**
|
|
72
72
|
* Reset the state (clear data and error).
|
|
73
73
|
* For queries: removes the query from cache
|
|
@@ -77,17 +77,17 @@ export interface UseActorMethodResult<A = BaseActor, M extends FunctionName<A> =
|
|
|
77
77
|
/**
|
|
78
78
|
* For queries only: Refetch the query
|
|
79
79
|
*/
|
|
80
|
-
refetch: () => Promise<ReactorReturnOk<
|
|
80
|
+
refetch: () => Promise<ReactorReturnOk<Service, Method, Transform> | undefined>;
|
|
81
81
|
/** The raw query result (only available for query methods) */
|
|
82
|
-
queryResult?: UseQueryResult<ReactorReturnOk<
|
|
82
|
+
queryResult?: UseQueryResult<ReactorReturnOk<Service, Method, Transform>, ReactorReturnErr<Service, Method, Transform>>;
|
|
83
83
|
/** The raw mutation result (only available for mutation methods) */
|
|
84
|
-
mutationResult?: UseMutationResult<ReactorReturnOk<
|
|
84
|
+
mutationResult?: UseMutationResult<ReactorReturnOk<Service, Method, Transform>, ReactorReturnErr<Service, Method, Transform>, ReactorArgs<Service, Method, Transform>>;
|
|
85
85
|
}
|
|
86
86
|
/**
|
|
87
87
|
* A unified hook for calling canister methods that automatically handles
|
|
88
88
|
* both query and mutation methods based on the Candid interface.
|
|
89
89
|
*/
|
|
90
|
-
export declare function useActorMethod<
|
|
90
|
+
export declare function useActorMethod<Service = BaseActor, Method extends FunctionName<Service> = FunctionName<Service>, Transform extends TransformKey = "candid">({ reactor, functionName, args, callConfig, queryKey: customQueryKey, enabled, onSuccess, onError, invalidateQueries, ...queryOptions }: UseActorMethodParameters<Service, Method, Transform>): UseActorMethodResult<Service, Method, Transform>;
|
|
91
91
|
/**
|
|
92
92
|
* Creates a bound useMethod hook for a specific reactor instance.
|
|
93
93
|
*
|
|
@@ -96,10 +96,10 @@ export declare function useActorMethod<A = BaseActor, M extends FunctionName<A>
|
|
|
96
96
|
* const { useMethod } = createActorMethodHooks(reactor)
|
|
97
97
|
* ```
|
|
98
98
|
*/
|
|
99
|
-
export declare function createActorMethodHooks<
|
|
99
|
+
export declare function createActorMethodHooks<Service = BaseActor, Transform extends TransformKey = "candid">(reactor: Reactor<Service, Transform>): {
|
|
100
100
|
/**
|
|
101
101
|
* Hook for calling methods on the bound reactor.
|
|
102
102
|
*/
|
|
103
|
-
useMethod: <
|
|
103
|
+
useMethod: <Method extends FunctionName<Service>>(config: Omit<UseActorMethodParameters<Service, Method, Transform>, "reactor">) => UseActorMethodResult<Service, Method, Transform>;
|
|
104
104
|
};
|
|
105
105
|
//# sourceMappingURL=useActorMethod.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActorMethod.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorMethod.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,OAAO,EACP,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,YAAY,EACb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB,CACvC,
|
|
1
|
+
{"version":3,"file":"useActorMethod.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorMethod.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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;AAsJ9B;;;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,EACsC;IAKrD,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,CAC7B;YACE,YAAY;YACZ,IAAI;SACL,EACD,UAAU,CACX,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAA;IAE7D,+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,KAAqD,CAAC,CAAA;gBAChE,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,WAAW,EAAE,QAAQ;QACrB,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,QAAkD,EACgB,EAAE;QACpE,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,KAAqD,CAAC,CAAA;oBAChE,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,QAAmD,CAAC;iBAChE,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;SACwC,CAAA;IACvD,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;SACqC,CAAA;IACvD,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAGpC,OAAoC;IACpC,OAAO;QACL;;WAEG;QACH,SAAS,EAAE,CACT,MAGC,EACD,EAAE,CACF,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAIlC,CAAC;KACL,CAAA;AACH,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { UseMutationOptions, UseMutationResult, QueryKey } from "@tanstack/react-query";
|
|
2
2
|
import { Reactor, ReactorArgs, ReactorReturnOk, FunctionName, TransformKey, ReactorReturnErr, CanisterError, ErrResult, ActorMethodReturnType, TransformReturnRegistry } from "@ic-reactor/core";
|
|
3
3
|
import { CallConfig } from "@icp-sdk/core/agent";
|
|
4
|
-
export interface UseActorMutationParameters<
|
|
5
|
-
reactor: Reactor<
|
|
6
|
-
functionName:
|
|
4
|
+
export interface UseActorMutationParameters<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid"> extends Omit<UseMutationOptions<ReactorReturnOk<Service, Method, Transform>, ReactorReturnErr<Service, Method, Transform>, ReactorArgs<Service, Method, Transform>>, "mutationFn"> {
|
|
5
|
+
reactor: Reactor<Service, Transform>;
|
|
6
|
+
functionName: Method;
|
|
7
7
|
callConfig?: CallConfig;
|
|
8
8
|
invalidateQueries?: QueryKey[];
|
|
9
9
|
/**
|
|
@@ -11,12 +11,14 @@ export interface UseActorMutationParameters<A, M extends FunctionName<A>, T exte
|
|
|
11
11
|
* Called when the canister returns a Result { Err: E } variant.
|
|
12
12
|
* Separate from `onError`, which fires for all errors including network failures.
|
|
13
13
|
*/
|
|
14
|
-
onCanisterError?: (error: CanisterError<TransformReturnRegistry<ErrResult<ActorMethodReturnType<
|
|
14
|
+
onCanisterError?: (error: CanisterError<TransformReturnRegistry<ErrResult<ActorMethodReturnType<Service[Method]>>>[Transform]>, variables: ReactorArgs<Service, Method, Transform>) => void;
|
|
15
15
|
}
|
|
16
|
-
export type UseActorMutationConfig<
|
|
17
|
-
export type UseActorMutationResult<
|
|
16
|
+
export type UseActorMutationConfig<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid"> = Omit<UseActorMutationParameters<Service, Method, Transform>, "reactor">;
|
|
17
|
+
export type UseActorMutationResult<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid"> = UseMutationResult<ReactorReturnOk<Service, Method, Transform>, ReactorReturnErr<Service, Method, Transform>, ReactorArgs<Service, Method, Transform>>;
|
|
18
18
|
/**
|
|
19
19
|
* Hook for executing mutation calls on a canister.
|
|
20
|
+
* Use this for component-level mutation flows.
|
|
21
|
+
* For non-React usage, prefer `createMutation(...).execute(args)`.
|
|
20
22
|
*
|
|
21
23
|
* @example
|
|
22
24
|
* const { mutate, isPending } = useActorMutation({
|
|
@@ -25,6 +27,15 @@ export type UseActorMutationResult<A, M extends FunctionName<A>, T extends Trans
|
|
|
25
27
|
* onSuccess: () => console.log("Success!"),
|
|
26
28
|
* onCanisterError: (err) => console.error("Canister Err:", err.code),
|
|
27
29
|
* })
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* const transferMutation = createMutation(reactor, {
|
|
33
|
+
* functionName: "transfer",
|
|
34
|
+
* onCanisterError: (err) => console.error(err.code),
|
|
35
|
+
* })
|
|
36
|
+
*
|
|
37
|
+
* // Non-React execution path
|
|
38
|
+
* await transferMutation.execute([{ to: "aaaaa-aa", amount: "100" }])
|
|
28
39
|
*/
|
|
29
|
-
export declare const useActorMutation: <
|
|
40
|
+
export declare const useActorMutation: <Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid">({ reactor, functionName, invalidateQueries, onSuccess, onError, onCanisterError, callConfig, ...options }: UseActorMutationParameters<Service, Method, Transform>) => UseActorMutationResult<Service, Method, Transform>;
|
|
30
41
|
//# sourceMappingURL=useActorMutation.d.ts.map
|
|
@@ -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,
|
|
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"}
|
|
@@ -3,6 +3,8 @@ import { useMutation, } from "@tanstack/react-query";
|
|
|
3
3
|
import { isCanisterError, } from "@ic-reactor/core";
|
|
4
4
|
/**
|
|
5
5
|
* Hook for executing mutation calls on a canister.
|
|
6
|
+
* Use this for component-level mutation flows.
|
|
7
|
+
* For non-React usage, prefer `createMutation(...).execute(args)`.
|
|
6
8
|
*
|
|
7
9
|
* @example
|
|
8
10
|
* const { mutate, isPending } = useActorMutation({
|
|
@@ -11,6 +13,15 @@ import { isCanisterError, } from "@ic-reactor/core";
|
|
|
11
13
|
* onSuccess: () => console.log("Success!"),
|
|
12
14
|
* onCanisterError: (err) => console.error("Canister Err:", err.code),
|
|
13
15
|
* })
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* const transferMutation = createMutation(reactor, {
|
|
19
|
+
* functionName: "transfer",
|
|
20
|
+
* onCanisterError: (err) => console.error(err.code),
|
|
21
|
+
* })
|
|
22
|
+
*
|
|
23
|
+
* // Non-React execution path
|
|
24
|
+
* await transferMutation.execute([{ to: "aaaaa-aa", amount: "100" }])
|
|
14
25
|
*/
|
|
15
26
|
export const useActorMutation = ({ reactor, functionName, invalidateQueries, onSuccess, onError, onCanisterError, callConfig, ...options }) => {
|
|
16
27
|
const mutationFn = useCallback(async (args) => reactor.callMethod({ functionName, callConfig, args }), [reactor, functionName, callConfig]);
|
|
@@ -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;
|
|
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,15 +1,15 @@
|
|
|
1
1
|
import { QueryKey, QueryObserverOptions, UseQueryResult } from "@tanstack/react-query";
|
|
2
|
-
import { FunctionName, Reactor, TransformKey, ReactorArgs, ReactorReturnOk, ReactorReturnErr } from "@ic-reactor/core";
|
|
2
|
+
import { FunctionName, Reactor, TransformKey, ReactorArgs, ReactorReturnOk, ReactorQueryData, ReactorReturnErr } from "@ic-reactor/core";
|
|
3
3
|
import { CallConfig } from "@icp-sdk/core/agent";
|
|
4
|
-
export interface UseActorQueryParameters<
|
|
5
|
-
reactor: Reactor<
|
|
6
|
-
functionName:
|
|
7
|
-
args?: ReactorArgs<
|
|
4
|
+
export interface UseActorQueryParameters<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", Selected = ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>> extends Omit<QueryObserverOptions<ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, ReactorReturnErr<Service, Method, Transform>, Selected, ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, QueryKey>, "queryKey" | "queryFn"> {
|
|
5
|
+
reactor: Reactor<Service, Transform>;
|
|
6
|
+
functionName: Method;
|
|
7
|
+
args?: ReactorArgs<Service, Method, Transform>;
|
|
8
8
|
callConfig?: CallConfig;
|
|
9
9
|
queryKey?: QueryKey;
|
|
10
10
|
}
|
|
11
|
-
export type UseActorQueryConfig<
|
|
12
|
-
export type UseActorQueryResult<
|
|
11
|
+
export type UseActorQueryConfig<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", Selected = ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>> = Omit<UseActorQueryParameters<Service, Method, Transform, Selected>, "reactor">;
|
|
12
|
+
export type UseActorQueryResult<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", Selected = ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>> = UseQueryResult<Selected, ReactorReturnErr<Service, Method, Transform>>;
|
|
13
13
|
/**
|
|
14
14
|
* Hook for executing query calls on a canister.
|
|
15
15
|
*
|
|
@@ -28,5 +28,5 @@ export type UseActorQueryResult<A, M extends FunctionName<A>, T extends Transfor
|
|
|
28
28
|
* select: (user) => user.name,
|
|
29
29
|
* })
|
|
30
30
|
*/
|
|
31
|
-
export declare const useActorQuery: <
|
|
31
|
+
export declare const useActorQuery: <Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", Selected = ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>>({ reactor, functionName, args, callConfig, queryKey: defaultQueryKey, ...options }: UseActorQueryParameters<Service, Method, Transform, Selected>) => UseActorQueryResult<Service, Method, Transform, Selected>;
|
|
32
32
|
//# sourceMappingURL=useActorQuery.d.ts.map
|
|
@@ -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,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,MAAM,WAAW,uBAAuB,CACtC,
|
|
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 +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;
|
|
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"}
|