From 806ea83faf40b9efed5fccede3479216a2a7f850 Mon Sep 17 00:00:00 2001 From: ecyrbe Date: Sun, 29 Jan 2023 19:43:39 +0100 Subject: [PATCH] docs(changeset): fix(react): do not double fetch if react-query signal is not used --- .changeset/gorgeous-dolls-fry.md | 9 +++++++++ packages/react/src/hooks.ts | 28 ++++++++++++++-------------- 2 files changed, 23 insertions(+), 14 deletions(-) create mode 100644 .changeset/gorgeous-dolls-fry.md diff --git a/.changeset/gorgeous-dolls-fry.md b/.changeset/gorgeous-dolls-fry.md new file mode 100644 index 00000000..63a430ec --- /dev/null +++ b/.changeset/gorgeous-dolls-fry.md @@ -0,0 +1,9 @@ +--- +"@zodios/axios": major +"@zodios/core": major +"@zodios/fetch": major +"@zodios/react": major +"@zodios/testing": major +--- + +fix(react): do not double fetch if react-query signal is not used diff --git a/packages/react/src/hooks.ts b/packages/react/src/hooks.ts index 6e8e5d38..809972d6 100644 --- a/packages/react/src/hooks.ts +++ b/packages/react/src/hooks.ts @@ -257,11 +257,11 @@ export class ZodiosHooksImpl< ["params", "queries", "body"] ); const key = [{ api: this.apiName, path }, params] as QueryKey; - const query = ({ signal }: { signal?: AbortSignal }) => + const query = (queryParams: QueryFunctionContext) => this.zodios.get(path, { ...(config as any), signal: this.options.shouldAbortOnUnmount - ? combineSignals(signal, (config as any)?.signal) + ? combineSignals(queryParams.signal, (config as any)?.signal) : (config as any)?.signal, }); const queryClient = useQueryClient(); @@ -306,11 +306,11 @@ export class ZodiosHooksImpl< ["params", "queries", "body"] ); const key = [{ api: this.apiName, path }, params] as QueryKey; - const query = ({ signal }: { signal?: AbortSignal }) => + const query = (queryParams: QueryFunctionContext) => this.zodios.post(path, { ...(config as any), signal: this.options.shouldAbortOnUnmount - ? combineSignals(signal, (config as any)?.signal) + ? combineSignals(queryParams.signal, (config as any)?.signal) : (config as any)?.signal, }); const queryClient = useQueryClient(); @@ -392,27 +392,27 @@ export class ZodiosHooksImpl< ); } const key = [{ api: this.apiName, path }, params]; - const query = ({ pageParam = undefined, signal }: QueryFunctionContext) => + const query = (queryParams: QueryFunctionContext) => this.zodios.get(path, { ...config, queries: { ...(config as any)?.queries, - ...pageParam?.queries, + ...queryParams.pageParam?.queries, }, params: { ...(config as any)?.params, - ...pageParam?.params, + ...queryParams.pageParam?.params, }, body: // istanbul ignore next hasObjectBody(config) ? { ...(config as any)?.body, - ...pageParam?.body, + ...queryParams.pageParam?.body, } : (config as any)?.body, signal: this.options.shouldAbortOnUnmount - ? combineSignals(signal, (config as any)?.signal) + ? combineSignals(queryParams.signal, (config as any)?.signal) : (config as any)?.signal, } as unknown as ReadonlyDeep); const queryClient = useQueryClient(); @@ -507,27 +507,27 @@ export class ZodiosHooksImpl< ); } const key = [{ api: this.apiName, path }, params]; - const query = ({ pageParam = undefined, signal }: QueryFunctionContext) => + const query = (queryParams: QueryFunctionContext) => this.zodios.post(path, { ...config, queries: { ...(config as any)?.queries, - ...pageParam?.queries, + ...queryParams.pageParam?.queries, }, params: { ...(config as any)?.params, - ...pageParam?.params, + ...queryParams.pageParam?.params, }, body: // istanbul ignore next hasObjectBody(config) ? { ...(config as any)?.body, - ...pageParam?.body, + ...queryParams.pageParam?.body, } : (config as any)?.body, signal: this.options.shouldAbortOnUnmount - ? combineSignals(signal, (config as any)?.signal) + ? combineSignals(queryParams.signal, (config as any)?.signal) : (config as any)?.signal, } as unknown as ReadonlyDeep); const queryClient = useQueryClient();