Skip to main content

Documentation Index

Fetch the complete documentation index at: https://kubo-47e69177.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

useActionMutation

Signature

packages/query/src/useActionMutation.ts
export function useActionMutation<TInput, TOutput, TError = unknown, TContext = unknown>(
  action: DefinedAction<TInput, TOutput>,
  options?: UseActionMutationOptions<TInput, TOutput, TError, TContext>
): UseMutationResult<TOutput, TError, TInput, TContext>

Extra options

OptionTypeDefaultNotes
invalidateOnSuccessbooleantrueEnables invalidation after success
invalidateWithTagsreadonly string[]action.tagsOverrides tags to invalidate

Example

components/create-todo.tsx
"use client";

import { useActionMutation } from "@zapaction/query";

import { createTodo } from "../app/actions";

const mutation = useActionMutation(createTodo, {
  invalidateOnSuccess: true,
  onSuccess: async () => {
    console.log("todo created");
  }
});

Invalidation resolution

  1. Resolve tags from invalidateWithTags ?? action.tags.
  2. Map tags to query keys from registry.
  3. Deduplicate query keys.
  4. Call queryClient.invalidateQueries for each key.