@@ -217,7 +217,7 @@ export interface BaseSharedOptions {
217217 suspense : boolean
218218}
219219
220- export interface BaseQueryOptions < TError = Error > {
220+ export interface BaseQueryOptions < TResult = unknown , TError = Error > {
221221 /**
222222 * Set this to `false` to disable automatic refetching when the query mounts or changes query keys.
223223 * To refetch the query, use the `refetch` method returned from the `useQuery` instance.
@@ -237,18 +237,16 @@ export interface BaseQueryOptions<TError = Error> {
237237 refetchIntervalInBackground ?: boolean
238238 refetchOnWindowFocus ?: boolean
239239 refetchOnMount ?: boolean
240- onSuccess ?: ( data : any ) => void
240+ onSuccess ?: ( data : TResult ) => void
241241 onError ?: ( err : TError ) => void
242- onSettled ?: ( data : any , error : TError | null ) => void
242+ onSettled ?: ( data : TResult | undefined , error : TError | null ) => void
243243 isDataEqual ?: ( oldData : unknown , newData : unknown ) => boolean
244244 useErrorBoundary ?: boolean
245245}
246246
247247export interface QueryOptions < TResult , TError = Error >
248- extends BaseQueryOptions < TError > {
248+ extends BaseQueryOptions < TResult , TError > {
249249 suspense ?: boolean
250- onSuccess ?: ( data : TResult ) => void
251- onSettled ?: ( data : TResult | undefined , error : TError | null ) => void
252250 initialData ?: TResult | ( ( ) => TResult | undefined )
253251 initialStale ?: boolean | ( ( ) => boolean | undefined )
254252}
@@ -387,37 +385,57 @@ export interface InfiniteQueryResult<TResult, TMoreVariable, TError = Error>
387385 ) => Promise < TResult [ ] > | undefined
388386}
389387
390- export function useMutation < TResults , TVariables = undefined , TError = Error > (
391- mutationFn : MutationFunction < TResults , TVariables , TError > ,
392- mutationOptions ?: MutationOptions < TResults , TVariables , TError >
388+ export function useMutation <
389+ TResult ,
390+ TVariables = undefined ,
391+ TError = Error ,
392+ TSnapshot = unknown
393+ > (
394+ mutationFn : MutationFunction < TResult , TVariables , TError , TSnapshot > ,
395+ mutationOptions ?: MutationOptions < TResult , TVariables , TError , TSnapshot >
393396) : [
394- MutateFunction < TResults , TVariables , TError > ,
395- MutationResult < TResults , TError >
397+ MutateFunction < TResult , TVariables , TError > ,
398+ MutationResult < TResult , TError >
396399]
397400
398- export type MutationFunction < TResults , TVariables , TError = Error > = (
401+ export type MutationFunction <
402+ TResult ,
403+ TVariables ,
404+ TError = Error ,
405+ TSnapshot = unknown
406+ > = (
399407 variables : TVariables ,
400- mutateOptions ?: MutateOptions < TResults , TVariables , TError >
401- ) => Promise < TResults >
408+ mutateOptions ?: MutateOptions < TResult , TVariables , TError , TSnapshot >
409+ ) => Promise < TResult >
402410
403- export interface MutateOptions < TResult , TVariables , TError = Error > {
411+ export interface MutateOptions <
412+ TResult ,
413+ TVariables ,
414+ TError = Error ,
415+ TSnapshot = unknown
416+ > {
404417 onSuccess ?: ( data : TResult , variables : TVariables ) => Promise < void > | void
405418 onError ?: (
406419 error : TError ,
407- snapshotValue : unknown ,
408- onMutateValue : ( variable : TVariables ) => Promise < unknown > | unknown
420+ variables : TVariables ,
421+ snapshotValue : TSnapshot
409422 ) => Promise < void > | void
410423 onSettled ?: (
411424 data : undefined | TResult ,
412425 error : TError | null ,
413- snapshotValue ?: unknown
426+ variables : TVariables ,
427+ snapshotValue ?: TSnapshot
414428 ) => Promise < void > | void
415429 throwOnError ?: boolean
416430}
417431
418- export interface MutationOptions < TResult , TVariables , TError = Error >
419- extends MutateOptions < TResult , TVariables , TError > {
420- onMutate ?: ( variables : TVariables ) => Promise < unknown > | unknown
432+ export interface MutationOptions <
433+ TResult ,
434+ TVariables ,
435+ TError = Error ,
436+ TSnapshot = unknown
437+ > extends MutateOptions < TResult , TVariables , TError , TSnapshot > {
438+ onMutate ?: ( variables : TVariables ) => Promise < TSnapshot > | TSnapshot
421439 useErrorBoundary ?: boolean
422440}
423441
@@ -605,7 +623,7 @@ export interface QueryCache {
605623 ) : void
606624 isFetching : number
607625 subscribe ( callback : ( queryCache : QueryCache ) => void ) : ( ) => void
608- clear ( ) : void ,
626+ clear ( ) : void
609627 resetErrorBoundaries : ( ) => void
610628}
611629
@@ -655,18 +673,7 @@ export interface ReactQueryProviderConfig<TError = Error> {
655673 ) => [ string , QueryKeyPart [ ] ] | [ ]
656674 }
657675 shared ?: BaseSharedOptions
658- mutations ?: {
659- throwOnError ?: boolean
660- useErrorBoundary ?: boolean
661- onMutate ?: ( variables : unknown ) => Promise < unknown > | unknown
662- onSuccess ?: ( data : unknown , variables ?: unknown ) => void
663- onError ?: ( err : TError , snapshotValue ?: unknown ) => void
664- onSettled ?: (
665- data : unknown | undefined ,
666- error : TError | null ,
667- snapshotValue ?: unknown
668- ) => void
669- }
676+ mutations ?: MutationOptions < unknown , unknown , TError >
670677}
671678
672679export type ConsoleFunction = ( ...args : any [ ] ) => void
0 commit comments