Skip to content

React Hooks

The @requence/socketql/client/react module provides Suspense-ready hooks built on top of URQL.

A thin wrapper around URQL’s useQuery that throws on errors (for error boundaries) and returns data directly:

import { useQuery } from '@requence/socketql/client/react'
function UserList() {
const data = useQuery({
query: UsersDocument,
})
return (
<ul>
{data.users.map(user => (
<li key={user.id}>{user.name}</li>
))}
</ul>
)
}

A wrapper around URQL’s useMutation with built-in Suspense support and cache invalidation:

import { useMutation } from '@requence/socketql/client/react'
function CreateUser() {
const [result, execute] = useMutation({
query: CreateUserDocument,
invalidate: 'Users', // invalidate cached "Users" query
waitOn: 'Users', // wait for the Users query to re-resolve
})
return (
<button onClick={() => execute({ name: 'Alice' })}>
Create User
</button>
)
}
OptionTypeDescription
queryDocumentInputThe mutation document
invalidatestring | DocumentNode | ArrayQueries to invalidate after mutation
suspensebooleanWhether to trigger Suspense (default: true)
waitOnstring | DocumentNode | ArrayWait for these queries to re-resolve before un-suspending