useLock is a low-level Enterprise Edition hook that returns a callback to call dataProvider.lock(), leveraging react-query’s useMutation.


import { useLock } from '@react-admin/ra-realtime';

const [lock, { isLoading, error }] = useLock(
    { id, identity, meta },


The first parameter is a resource string (e.g. 'posts').

The second is a payload - an object with the following properties:

  • id: the record id (e.g. 123)
  • identity: an identifier (string or number) corresponding to the identity of the locker (e.g. 'julien'). This usually comes from authProvider.getIdentity().
  • meta: an object that will be forwarded to the dataProvider (optional)

The optional options argument is passed to react-query’s useMutation hook.

Utility Hooks

For most use cases, you won’t need to call the useLock hook directly. Instead, you should use the useLockOnMount or useLockOnCall orchestration hooks, which are responsible for calling useLock and useUnlock.