MutationResult<TData, TVariables> typedef

MutationResult<TData, TVariables> = ({Ref<TData?> data, Ref<String?> error, ReadonlyRef<bool> isError, ReadonlyRef<bool> isIdle, ReadonlyRef<bool> isPending, ReadonlyRef<bool> isSuccess, void Function(TVariables variables) mutate, Future<TData> Function(TVariables variables) mutateAsync, void Function() reset, Ref<QueryStatus> status, Ref<TVariables?> variables})

Result type for useMutation.

final mutation = useMutation(
  mutationFn: (data) => api.createTodo(data),
);

// Status
mutation.isPending()   // Mutation in progress
mutation.isSuccess()   // Mutation succeeded
mutation.isError()     // Mutation failed

// Data
mutation.data()        // Response data
mutation.error()       // Error message

// Execute
mutation.mutate(newTodo);       // Fire and forget
await mutation.mutateAsync(newTodo);  // Await result

// Reset
mutation.reset();      // Clear state

Implementation

typedef MutationResult<TData, TVariables> = ({
  /// Response data from mutation.
  Ref<TData?> data,

  /// Error message if mutation failed.
  Ref<String?> error,

  /// The variables passed to the last mutation.
  Ref<TVariables?> variables,

  /// Current mutation status.
  Ref<QueryStatus> status,

  /// True if mutation is in progress.
  ReadonlyRef<bool> isPending,

  /// True if mutation succeeded.
  ReadonlyRef<bool> isSuccess,

  /// True if mutation failed.
  ReadonlyRef<bool> isError,

  /// True if mutation is idle (not yet called or reset).
  ReadonlyRef<bool> isIdle,

  /// Execute the mutation (fire and forget).
  void Function(TVariables variables) mutate,

  /// Execute the mutation and await the result.
  Future<TData> Function(TVariables variables) mutateAsync,

  /// Reset mutation state.
  void Function() reset,
});