55 reactive ,
66 readonly ,
77 watch ,
8- unref ,
98 Ref ,
109 isRef ,
1110 isReactive ,
@@ -18,6 +17,7 @@ import type {
1817
1918import { useQueryClient } from "./useQueryClient" ;
2019import { UseQueryOptions } from "./useQuery" ;
20+ import { cloneDeepUnref } from "./utils" ;
2121
2222// Avoid TS depth-limit error in case of large array literal
2323type MAXIMUM_DEPTH = 20 ;
@@ -138,28 +138,28 @@ type UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>];
138138export function useQueries < T extends any [ ] > (
139139 queries : Ref < UseQueriesOptionsArg < T > > | UseQueriesOptionsArg < T >
140140) : Readonly < UseQueriesResults < T > > {
141- const queryClientKey = ( unref ( queries ) as UseQueriesOptionsArg < T > ) [ 0 ]
142- ?. queryClientKey ;
141+ const unreffedQueries = cloneDeepUnref ( queries ) as UseQueriesOptionsArg < T > ;
142+
143+ const queryClientKey = unreffedQueries [ 0 ] ?. queryClientKey ;
143144 const queryClient = useQueryClient ( queryClientKey ) ;
144- const defaultedQueries = ( unref ( queries ) as UseQueriesOptionsArg < T > ) . map (
145- ( options ) => {
146- return queryClient . defaultQueryObserverOptions ( options ) ;
147- }
148- ) ;
145+ const defaultedQueries = unreffedQueries . map ( ( options ) => {
146+ return queryClient . defaultQueryObserverOptions ( options ) ;
147+ } ) ;
149148
150149 const observer = new QueriesObserver ( queryClient , defaultedQueries ) ;
151150 const state = reactive ( observer . getCurrentResult ( ) ) ;
151+
152152 const unsubscribe = observer . subscribe ( ( result ) => {
153153 state . splice ( 0 , state . length , ...result ) ;
154154 } ) ;
155155
156156 if ( isRef ( queries ) || isReactive ( queries ) ) {
157157 watch ( queries , ( ) => {
158- const defaulted = ( unref ( queries ) as UseQueriesOptionsArg < T > ) . map (
159- ( options ) => {
160- return queryClient . defaultQueryObserverOptions ( options ) ;
161- }
162- ) ;
158+ const defaulted = (
159+ cloneDeepUnref ( queries ) as UseQueriesOptionsArg < T >
160+ ) . map ( ( options ) => {
161+ return queryClient . defaultQueryObserverOptions ( options ) ;
162+ } ) ;
163163 observer . setQueries ( defaulted ) ;
164164 } ) ;
165165 }
0 commit comments