@docx-editor.dev/pro/react/hocuspocus
@docx-editor.dev/pro/react/hocuspocus — React hook that owns a Hocuspocus room.
Import this subpath only when you use Hocuspocus. @docx-editor.dev/pro/react does not load a network provider.
Functions (1)
useHocuspocusCollaborationfunctionSource ↗
Own a Hocuspocus collaboration room for a React host.
The default Pro React entry does not import this hook. Import it from @docx-editor.dev/pro/react/hocuspocus so a review-only bundle does not load a network provider.
declare function useHocuspocusCollaboration(options?: UseHocuspocusCollaborationOptions): UseHocuspocusCollaborationReturn;Interfaces (5)
CollaborationIdentityUpdateinterfaceSource ↗
Display-identity fields a live session can update.
actorId and role are attribution and stay immutable for the session lifetime, so this type cannot name them.
interface CollaborationIdentityUpdate| Member | Type | Summary |
|---|---|---|
| color? | string | |
| name? | string |
CollaborationSessioninterfaceSource ↗
Host-facing collaboration session.
A host reads identity, status, presence, and undo. The editor attaches [EditorCollaborationSession](EditorCollaborationSession) internally and never through this type.
interface CollaborationSession| Member | Type | Summary |
|---|---|---|
| canRedo | | |
| canUndo | | |
| documentId | string | |
| identity | CollaborationIdentity | |
| participants | | |
| redo | | |
| remoteSelections | | |
| sessionId | string | Unique identity for this attachment lifetime. |
| setIdentity | | Update the display name and color mid-session, when the replica supports it. |
| status | | |
| statusSnapshot | | Cached status, current reason, and last failure. |
| subscribeParticipants | | |
| subscribeRemoteSelections | | |
| subscribeStatus | | |
| undo | |
UseHocuspocusCollaborationConnectOptionsinterfaceSource ↗
Arguments for [UseHocuspocusCollaborationReturn.connect](UseHocuspocusCollaborationReturn.connect).
interface UseHocuspocusCollaborationConnectOptions| Member | Type | Summary |
|---|---|---|
| bootstrap | UseHocuspocusCollaborationBootstrap | |
| identity | CollaborationIdentity | |
| offlineEditing? | boolean | Admit local edits while the transport is `disconnected`. Buffered updates merge on reconnect. See [CreateDocumentCollaborationOptions.offlineEditing](CreateDocumentCollaborationOptions.offlineEditing). |
| roomId | string | |
| syncedTimeoutMs? | number | Bound on the wait for the server's initial sync. Default 30000 ms. |
| token? | string | (() => string | Promise<string>) | Authentication token the provider sends in its auth handshake. Pass a callback and the provider re-evaluates it on every reconnect, which is how expiring JWTs renew. |
| url | string | Hocuspocus server WebSocket URL, for example `wss://collab.example.test`. |
UseHocuspocusCollaborationOptionsinterfaceSource ↗
Input for [useHocuspocusCollaboration](useHocuspocusCollaboration).
interface UseHocuspocusCollaborationOptions| Member | Type | Summary |
|---|---|---|
| modules? | readonly EditorModule[] | Host modules. The hook adds `collaborationModule` when a room is ready. A host collaboration contribution is a configuration error and throws. |
| room? | UseHocuspocusCollaborationConnectOptions | null | Connect this room on mount. Omit it and call [UseHocuspocusCollaborationReturn.connect](UseHocuspocusCollaborationReturn.connect) after the user chooses a room. |
UseHocuspocusCollaborationReturninterfaceSource ↗
Values [useHocuspocusCollaboration](useHocuspocusCollaboration) returns.
interface UseHocuspocusCollaborationReturn| Member | Type | Summary |
|---|---|---|
| connect | (options: UseHocuspocusCollaborationConnectOptions) => Promise<CollaborationFailure | null> | Connect a room. RESOLVES with the failure, or null on success — it does not reject. |
| document | Uint8Array | null | |
| error | CollaborationFailure | null | |
| leave | (nextDocument: Uint8Array) => void | Destroy the room and carry on editing locally. |
| modules | readonly EditorModule[] | |
| pending | boolean | |
| provider | HocuspocusProvider | null | The owned `@hocuspocus/provider` instance. Null while no room is connected. |
| rejoin | (nextDocument: Uint8Array) => Promise<CollaborationFailure | null> | Recover a session that reached status `error`: leave with `nextDocument`, then connect again to the same room with the same identity, url, and token. |
| session | CollaborationSession | null | |
| ydoc | Y.Doc | null | The room's shared Yjs document, owned by the hook. Null while no room is connected. |
Type aliases (1)
UseHocuspocusCollaborationBootstraptypeSource ↗
Bootstrap for one Hocuspocus room.
type UseHocuspocusCollaborationBootstrap = CollaborationBootstrap;