Skip to content

Commit 2ab927d

Browse files
committed
feat: unref useQueries options
1 parent 3e9cf9a commit 2ab927d

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

src/vuejs/useQueries.ts

+13-13
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import {
55
reactive,
66
readonly,
77
watch,
8-
unref,
98
Ref,
109
isRef,
1110
isReactive,
@@ -15,6 +14,7 @@ import type { QueryFunction, QueryObserverResult } from "@tanstack/query-core";
1514

1615
import { useQueryClient } from "./useQueryClient";
1716
import { UseQueryOptions } from "./useQuery";
17+
import { cloneDeepUnref } from "./utils";
1818

1919
// Avoid TS depth-limit error in case of large array literal
2020
type MAXIMUM_DEPTH = 20;
@@ -137,28 +137,28 @@ export function useQueries<T extends any[]>({
137137
}: {
138138
queries: Ref<UseQueriesOptionsArg<T>> | UseQueriesOptionsArg<T>;
139139
}): Readonly<UseQueriesResults<T>> {
140-
const queryClientKey = (unref(queries) as UseQueriesOptionsArg<T>)[0]
141-
?.queryClientKey;
140+
const unreffedQueries = cloneDeepUnref(queries) as UseQueriesOptionsArg<T>;
141+
142+
const queryClientKey = unreffedQueries[0]?.queryClientKey;
142143
const queryClient = useQueryClient(queryClientKey);
143-
const defaultedQueries = (unref(queries) as UseQueriesOptionsArg<T>).map(
144-
(options) => {
145-
return queryClient.defaultQueryOptions(options);
146-
}
147-
);
144+
const defaultedQueries = unreffedQueries.map((options) => {
145+
return queryClient.defaultQueryOptions(options);
146+
});
148147

149148
const observer = new QueriesObserver(queryClient, defaultedQueries);
150149
const state = reactive(observer.getCurrentResult());
150+
151151
const unsubscribe = observer.subscribe((result) => {
152152
state.splice(0, state.length, ...result);
153153
});
154154

155155
if (isRef(queries) || isReactive(queries)) {
156156
watch(queries, () => {
157-
const defaulted = (unref(queries) as UseQueriesOptionsArg<T>).map(
158-
(options) => {
159-
return queryClient.defaultQueryOptions(options);
160-
}
161-
);
157+
const defaulted = (
158+
cloneDeepUnref(queries) as UseQueriesOptionsArg<T>
159+
).map((options) => {
160+
return queryClient.defaultQueryOptions(options);
161+
});
162162
observer.setQueries(defaulted);
163163
});
164164
}

0 commit comments

Comments
 (0)