Skip to content

useGraphQLMutation

useGraphQLMutation<T, V>(mutation, options?): UseMutationResult<undefined | T, GraphQLError, V, unknown>

Hook to execute GraphQL mutations

Type ParameterDefault typeDescription
TunknownThe expected response data type
V extends Record<string, unknown>Record<string, unknown>The variables type
ParameterTypeDescription
mutationstringThe GraphQL mutation string
options?UseGraphQLMutationOptions<T, V>Mutation options

UseMutationResult<undefined | T, GraphQLError, V, unknown>

React Query mutation result object

interface CreateUserMutation {
insertUser: { id: string; email: string }
}
interface CreateUserVariables {
data: { email: string }
}
function CreateUserForm() {
const mutation = useGraphQLMutation<CreateUserMutation, CreateUserVariables>(
`mutation CreateUser($data: UserInput!) {
insertUser(data: $data) { id email }
}`,
{
onSuccess: (data) => console.log('Created:', data.insertUser),
invalidateQueries: ['users']
}
)
const handleSubmit = (email: string) => {
mutation.mutate({ data: { email } })
}
return (
<button
onClick={() => handleSubmit('new@example.com')}
disabled={mutation.isPending}
>
Create User
</button>
)
}