Skip to content

Commit 2d5de76

Browse files
authored
fix: update queryHash when queryKey is updated using updateOptions (#55)
* fix: update queryHash when queryKey is updated using updateOptions * refactor: move updateOptions to QueryObserver
1 parent f129daa commit 2d5de76

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

src/infiniteQuery/useInfiniteQuery.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export default function useInfiniteQuery<TQueryFnData, TError, TData = TQueryFnD
8383
}
8484

8585
function updateOptions(options: Partial<UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>>): void {
86-
observer.setOptions({ ...observer.options, ...options })
86+
observer.updateOptions(options)
8787
}
8888

8989
function setEnabled(enabled: boolean): void {

src/query/useQuery.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ export default function useQuery<TQueryFnData = unknown, TError = unknown, TData
7979
}
8080

8181
function updateOptions(options: Partial<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>>): void {
82-
observer.setOptions({ ...observer.options, ...options })
82+
observer.updateOptions(options)
8383
}
8484

8585
function setEnabled(enabled: boolean): void {

src/queryCore/core/queryObserver.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {
2+
hashQueryKeyByOptions,
23
isServer,
34
isValidTimeout,
45
noop,
@@ -196,6 +197,25 @@ export class QueryObserver<
196197
}
197198
}
198199

200+
updateOptions(
201+
options?: Partial<QueryObserverOptions<
202+
TQueryFnData,
203+
TError,
204+
TData,
205+
TQueryData,
206+
TQueryKey
207+
>>,
208+
notifyOptions?: NotifyOptions
209+
): void {
210+
const mergedOptions = { ...this.options, ...options }
211+
212+
if (options.queryKey && !options.queryHash && options.queryKey !== this.options.queryKey) {
213+
mergedOptions.queryHash = hashQueryKeyByOptions(options.queryKey, mergedOptions)
214+
}
215+
216+
this.setOptions(mergedOptions, notifyOptions)
217+
}
218+
199219
getOptimisticResult(
200220
options: QueryObserverOptions<
201221
TQueryFnData,

0 commit comments

Comments
 (0)