@@ -297,11 +297,31 @@ export function useQueries<
297297 defaultedQueries . value ,
298298 options as QueriesObserverOptions < TCombinedResult > ,
299299 )
300- const [ , getCombinedResult ] = observer . getOptimisticResult (
301- defaultedQueries . value ,
302- ( options as QueriesObserverOptions < TCombinedResult > ) . combine ,
303- )
304- const state = shallowRef ( getCombinedResult ( ) )
300+
301+ const getOptimisticResult = ( ) => {
302+ const [ results , getCombinedResult ] = observer . getOptimisticResult (
303+ defaultedQueries . value ,
304+ ( options as QueriesObserverOptions < TCombinedResult > ) . combine ,
305+ )
306+
307+ return getCombinedResult (
308+ results . map ( ( result , index ) => {
309+ return {
310+ ...result ,
311+ refetch : async ( ...args : Array < any > ) => {
312+ const [ { [ index ] : query } ] = observer . getOptimisticResult (
313+ defaultedQueries . value ,
314+ ( options as QueriesObserverOptions < TCombinedResult > ) . combine ,
315+ )
316+
317+ return query ! . refetch ( ...args )
318+ } ,
319+ }
320+ } ) ,
321+ )
322+ }
323+
324+ const state = shallowRef ( getOptimisticResult ( ) )
305325
306326 let unsubscribe = ( ) => {
307327 // noop
@@ -313,38 +333,22 @@ export function useQueries<
313333 if ( ! isRestoring ) {
314334 unsubscribe ( )
315335 unsubscribe = observer . subscribe ( ( ) => {
316- const [ , getCombinedResultRestoring ] = observer . getOptimisticResult (
317- defaultedQueries . value ,
318- ( options as QueriesObserverOptions < TCombinedResult > ) . combine ,
319- )
320- state . value = getCombinedResultRestoring ( )
336+ state . value = getOptimisticResult ( )
321337 } )
322- // Subscription would not fire for persisted results
323- const [ , getCombinedResultPersisted ] = observer . getOptimisticResult (
324- defaultedQueries . value ,
325- ( options as QueriesObserverOptions < TCombinedResult > ) . combine ,
326- )
327- state . value = getCombinedResultPersisted ( )
338+
339+ state . value = getOptimisticResult ( )
328340 }
329341 } ,
330342 { immediate : true } ,
331343 )
332344
333- watch (
334- defaultedQueries ,
335- ( ) => {
336- observer . setQueries (
337- defaultedQueries . value ,
338- options as QueriesObserverOptions < TCombinedResult > ,
339- )
340- const [ , getCombinedResultPersisted ] = observer . getOptimisticResult (
341- defaultedQueries . value ,
342- ( options as QueriesObserverOptions < TCombinedResult > ) . combine ,
343- )
344- state . value = getCombinedResultPersisted ( )
345- } ,
346- { flush : 'sync' } ,
347- )
345+ watch ( defaultedQueries , ( queriesValue ) => {
346+ observer . setQueries (
347+ queriesValue ,
348+ options as QueriesObserverOptions < TCombinedResult > ,
349+ )
350+ state . value = getOptimisticResult ( )
351+ } )
348352
349353 onScopeDispose ( ( ) => {
350354 unsubscribe ( )
0 commit comments