File tree Expand file tree Collapse file tree 7 files changed +82
-2
lines changed Expand file tree Collapse file tree 7 files changed +82
-2
lines changed Original file line number Diff line number Diff line change @@ -253,4 +253,27 @@ describe('useQueries', () => {
253253      res : [ firstResult ,  secondResult ] , 
254254    } ) 
255255  } ) 
256+ 
257+   test ( 'should be `enabled` to accept getter function' ,  async  ( )  =>  { 
258+     const  fetchFn  =  vi . fn ( ) 
259+     const  checked  =  ref ( false ) 
260+ 
261+     useQueries ( { 
262+       queries : [ 
263+         { 
264+           queryKey : [ 'enabled' ] , 
265+           queryFn : fetchFn , 
266+           enabled : ( )  =>  checked . value , 
267+         } , 
268+       ] , 
269+     } ) 
270+ 
271+     expect ( fetchFn ) . not . toHaveBeenCalled ( ) 
272+ 
273+     checked . value  =  true 
274+ 
275+     await  flushPromises ( ) 
276+ 
277+     expect ( fetchFn ) . toHaveBeenCalled ( ) 
278+   } ) 
256279} ) 
Original file line number Diff line number Diff line change @@ -269,6 +269,25 @@ describe('useQuery', () => {
269269    ) 
270270  } ) 
271271
272+   test ( 'should be `enabled` to accept getter function' ,  async  ( )  =>  { 
273+     const  fetchFn  =  vi . fn ( ) 
274+     const  checked  =  ref ( false ) 
275+ 
276+     useQuery ( { 
277+       queryKey : [ 'enabled' ] , 
278+       queryFn : fetchFn , 
279+       enabled : ( )  =>  checked . value , 
280+     } ) 
281+ 
282+     expect ( fetchFn ) . not . toHaveBeenCalled ( ) 
283+ 
284+     checked . value  =  true 
285+ 
286+     await  flushPromises ( ) 
287+ 
288+     expect ( fetchFn ) . toHaveBeenCalled ( ) 
289+   } ) 
290+ 
272291  describe ( 'throwOnError' ,  ( )  =>  { 
273292    test ( 'should evaluate throwOnError when query is expected to throw' ,  async  ( )  =>  { 
274293      const  boundaryFn  =  vi . fn ( ) 
Original file line number Diff line number Diff line change @@ -14,6 +14,8 @@ type UnwrapLeaf =
1414
1515export  type  MaybeRef < T >  =  Ref < T >  |  T 
1616
17+ export  type  MaybeRefOrGetter < T >  =  MaybeRef < T >  |  ( ( )  =>  T ) 
18+ 
1719export  type  MaybeRefDeep < T >  =  MaybeRef < 
1820  T  extends  Function 
1921    ? T 
Original file line number Diff line number Diff line change @@ -84,13 +84,19 @@ export function useBaseQuery<
8484  const  client  =  queryClient  ||  useQueryClient ( ) 
8585
8686  const  defaultedOptions  =  computed ( ( )  =>  { 
87+     const  clonedOptions  =  cloneDeepUnref ( options  as  any ) 
88+ 
89+     if  ( typeof  clonedOptions . enabled  ===  'function' )  { 
90+       clonedOptions . enabled  =  clonedOptions . enabled ( ) 
91+     } 
92+ 
8793    const  defaulted : DefaultedQueryObserverOptions < 
8894      TQueryFnData , 
8995      TError , 
9096      TData , 
9197      TQueryData , 
9298      TQueryKey 
93-     >  =  client . defaultQueryOptions ( cloneDeepUnref ( options   as   any ) ) 
99+     >  =  client . defaultQueryOptions ( clonedOptions ) 
94100
95101    defaulted . _optimisticResults  =  client . isRestoring . value 
96102      ? 'isRestoring' 
Original file line number Diff line number Diff line change @@ -12,7 +12,12 @@ import type {
1212
1313import  type  {  UseBaseQueryReturnType  }  from  './useBaseQuery' 
1414
15- import  type  {  DeepUnwrapRef ,  DistributiveOmit ,  MaybeRefDeep  }  from  './types' 
15+ import  type  { 
16+   DeepUnwrapRef , 
17+   DistributiveOmit , 
18+   MaybeRefDeep , 
19+   MaybeRefOrGetter , 
20+ }  from  './types' 
1621import  type  {  QueryClient  }  from  './queryClient' 
1722
1823export  type  UseInfiniteQueryOptions < 
@@ -39,6 +44,16 @@ export type UseInfiniteQueryOptions<
3944        DeepUnwrapRef < TQueryKey > , 
4045        TPageParam 
4146      > [ Property ] 
47+     : Property  extends  'enabled' 
48+     ? MaybeRefOrGetter < 
49+         InfiniteQueryObserverOptions < 
50+           TQueryFnData , 
51+           TError , 
52+           TData , 
53+           TQueryData , 
54+           TQueryKey 
55+         > [ Property ] 
56+       > 
4257    : MaybeRefDeep < 
4358        WithRequired < 
4459          InfiniteQueryObserverOptions < 
Original file line number Diff line number Diff line change @@ -186,6 +186,10 @@ export function useQueries<
186186
187187  const  defaultedQueries  =  computed ( ( )  => 
188188    cloneDeepUnref ( queries ) . map ( ( queryOptions )  =>  { 
189+       if  ( typeof  queryOptions . enabled  ===  'function' )  { 
190+         queryOptions . enabled  =  queryOptions . enabled ( ) 
191+       } 
192+ 
189193      const  defaulted  =  client . defaultQueryOptions ( queryOptions ) 
190194      defaulted . _optimisticResults  =  client . isRestoring . value 
191195        ? 'isRestoring' 
Original file line number Diff line number Diff line change @@ -15,6 +15,7 @@ import type {
1515  DistributiveOmit , 
1616  MaybeRef , 
1717  MaybeRefDeep , 
18+   MaybeRefOrGetter , 
1819}  from  './types' 
1920import  type  {  QueryClient  }  from  './queryClient' 
2021
@@ -39,6 +40,16 @@ export type UseQueryOptions<
3940        TQueryData , 
4041        DeepUnwrapRef < TQueryKey > 
4142      > [ Property ] 
43+     : Property  extends  'enabled' 
44+     ? MaybeRefOrGetter < 
45+         QueryObserverOptions < 
46+           TQueryFnData , 
47+           TError , 
48+           TData , 
49+           TQueryData , 
50+           TQueryKey 
51+         > [ Property ] 
52+       > 
4253    : MaybeRefDeep < 
4354        WithRequired < 
4455          QueryObserverOptions < 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments