@prismicio/react 2.9.0-alpha.0 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/clientHooks.d.ts +18 -72
- package/dist/package.json.cjs +1 -1
- package/dist/package.json.js +1 -1
- package/dist/useStatefulPrismicClientMethod.cjs +1 -5
- package/dist/useStatefulPrismicClientMethod.cjs.map +1 -1
- package/dist/useStatefulPrismicClientMethod.d.ts +1 -1
- package/dist/useStatefulPrismicClientMethod.js +1 -5
- package/dist/useStatefulPrismicClientMethod.js.map +1 -1
- package/package.json +3 -7
- package/src/useStatefulPrismicClientMethod.ts +2 -6
package/dist/clientHooks.d.ts
CHANGED
|
@@ -14,10 +14,7 @@ import { ClientHookReturnType, HookOnlyParameters } from "./useStatefulPrismicCl
|
|
|
14
14
|
*
|
|
15
15
|
* @see Underlying `@prismicio/client` method {@link proto.get}
|
|
16
16
|
*/
|
|
17
|
-
export declare const usePrismicDocuments: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(params?: (Partial<prismic.BuildQueryURLArgs> &
|
|
18
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
19
|
-
signal?: any;
|
|
20
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<prismic.Query<TDocument>>;
|
|
17
|
+
export declare const usePrismicDocuments: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(params?: (Partial<prismic.BuildQueryURLArgs> & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<prismic.Query<TDocument>>;
|
|
21
18
|
/**
|
|
22
19
|
* A hook that queries content from the Prismic repository and returns only the
|
|
23
20
|
* first result, if any.
|
|
@@ -33,10 +30,7 @@ export declare const usePrismicDocuments: <TDocument extends prismic.PrismicDocu
|
|
|
33
30
|
*
|
|
34
31
|
* @see Underlying `@prismicio/client` method {@link proto.getFirst}
|
|
35
32
|
*/
|
|
36
|
-
export declare const useFirstPrismicDocument: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(params?: (Partial<prismic.BuildQueryURLArgs> &
|
|
37
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
38
|
-
signal?: any;
|
|
39
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument>;
|
|
33
|
+
export declare const useFirstPrismicDocument: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(params?: (Partial<prismic.BuildQueryURLArgs> & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument>;
|
|
40
34
|
/**
|
|
41
35
|
* A hook that queries content from the Prismic repository and returns all
|
|
42
36
|
* matching content. If no predicates are provided, all documents will be
|
|
@@ -55,10 +49,7 @@ export declare const useFirstPrismicDocument: <TDocument extends prismic.Prismic
|
|
|
55
49
|
*/
|
|
56
50
|
export declare const useAllPrismicDocumentsDangerously: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(params?: (Partial<Omit<prismic.BuildQueryURLArgs, "page">> & {
|
|
57
51
|
limit?: number | undefined;
|
|
58
|
-
} &
|
|
59
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
60
|
-
signal?: any;
|
|
61
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
|
|
52
|
+
} & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
|
|
62
53
|
/**
|
|
63
54
|
* A hook that queries a document from the Prismic repository with a specific
|
|
64
55
|
* ID.
|
|
@@ -75,10 +66,7 @@ export declare const useAllPrismicDocumentsDangerously: <TDocument extends prism
|
|
|
75
66
|
*
|
|
76
67
|
* @see Underlying `@prismicio/client` method {@link proto.getByID}
|
|
77
68
|
*/
|
|
78
|
-
export declare const usePrismicDocumentByID: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(id: string, params?: (Partial<prismic.BuildQueryURLArgs> &
|
|
79
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
80
|
-
signal?: any;
|
|
81
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument>;
|
|
69
|
+
export declare const usePrismicDocumentByID: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(id: string, params?: (Partial<prismic.BuildQueryURLArgs> & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument>;
|
|
82
70
|
/**
|
|
83
71
|
* A hook that queries documents from the Prismic repository with specific IDs.
|
|
84
72
|
*
|
|
@@ -94,10 +82,7 @@ export declare const usePrismicDocumentByID: <TDocument extends prismic.PrismicD
|
|
|
94
82
|
*
|
|
95
83
|
* @see Underlying `@prismicio/client` method {@link proto.getByIDs}
|
|
96
84
|
*/
|
|
97
|
-
export declare const usePrismicDocumentsByIDs: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(id: string[], params?: (Partial<prismic.BuildQueryURLArgs> &
|
|
98
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
99
|
-
signal?: any;
|
|
100
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<prismic.Query<TDocument>>;
|
|
85
|
+
export declare const usePrismicDocumentsByIDs: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(id: string[], params?: (Partial<prismic.BuildQueryURLArgs> & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<prismic.Query<TDocument>>;
|
|
101
86
|
/**
|
|
102
87
|
* A hook that queries all documents from the Prismic repository with specific
|
|
103
88
|
* IDs.
|
|
@@ -116,10 +101,7 @@ export declare const usePrismicDocumentsByIDs: <TDocument extends prismic.Prismi
|
|
|
116
101
|
*/
|
|
117
102
|
export declare const useAllPrismicDocumentsByIDs: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(id: string[], params?: (Partial<prismic.BuildQueryURLArgs> & {
|
|
118
103
|
limit?: number | undefined;
|
|
119
|
-
} &
|
|
120
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
121
|
-
signal?: any;
|
|
122
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
|
|
104
|
+
} & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
|
|
123
105
|
/**
|
|
124
106
|
* A hook that queries a document from the Prismic repository with a specific
|
|
125
107
|
* UID and Custom Type.
|
|
@@ -137,10 +119,7 @@ export declare const useAllPrismicDocumentsByIDs: <TDocument extends prismic.Pri
|
|
|
137
119
|
*
|
|
138
120
|
* @see Underlying `@prismicio/client` method {@link proto.getByUID}
|
|
139
121
|
*/
|
|
140
|
-
export declare const usePrismicDocumentByUID: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(documentType: any, uid: string, params?: (Partial<prismic.BuildQueryURLArgs> &
|
|
141
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
142
|
-
signal?: any;
|
|
143
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument>;
|
|
122
|
+
export declare const usePrismicDocumentByUID: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(documentType: any, uid: string, params?: (Partial<prismic.BuildQueryURLArgs> & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument>;
|
|
144
123
|
/**
|
|
145
124
|
* A hook that queries documents from the Prismic repository with specific UIDs
|
|
146
125
|
* of a Custom Type.
|
|
@@ -158,10 +137,7 @@ export declare const usePrismicDocumentByUID: <TDocument extends prismic.Prismic
|
|
|
158
137
|
*
|
|
159
138
|
* @see Underlying `@prismicio/client` method {@link proto.getByUID}
|
|
160
139
|
*/
|
|
161
|
-
export declare const usePrismicDocumentsByUIDs: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(documentType: any, uids: string[], params?: (Partial<prismic.BuildQueryURLArgs> &
|
|
162
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
163
|
-
signal?: any;
|
|
164
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<prismic.Query<TDocument>>;
|
|
140
|
+
export declare const usePrismicDocumentsByUIDs: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(documentType: any, uids: string[], params?: (Partial<prismic.BuildQueryURLArgs> & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<prismic.Query<TDocument>>;
|
|
165
141
|
/**
|
|
166
142
|
* A hook that queries all documents from the Prismic repository with specific
|
|
167
143
|
* UIDs of a Custom Type.
|
|
@@ -179,10 +155,7 @@ export declare const usePrismicDocumentsByUIDs: <TDocument extends prismic.Prism
|
|
|
179
155
|
*
|
|
180
156
|
* @see Underlying `@prismicio/client` method {@link proto.getByUID}
|
|
181
157
|
*/
|
|
182
|
-
export declare const useAllPrismicDocumentsByUIDs: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(documentType: any, uids: string[], params?: (Partial<prismic.BuildQueryURLArgs> &
|
|
183
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
184
|
-
signal?: any;
|
|
185
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
|
|
158
|
+
export declare const useAllPrismicDocumentsByUIDs: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(documentType: any, uids: string[], params?: (Partial<prismic.BuildQueryURLArgs> & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
|
|
186
159
|
/**
|
|
187
160
|
* A hook that queries a singleton document from the Prismic repository for a
|
|
188
161
|
* specific Custom Type.
|
|
@@ -199,10 +172,7 @@ export declare const useAllPrismicDocumentsByUIDs: <TDocument extends prismic.Pr
|
|
|
199
172
|
*
|
|
200
173
|
* @see Underlying `@prismicio/client` method {@link proto.getSingle}
|
|
201
174
|
*/
|
|
202
|
-
export declare const useSinglePrismicDocument: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(documentType: any, params?: (Partial<prismic.BuildQueryURLArgs> &
|
|
203
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
204
|
-
signal?: any;
|
|
205
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument>;
|
|
175
|
+
export declare const useSinglePrismicDocument: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(documentType: any, params?: (Partial<prismic.BuildQueryURLArgs> & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument>;
|
|
206
176
|
/**
|
|
207
177
|
* A hook that queries documents from the Prismic repository for a specific
|
|
208
178
|
* Custom Type.
|
|
@@ -219,10 +189,7 @@ export declare const useSinglePrismicDocument: <TDocument extends prismic.Prismi
|
|
|
219
189
|
*
|
|
220
190
|
* @see Underlying `@prismicio/client` method {@link proto.getByType}
|
|
221
191
|
*/
|
|
222
|
-
export declare const usePrismicDocumentsByType: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(documentType: any, params?: (Partial<prismic.BuildQueryURLArgs> &
|
|
223
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
224
|
-
signal?: any;
|
|
225
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<prismic.Query<TDocument>>;
|
|
192
|
+
export declare const usePrismicDocumentsByType: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(documentType: any, params?: (Partial<prismic.BuildQueryURLArgs> & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<prismic.Query<TDocument>>;
|
|
226
193
|
/**
|
|
227
194
|
* A hook that queries all documents from the Prismic repository for a specific
|
|
228
195
|
* Custom Type.
|
|
@@ -241,10 +208,7 @@ export declare const usePrismicDocumentsByType: <TDocument extends prismic.Prism
|
|
|
241
208
|
*/
|
|
242
209
|
export declare const useAllPrismicDocumentsByType: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(documentType: any, params?: (Partial<Omit<prismic.BuildQueryURLArgs, "page">> & {
|
|
243
210
|
limit?: number | undefined;
|
|
244
|
-
} &
|
|
245
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
246
|
-
signal?: any;
|
|
247
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
|
|
211
|
+
} & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
|
|
248
212
|
/**
|
|
249
213
|
* A hook that queries documents from the Prismic repository with a specific
|
|
250
214
|
* tag.
|
|
@@ -261,10 +225,7 @@ export declare const useAllPrismicDocumentsByType: <TDocument extends prismic.Pr
|
|
|
261
225
|
*
|
|
262
226
|
* @see Underlying `@prismicio/client` method {@link proto.getByTag}
|
|
263
227
|
*/
|
|
264
|
-
export declare const usePrismicDocumentsByTag: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(tag: string, params?: (Partial<prismic.BuildQueryURLArgs> &
|
|
265
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
266
|
-
signal?: any;
|
|
267
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<prismic.Query<TDocument>>;
|
|
228
|
+
export declare const usePrismicDocumentsByTag: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(tag: string, params?: (Partial<prismic.BuildQueryURLArgs> & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<prismic.Query<TDocument>>;
|
|
268
229
|
/**
|
|
269
230
|
* A hook that queries all documents from the Prismic repository with a specific
|
|
270
231
|
* tag.
|
|
@@ -283,10 +244,7 @@ export declare const usePrismicDocumentsByTag: <TDocument extends prismic.Prismi
|
|
|
283
244
|
*/
|
|
284
245
|
export declare const useAllPrismicDocumentsByTag: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(tag: string, params?: (Partial<Omit<prismic.BuildQueryURLArgs, "page">> & {
|
|
285
246
|
limit?: number | undefined;
|
|
286
|
-
} &
|
|
287
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
288
|
-
signal?: any;
|
|
289
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
|
|
247
|
+
} & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
|
|
290
248
|
/**
|
|
291
249
|
* A hook that queries documents from the Prismic repository with specific tags.
|
|
292
250
|
* A document must be tagged with at least one of the queried tags to be
|
|
@@ -304,10 +262,7 @@ export declare const useAllPrismicDocumentsByTag: <TDocument extends prismic.Pri
|
|
|
304
262
|
*
|
|
305
263
|
* @see Underlying `@prismicio/client` method {@link proto.getByTags}
|
|
306
264
|
*/
|
|
307
|
-
export declare const usePrismicDocumentsBySomeTags: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(tag: string[], params?: (Partial<prismic.BuildQueryURLArgs> &
|
|
308
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
309
|
-
signal?: any;
|
|
310
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<prismic.Query<TDocument>>;
|
|
265
|
+
export declare const usePrismicDocumentsBySomeTags: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(tag: string[], params?: (Partial<prismic.BuildQueryURLArgs> & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<prismic.Query<TDocument>>;
|
|
311
266
|
/**
|
|
312
267
|
* A hook that queries all documents from the Prismic repository with specific
|
|
313
268
|
* tags. A document must be tagged with at least one of the queried tags to be
|
|
@@ -327,10 +282,7 @@ export declare const usePrismicDocumentsBySomeTags: <TDocument extends prismic.P
|
|
|
327
282
|
*/
|
|
328
283
|
export declare const useAllPrismicDocumentsBySomeTags: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(tag: string[], params?: (Partial<Omit<prismic.BuildQueryURLArgs, "page">> & {
|
|
329
284
|
limit?: number | undefined;
|
|
330
|
-
} &
|
|
331
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
332
|
-
signal?: any;
|
|
333
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
|
|
285
|
+
} & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
|
|
334
286
|
/**
|
|
335
287
|
* A hook that queries documents from the Prismic repository with specific tags.
|
|
336
288
|
* A document must be tagged with all of the queried tags to be included.
|
|
@@ -347,10 +299,7 @@ export declare const useAllPrismicDocumentsBySomeTags: <TDocument extends prismi
|
|
|
347
299
|
*
|
|
348
300
|
* @see Underlying `@prismicio/client` method {@link proto.getByTags}
|
|
349
301
|
*/
|
|
350
|
-
export declare const usePrismicDocumentsByEveryTag: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(tag: string[], params?: (Partial<prismic.BuildQueryURLArgs> &
|
|
351
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
352
|
-
signal?: any;
|
|
353
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<prismic.Query<TDocument>>;
|
|
302
|
+
export declare const usePrismicDocumentsByEveryTag: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(tag: string[], params?: (Partial<prismic.BuildQueryURLArgs> & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<prismic.Query<TDocument>>;
|
|
354
303
|
/**
|
|
355
304
|
* A hook that queries all documents from the Prismic repository with specific
|
|
356
305
|
* tags. A document must be tagged with all of the queried tags to be included.
|
|
@@ -369,7 +318,4 @@ export declare const usePrismicDocumentsByEveryTag: <TDocument extends prismic.P
|
|
|
369
318
|
*/
|
|
370
319
|
export declare const useAllPrismicDocumentsByEveryTag: <TDocument extends prismic.PrismicDocument<Record<string, any>, string, string>>(tag: string[], params?: (Partial<Omit<prismic.BuildQueryURLArgs, "page">> & {
|
|
371
320
|
limit?: number | undefined;
|
|
372
|
-
} &
|
|
373
|
-
fetchOptions?: prismic.RequestInitLike | undefined;
|
|
374
|
-
signal?: any;
|
|
375
|
-
} & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
|
|
321
|
+
} & import("@prismicio/client/dist/BaseClient").FetchParams & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
|
package/dist/package.json.cjs
CHANGED
package/dist/package.json.js
CHANGED
|
@@ -54,11 +54,7 @@ const useStatefulPrismicClientMethod = (methodName, args, explicitClient) => {
|
|
|
54
54
|
{
|
|
55
55
|
dispatch(["start"]);
|
|
56
56
|
}
|
|
57
|
-
client[methodName].call(
|
|
58
|
-
client,
|
|
59
|
-
...argsWithoutParams,
|
|
60
|
-
params
|
|
61
|
-
).then((result) => {
|
|
57
|
+
client[methodName].call(client, ...argsWithoutParams, params).then((result) => {
|
|
62
58
|
{
|
|
63
59
|
dispatch(["succeed", result]);
|
|
64
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStatefulPrismicClientMethod.cjs","sources":["../../src/useStatefulPrismicClientMethod.ts"],"sourcesContent":["import type * as prismic from \"@prismicio/client\";\n\nimport * as React from \"react\";\n\nimport { PrismicClientHookState } from \"./types\";\nimport { usePrismicClient } from \"./usePrismicClient\";\n\ntype StateMachineState<TData> = {\n\tstate: PrismicClientHookState;\n\tdata?: TData;\n\terror?: Error;\n};\n\ntype StateMachineAction<TData> =\n\t| [type: \"start\"]\n\t| [type: \"succeed\", payload: TData]\n\t| [type: \"fail\", payload: Error];\n\nconst reducer = <TData>(\n\tstate: StateMachineState<TData>,\n\taction: StateMachineAction<TData>,\n): StateMachineState<TData> => {\n\tswitch (action[0]) {\n\t\tcase \"start\": {\n\t\t\treturn { state: \"loading\" };\n\t\t}\n\n\t\tcase \"succeed\": {\n\t\t\treturn { state: \"loaded\", data: action[1] };\n\t\t}\n\n\t\tcase \"fail\": {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tstate: \"failed\",\n\t\t\t\terror: action[1],\n\t\t\t};\n\t\t}\n\t}\n};\n\nconst initialState: StateMachineState<never> = {\n\tstate: \"idle\",\n};\n\ntype UnwrapPromise<T> = T extends Promise<infer U> ? U : T;\n\ntype ClientPrototype = typeof prismic.Client.prototype;\n\ntype ClientMethod<MethodName extends keyof ClientPrototype> =\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tClientPrototype[MethodName] extends (...args: any[]) => any\n\t\t? ClientPrototype[MethodName]\n\t\t: never;\n\ntype ClientMethodName = keyof {\n\t[P in keyof prismic.Client as prismic.Client[P] extends (\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t...args: any[]\n\t) => // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tPromise<any>\n\t\t? P\n\t\t: never]: unknown;\n};\n\nexport type ClientMethodParameters<MethodName extends keyof ClientPrototype> =\n\tParameters<ClientMethod<MethodName>>;\n\nexport type HookOnlyParameters = {\n\tclient?: prismic.Client;\n\tskip?: boolean;\n};\n\n/**\n * Determines if a value is a `@prismicio/client` params object.\n *\n * @param value - The value to check.\n *\n * @returns `true` if `value` is a `@prismicio/client` params object, `false`\n * otherwise.\n */\nconst isParams = (\n\tvalue: unknown,\n): value is ClientMethodParameters<\"get\">[0] & HookOnlyParameters => {\n\t// This is a *very* naive check.\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n};\n\n/**\n * The return value of a `@prismicio/client` React hook.\n *\n * @typeParam TData - Data returned by the client.\n */\nexport type ClientHookReturnType<TData = unknown> = [\n\t/**\n\t * Data returned by the client.\n\t */\n\tdata: TData | undefined,\n\n\t/**\n\t * The current state of the hook's client method call.\n\t */\n\tstate: Pick<StateMachineState<TData>, \"state\" | \"error\">,\n];\n\n/**\n * Creates a React hook that forwards arguments to a specific method of a\n * `@prismicio/client` instance. The created hook has its own internal state\n * manager to report async status, such as pending or error statuses.\n *\n * @param methodName - The `@prismicio/client` method to which hook arguments\n * will be forwarded.\n *\n * @returns A new React hook configured for the provided method.\n *\n * @internal\n */\nexport const useStatefulPrismicClientMethod = <\n\tTMethodName extends ClientMethodName,\n\tTArgs extends Parameters<ClientMethod<TMethodName>>,\n\tTData extends UnwrapPromise<ReturnType<ClientMethod<TMethodName>>>,\n>(\n\tmethodName: TMethodName,\n\targs: TArgs,\n\texplicitClient?: prismic.Client,\n): ClientHookReturnType<TData> => {\n\tconst lastArg = args[args.length - 1];\n\tconst {\n\t\tclient: lastArgExplicitClient,\n\t\tskip,\n\t\t...params\n\t} = isParams(lastArg) ? lastArg : ({} as HookOnlyParameters);\n\tconst argsWithoutParams = isParams(lastArg) ? args.slice(0, -1) : args;\n\n\tconst client = usePrismicClient(explicitClient || lastArgExplicitClient);\n\n\tconst [state, dispatch] = React.useReducer<\n\t\tReact.Reducer<StateMachineState<TData>, StateMachineAction<TData>>\n\t>(reducer, initialState);\n\n\tReact.useEffect(\n\t\t() => {\n\t\t\t// Used to prevent dispatching an action if the hook was cleaned up.\n\t\t\tlet didCancel = false;\n\n\t\t\tif (!skip) {\n\t\t\t\tif (!didCancel) {\n\t\t\t\t\tdispatch([\"start\"]);\n\t\t\t\t}\n\n\t\t\t\
|
|
1
|
+
{"version":3,"file":"useStatefulPrismicClientMethod.cjs","sources":["../../src/useStatefulPrismicClientMethod.ts"],"sourcesContent":["import type * as prismic from \"@prismicio/client\";\n\nimport * as React from \"react\";\n\nimport { PrismicClientHookState } from \"./types\";\nimport { usePrismicClient } from \"./usePrismicClient\";\n\ntype StateMachineState<TData> = {\n\tstate: PrismicClientHookState;\n\tdata?: TData;\n\terror?: Error;\n};\n\ntype StateMachineAction<TData> =\n\t| [type: \"start\"]\n\t| [type: \"succeed\", payload: TData]\n\t| [type: \"fail\", payload: Error];\n\nconst reducer = <TData>(\n\tstate: StateMachineState<TData>,\n\taction: StateMachineAction<TData>,\n): StateMachineState<TData> => {\n\tswitch (action[0]) {\n\t\tcase \"start\": {\n\t\t\treturn { state: \"loading\" };\n\t\t}\n\n\t\tcase \"succeed\": {\n\t\t\treturn { state: \"loaded\", data: action[1] };\n\t\t}\n\n\t\tcase \"fail\": {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tstate: \"failed\",\n\t\t\t\terror: action[1],\n\t\t\t};\n\t\t}\n\t}\n};\n\nconst initialState: StateMachineState<never> = {\n\tstate: \"idle\",\n};\n\ntype UnwrapPromise<T> = T extends Promise<infer U> ? U : T;\n\ntype ClientPrototype = typeof prismic.Client.prototype;\n\ntype ClientMethod<MethodName extends keyof ClientPrototype> =\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tClientPrototype[MethodName] extends (...args: any[]) => any\n\t\t? ClientPrototype[MethodName]\n\t\t: never;\n\ntype ClientMethodName = keyof {\n\t[P in keyof prismic.Client as prismic.Client[P] extends (\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t...args: any[]\n\t) => // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tPromise<any>\n\t\t? P\n\t\t: never]: unknown;\n};\n\nexport type ClientMethodParameters<MethodName extends keyof ClientPrototype> =\n\tParameters<ClientMethod<MethodName>>;\n\nexport type HookOnlyParameters = {\n\tclient?: prismic.Client;\n\tskip?: boolean;\n};\n\n/**\n * Determines if a value is a `@prismicio/client` params object.\n *\n * @param value - The value to check.\n *\n * @returns `true` if `value` is a `@prismicio/client` params object, `false`\n * otherwise.\n */\nconst isParams = (\n\tvalue: unknown,\n): value is ClientMethodParameters<\"get\">[0] & HookOnlyParameters => {\n\t// This is a *very* naive check.\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n};\n\n/**\n * The return value of a `@prismicio/client` React hook.\n *\n * @typeParam TData - Data returned by the client.\n */\nexport type ClientHookReturnType<TData = unknown> = [\n\t/**\n\t * Data returned by the client.\n\t */\n\tdata: TData | undefined,\n\n\t/**\n\t * The current state of the hook's client method call.\n\t */\n\tstate: Pick<StateMachineState<TData>, \"state\" | \"error\">,\n];\n\n/**\n * Creates a React hook that forwards arguments to a specific method of a\n * `@prismicio/client` instance. The created hook has its own internal state\n * manager to report async status, such as pending or error statuses.\n *\n * @param methodName - The `@prismicio/client` method to which hook arguments\n * will be forwarded.\n *\n * @returns A new React hook configured for the provided method.\n *\n * @internal\n */\nexport const useStatefulPrismicClientMethod = <\n\tTMethodName extends ClientMethodName,\n\tTArgs extends Parameters<ClientMethod<TMethodName>>,\n\tTData extends UnwrapPromise<ReturnType<ClientMethod<TMethodName>>>,\n>(\n\tmethodName: TMethodName,\n\targs: TArgs,\n\texplicitClient?: prismic.Client,\n): ClientHookReturnType<TData> => {\n\tconst lastArg = args[args.length - 1];\n\tconst {\n\t\tclient: lastArgExplicitClient,\n\t\tskip,\n\t\t...params\n\t} = isParams(lastArg) ? lastArg : ({} as HookOnlyParameters);\n\tconst argsWithoutParams = isParams(lastArg) ? args.slice(0, -1) : args;\n\n\tconst client = usePrismicClient(explicitClient || lastArgExplicitClient);\n\n\tconst [state, dispatch] = React.useReducer<\n\t\tReact.Reducer<StateMachineState<TData>, StateMachineAction<TData>>\n\t>(reducer, initialState);\n\n\tReact.useEffect(\n\t\t() => {\n\t\t\t// Used to prevent dispatching an action if the hook was cleaned up.\n\t\t\tlet didCancel = false;\n\n\t\t\tif (!skip) {\n\t\t\t\tif (!didCancel) {\n\t\t\t\t\tdispatch([\"start\"]);\n\t\t\t\t}\n\n\t\t\t\t// @ts-expect-error - Merging method arg types is too complex\n\t\t\t\tclient[methodName]\n\t\t\t\t\t.call(client, ...argsWithoutParams, params)\n\t\t\t\t\t.then((result) => {\n\t\t\t\t\t\tif (!didCancel) {\n\t\t\t\t\t\t\tdispatch([\"succeed\", result as TData]);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tif (!didCancel) {\n\t\t\t\t\t\t\tdispatch([\"fail\", error]);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Ensure we don't dispatch an action if the hook is cleaned up.\n\t\t\t() => {\n\t\t\t\tdidCancel = true;\n\t\t\t};\n\t\t},\n\t\t// We must disable exhaustive-deps since we are using\n\t\t// JSON.stringify on params (effectively a deep equality check).\n\t\t// We want this effect to run again anytime params change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tclient,\n\t\t\tmethodName,\n\t\t\tskip,\n\t\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t\tJSON.stringify(argsWithoutParams),\n\t\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t\tJSON.stringify(params),\n\t\t],\n\t);\n\n\treturn React.useMemo(\n\t\t() => [\n\t\t\tstate.data,\n\t\t\t{\n\t\t\t\tstate: state.state,\n\t\t\t\terror: state.error,\n\t\t\t},\n\t\t],\n\t\t[state],\n\t);\n};\n"],"names":["usePrismicClient","React"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,UAAU,CACf,OACA,WAC6B;AACrB,UAAA,OAAO,CAAC,GAAG;AAAA,IAClB,KAAK,SAAS;AACN,aAAA,EAAE,OAAO;IAChB;AAAA,IAED,KAAK,WAAW;AACf,aAAO,EAAE,OAAO,UAAU,MAAM,OAAO,CAAC;IACxC;AAAA,IAED,KAAK,QAAQ;AACL,aAAA;AAAA,QACN,GAAG;AAAA,QACH,OAAO;AAAA,QACP,OAAO,OAAO,CAAC;AAAA,MAAA;AAAA,IAEhB;AAAA,EACD;AACF;AAEA,MAAM,eAAyC;AAAA,EAC9C,OAAO;;AAuCR,MAAM,WAAW,CAChB,UACmE;AAE5D,SAAA,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC3E;AA+BO,MAAM,iCAAiC,CAK7C,YACA,MACA,mBACgC;AAChC,QAAM,UAAU,KAAK,KAAK,SAAS,CAAC;AAC9B,QAAA,EACL,QAAQ,uBACR,MACA,GAAG,WACA,SAAS,OAAO,IAAI,UAAW;AAC7B,QAAA,oBAAoB,SAAS,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI;AAE5D,QAAA,SAASA,iBAAAA,iBAAiB,kBAAkB,qBAAqB;AAEvE,QAAM,CAAC,OAAO,QAAQ,IAAIC,iBAAM,WAE9B,SAAS,YAAY;AAEjBA,mBAAA;AAAA,IACL,MAAK;AAIJ,UAAI,CAAC,MAAM;AACM;AACN,mBAAA,CAAC,OAAO,CAAC;AAAA,QAClB;AAGM,eAAA,UAAU,EACf,KAAK,QAAQ,GAAG,mBAAmB,MAAM,EACzC,KAAK,CAAC,WAAU;AACA;AACN,qBAAA,CAAC,WAAW,MAAe,CAAC;AAAA,UACrC;AAAA,QAAA,CACD,EACA,MAAM,CAAC,UAAS;AACA;AACN,qBAAA,CAAC,QAAQ,KAAK,CAAC;AAAA,UACxB;AAAA,QAAA,CACD;AAAA,MACF;AAAA,IAMF;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA,KAAK,UAAU,iBAAiB;AAAA;AAAA,MAEhC,KAAK,UAAU,MAAM;AAAA,IACrB;AAAA,EAAA;AAGK,SAAAA,iBAAM,QACZ,MAAM;AAAA,IACL,MAAM;AAAA,IACN;AAAA,MACC,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,IACb;AAAA,EAAA,GAEF,CAAC,KAAK,CAAC;AAET;;"}
|
|
@@ -40,5 +40,5 @@ export type ClientHookReturnType<TData = unknown> = [
|
|
|
40
40
|
*
|
|
41
41
|
* @internal
|
|
42
42
|
*/
|
|
43
|
-
export declare const useStatefulPrismicClientMethod: <TMethodName extends "
|
|
43
|
+
export declare const useStatefulPrismicClientMethod: <TMethodName extends "get" | "getFirst" | "dangerouslyGetAll" | "getByID" | "getByIDs" | "getAllByIDs" | "getByUID" | "getByUIDs" | "getAllByUIDs" | "getSingle" | "getByType" | "getAllByType" | "getByTag" | "getAllByTag" | "getByEveryTag" | "getAllByEveryTag" | "getBySomeTags" | "getAllBySomeTags" | "getRepository" | "getRefs" | "getRefByID" | "getRefByLabel" | "getMasterRef" | "getReleases" | "getReleaseByID" | "getReleaseByLabel" | "getTags" | "buildQueryURL" | "resolvePreviewURL" | "graphQLFetch" | "fetchFn", TArgs extends Parameters<ClientMethod<TMethodName>>, TData extends UnwrapPromise<ReturnType<ClientMethod<TMethodName>>>>(methodName: TMethodName, args: TArgs, explicitClient?: prismic.Client) => ClientHookReturnType<TData>;
|
|
44
44
|
export {};
|
|
@@ -35,11 +35,7 @@ const useStatefulPrismicClientMethod = (methodName, args, explicitClient) => {
|
|
|
35
35
|
{
|
|
36
36
|
dispatch(["start"]);
|
|
37
37
|
}
|
|
38
|
-
client[methodName].call(
|
|
39
|
-
client,
|
|
40
|
-
...argsWithoutParams,
|
|
41
|
-
params
|
|
42
|
-
).then((result) => {
|
|
38
|
+
client[methodName].call(client, ...argsWithoutParams, params).then((result) => {
|
|
43
39
|
{
|
|
44
40
|
dispatch(["succeed", result]);
|
|
45
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStatefulPrismicClientMethod.js","sources":["../../src/useStatefulPrismicClientMethod.ts"],"sourcesContent":["import type * as prismic from \"@prismicio/client\";\n\nimport * as React from \"react\";\n\nimport { PrismicClientHookState } from \"./types\";\nimport { usePrismicClient } from \"./usePrismicClient\";\n\ntype StateMachineState<TData> = {\n\tstate: PrismicClientHookState;\n\tdata?: TData;\n\terror?: Error;\n};\n\ntype StateMachineAction<TData> =\n\t| [type: \"start\"]\n\t| [type: \"succeed\", payload: TData]\n\t| [type: \"fail\", payload: Error];\n\nconst reducer = <TData>(\n\tstate: StateMachineState<TData>,\n\taction: StateMachineAction<TData>,\n): StateMachineState<TData> => {\n\tswitch (action[0]) {\n\t\tcase \"start\": {\n\t\t\treturn { state: \"loading\" };\n\t\t}\n\n\t\tcase \"succeed\": {\n\t\t\treturn { state: \"loaded\", data: action[1] };\n\t\t}\n\n\t\tcase \"fail\": {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tstate: \"failed\",\n\t\t\t\terror: action[1],\n\t\t\t};\n\t\t}\n\t}\n};\n\nconst initialState: StateMachineState<never> = {\n\tstate: \"idle\",\n};\n\ntype UnwrapPromise<T> = T extends Promise<infer U> ? U : T;\n\ntype ClientPrototype = typeof prismic.Client.prototype;\n\ntype ClientMethod<MethodName extends keyof ClientPrototype> =\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tClientPrototype[MethodName] extends (...args: any[]) => any\n\t\t? ClientPrototype[MethodName]\n\t\t: never;\n\ntype ClientMethodName = keyof {\n\t[P in keyof prismic.Client as prismic.Client[P] extends (\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t...args: any[]\n\t) => // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tPromise<any>\n\t\t? P\n\t\t: never]: unknown;\n};\n\nexport type ClientMethodParameters<MethodName extends keyof ClientPrototype> =\n\tParameters<ClientMethod<MethodName>>;\n\nexport type HookOnlyParameters = {\n\tclient?: prismic.Client;\n\tskip?: boolean;\n};\n\n/**\n * Determines if a value is a `@prismicio/client` params object.\n *\n * @param value - The value to check.\n *\n * @returns `true` if `value` is a `@prismicio/client` params object, `false`\n * otherwise.\n */\nconst isParams = (\n\tvalue: unknown,\n): value is ClientMethodParameters<\"get\">[0] & HookOnlyParameters => {\n\t// This is a *very* naive check.\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n};\n\n/**\n * The return value of a `@prismicio/client` React hook.\n *\n * @typeParam TData - Data returned by the client.\n */\nexport type ClientHookReturnType<TData = unknown> = [\n\t/**\n\t * Data returned by the client.\n\t */\n\tdata: TData | undefined,\n\n\t/**\n\t * The current state of the hook's client method call.\n\t */\n\tstate: Pick<StateMachineState<TData>, \"state\" | \"error\">,\n];\n\n/**\n * Creates a React hook that forwards arguments to a specific method of a\n * `@prismicio/client` instance. The created hook has its own internal state\n * manager to report async status, such as pending or error statuses.\n *\n * @param methodName - The `@prismicio/client` method to which hook arguments\n * will be forwarded.\n *\n * @returns A new React hook configured for the provided method.\n *\n * @internal\n */\nexport const useStatefulPrismicClientMethod = <\n\tTMethodName extends ClientMethodName,\n\tTArgs extends Parameters<ClientMethod<TMethodName>>,\n\tTData extends UnwrapPromise<ReturnType<ClientMethod<TMethodName>>>,\n>(\n\tmethodName: TMethodName,\n\targs: TArgs,\n\texplicitClient?: prismic.Client,\n): ClientHookReturnType<TData> => {\n\tconst lastArg = args[args.length - 1];\n\tconst {\n\t\tclient: lastArgExplicitClient,\n\t\tskip,\n\t\t...params\n\t} = isParams(lastArg) ? lastArg : ({} as HookOnlyParameters);\n\tconst argsWithoutParams = isParams(lastArg) ? args.slice(0, -1) : args;\n\n\tconst client = usePrismicClient(explicitClient || lastArgExplicitClient);\n\n\tconst [state, dispatch] = React.useReducer<\n\t\tReact.Reducer<StateMachineState<TData>, StateMachineAction<TData>>\n\t>(reducer, initialState);\n\n\tReact.useEffect(\n\t\t() => {\n\t\t\t// Used to prevent dispatching an action if the hook was cleaned up.\n\t\t\tlet didCancel = false;\n\n\t\t\tif (!skip) {\n\t\t\t\tif (!didCancel) {\n\t\t\t\t\tdispatch([\"start\"]);\n\t\t\t\t}\n\n\t\t\t\
|
|
1
|
+
{"version":3,"file":"useStatefulPrismicClientMethod.js","sources":["../../src/useStatefulPrismicClientMethod.ts"],"sourcesContent":["import type * as prismic from \"@prismicio/client\";\n\nimport * as React from \"react\";\n\nimport { PrismicClientHookState } from \"./types\";\nimport { usePrismicClient } from \"./usePrismicClient\";\n\ntype StateMachineState<TData> = {\n\tstate: PrismicClientHookState;\n\tdata?: TData;\n\terror?: Error;\n};\n\ntype StateMachineAction<TData> =\n\t| [type: \"start\"]\n\t| [type: \"succeed\", payload: TData]\n\t| [type: \"fail\", payload: Error];\n\nconst reducer = <TData>(\n\tstate: StateMachineState<TData>,\n\taction: StateMachineAction<TData>,\n): StateMachineState<TData> => {\n\tswitch (action[0]) {\n\t\tcase \"start\": {\n\t\t\treturn { state: \"loading\" };\n\t\t}\n\n\t\tcase \"succeed\": {\n\t\t\treturn { state: \"loaded\", data: action[1] };\n\t\t}\n\n\t\tcase \"fail\": {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tstate: \"failed\",\n\t\t\t\terror: action[1],\n\t\t\t};\n\t\t}\n\t}\n};\n\nconst initialState: StateMachineState<never> = {\n\tstate: \"idle\",\n};\n\ntype UnwrapPromise<T> = T extends Promise<infer U> ? U : T;\n\ntype ClientPrototype = typeof prismic.Client.prototype;\n\ntype ClientMethod<MethodName extends keyof ClientPrototype> =\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tClientPrototype[MethodName] extends (...args: any[]) => any\n\t\t? ClientPrototype[MethodName]\n\t\t: never;\n\ntype ClientMethodName = keyof {\n\t[P in keyof prismic.Client as prismic.Client[P] extends (\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t...args: any[]\n\t) => // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tPromise<any>\n\t\t? P\n\t\t: never]: unknown;\n};\n\nexport type ClientMethodParameters<MethodName extends keyof ClientPrototype> =\n\tParameters<ClientMethod<MethodName>>;\n\nexport type HookOnlyParameters = {\n\tclient?: prismic.Client;\n\tskip?: boolean;\n};\n\n/**\n * Determines if a value is a `@prismicio/client` params object.\n *\n * @param value - The value to check.\n *\n * @returns `true` if `value` is a `@prismicio/client` params object, `false`\n * otherwise.\n */\nconst isParams = (\n\tvalue: unknown,\n): value is ClientMethodParameters<\"get\">[0] & HookOnlyParameters => {\n\t// This is a *very* naive check.\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n};\n\n/**\n * The return value of a `@prismicio/client` React hook.\n *\n * @typeParam TData - Data returned by the client.\n */\nexport type ClientHookReturnType<TData = unknown> = [\n\t/**\n\t * Data returned by the client.\n\t */\n\tdata: TData | undefined,\n\n\t/**\n\t * The current state of the hook's client method call.\n\t */\n\tstate: Pick<StateMachineState<TData>, \"state\" | \"error\">,\n];\n\n/**\n * Creates a React hook that forwards arguments to a specific method of a\n * `@prismicio/client` instance. The created hook has its own internal state\n * manager to report async status, such as pending or error statuses.\n *\n * @param methodName - The `@prismicio/client` method to which hook arguments\n * will be forwarded.\n *\n * @returns A new React hook configured for the provided method.\n *\n * @internal\n */\nexport const useStatefulPrismicClientMethod = <\n\tTMethodName extends ClientMethodName,\n\tTArgs extends Parameters<ClientMethod<TMethodName>>,\n\tTData extends UnwrapPromise<ReturnType<ClientMethod<TMethodName>>>,\n>(\n\tmethodName: TMethodName,\n\targs: TArgs,\n\texplicitClient?: prismic.Client,\n): ClientHookReturnType<TData> => {\n\tconst lastArg = args[args.length - 1];\n\tconst {\n\t\tclient: lastArgExplicitClient,\n\t\tskip,\n\t\t...params\n\t} = isParams(lastArg) ? lastArg : ({} as HookOnlyParameters);\n\tconst argsWithoutParams = isParams(lastArg) ? args.slice(0, -1) : args;\n\n\tconst client = usePrismicClient(explicitClient || lastArgExplicitClient);\n\n\tconst [state, dispatch] = React.useReducer<\n\t\tReact.Reducer<StateMachineState<TData>, StateMachineAction<TData>>\n\t>(reducer, initialState);\n\n\tReact.useEffect(\n\t\t() => {\n\t\t\t// Used to prevent dispatching an action if the hook was cleaned up.\n\t\t\tlet didCancel = false;\n\n\t\t\tif (!skip) {\n\t\t\t\tif (!didCancel) {\n\t\t\t\t\tdispatch([\"start\"]);\n\t\t\t\t}\n\n\t\t\t\t// @ts-expect-error - Merging method arg types is too complex\n\t\t\t\tclient[methodName]\n\t\t\t\t\t.call(client, ...argsWithoutParams, params)\n\t\t\t\t\t.then((result) => {\n\t\t\t\t\t\tif (!didCancel) {\n\t\t\t\t\t\t\tdispatch([\"succeed\", result as TData]);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tif (!didCancel) {\n\t\t\t\t\t\t\tdispatch([\"fail\", error]);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Ensure we don't dispatch an action if the hook is cleaned up.\n\t\t\t() => {\n\t\t\t\tdidCancel = true;\n\t\t\t};\n\t\t},\n\t\t// We must disable exhaustive-deps since we are using\n\t\t// JSON.stringify on params (effectively a deep equality check).\n\t\t// We want this effect to run again anytime params change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tclient,\n\t\t\tmethodName,\n\t\t\tskip,\n\t\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t\tJSON.stringify(argsWithoutParams),\n\t\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t\tJSON.stringify(params),\n\t\t],\n\t);\n\n\treturn React.useMemo(\n\t\t() => [\n\t\t\tstate.data,\n\t\t\t{\n\t\t\t\tstate: state.state,\n\t\t\t\terror: state.error,\n\t\t\t},\n\t\t],\n\t\t[state],\n\t);\n};\n"],"names":[],"mappings":";;AAkBA,MAAM,UAAU,CACf,OACA,WAC6B;AACrB,UAAA,OAAO,CAAC,GAAG;AAAA,IAClB,KAAK,SAAS;AACN,aAAA,EAAE,OAAO;IAChB;AAAA,IAED,KAAK,WAAW;AACf,aAAO,EAAE,OAAO,UAAU,MAAM,OAAO,CAAC;IACxC;AAAA,IAED,KAAK,QAAQ;AACL,aAAA;AAAA,QACN,GAAG;AAAA,QACH,OAAO;AAAA,QACP,OAAO,OAAO,CAAC;AAAA,MAAA;AAAA,IAEhB;AAAA,EACD;AACF;AAEA,MAAM,eAAyC;AAAA,EAC9C,OAAO;;AAuCR,MAAM,WAAW,CAChB,UACmE;AAE5D,SAAA,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC3E;AA+BO,MAAM,iCAAiC,CAK7C,YACA,MACA,mBACgC;AAChC,QAAM,UAAU,KAAK,KAAK,SAAS,CAAC;AAC9B,QAAA,EACL,QAAQ,uBACR,MACA,GAAG,WACA,SAAS,OAAO,IAAI,UAAW;AAC7B,QAAA,oBAAoB,SAAS,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI;AAE5D,QAAA,SAAS,iBAAiB,kBAAkB,qBAAqB;AAEvE,QAAM,CAAC,OAAO,QAAQ,IAAI,MAAM,WAE9B,SAAS,YAAY;AAEjB,QAAA;AAAA,IACL,MAAK;AAIJ,UAAI,CAAC,MAAM;AACM;AACN,mBAAA,CAAC,OAAO,CAAC;AAAA,QAClB;AAGM,eAAA,UAAU,EACf,KAAK,QAAQ,GAAG,mBAAmB,MAAM,EACzC,KAAK,CAAC,WAAU;AACA;AACN,qBAAA,CAAC,WAAW,MAAe,CAAC;AAAA,UACrC;AAAA,QAAA,CACD,EACA,MAAM,CAAC,UAAS;AACA;AACN,qBAAA,CAAC,QAAQ,KAAK,CAAC;AAAA,UACxB;AAAA,QAAA,CACD;AAAA,MACF;AAAA,IAMF;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA,KAAK,UAAU,iBAAiB;AAAA;AAAA,MAEhC,KAAK,UAAU,MAAM;AAAA,IACrB;AAAA,EAAA;AAGK,SAAA,MAAM,QACZ,MAAM;AAAA,IACL,MAAM;AAAA,IACN;AAAA,MACC,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,IACb;AAAA,EAAA,GAEF,CAAC,KAAK,CAAC;AAET;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prismicio/react",
|
|
3
|
-
"version": "2.9.0
|
|
3
|
+
"version": "2.9.0",
|
|
4
4
|
"description": "React components and hooks to fetch and present Prismic content",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -69,8 +69,8 @@
|
|
|
69
69
|
"@prismicio/richtext": "^2.1.5"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"@prismicio/client": "7.
|
|
73
|
-
"@prismicio/mock": "0.
|
|
72
|
+
"@prismicio/client": "^7.11.0",
|
|
73
|
+
"@prismicio/mock": "0.4.0",
|
|
74
74
|
"@size-limit/preset-small-lib": "^8.2.4",
|
|
75
75
|
"@testing-library/react": "^14.0.0",
|
|
76
76
|
"@types/node-fetch": "^3.0.3",
|
|
@@ -111,9 +111,5 @@
|
|
|
111
111
|
},
|
|
112
112
|
"publishConfig": {
|
|
113
113
|
"access": "public"
|
|
114
|
-
},
|
|
115
|
-
"overrides": {
|
|
116
|
-
"@prismicio/client": "7.9.0-alpha.3",
|
|
117
|
-
"@prismicio/mock": "0.3.8-alpha.2"
|
|
118
114
|
}
|
|
119
115
|
}
|
|
@@ -148,13 +148,9 @@ export const useStatefulPrismicClientMethod = <
|
|
|
148
148
|
dispatch(["start"]);
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
+
// @ts-expect-error - Merging method arg types is too complex
|
|
151
152
|
client[methodName]
|
|
152
|
-
.call(
|
|
153
|
-
client,
|
|
154
|
-
// @ts-expect-error - Merging method arg types is too complex
|
|
155
|
-
...argsWithoutParams,
|
|
156
|
-
params,
|
|
157
|
-
)
|
|
153
|
+
.call(client, ...argsWithoutParams, params)
|
|
158
154
|
.then((result) => {
|
|
159
155
|
if (!didCancel) {
|
|
160
156
|
dispatch(["succeed", result as TData]);
|