@docx-editor.dev/pro/vue/hocuspocus

@docx-editor.dev/pro/vue/hocuspocus — Vue composable that owns a Hocuspocus room.

Import this subpath only when you use Hocuspocus. @docx-editor.dev/pro/vue does not load a network provider.

Functions (1)

useHocuspocusCollaborationfunctionSource ↗

Own a Hocuspocus collaboration room for a Vue host.

The default Pro Vue entry does not import this composable. Import it from @docx-editor.dev/pro/vue/hocuspocus so a review-only bundle does not load a network provider.

declare function useHocuspocusCollaboration(options?: MaybeRefOrGetter<UseHocuspocusCollaborationOptions | null>): 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
MemberTypeSummary
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
MemberTypeSummary
canRedo
canUndo
documentIdstring
identityCollaborationIdentity
participants
redo
remoteSelections
sessionIdstringUnique identity for this attachment lifetime.
setIdentityUpdate the display name and color mid-session, when the replica supports it.
status
statusSnapshotCached status, current reason, and last failure.
subscribeParticipants
subscribeRemoteSelections
subscribeStatus
undo

UseHocuspocusCollaborationConnectOptionsinterfaceSource ↗

Arguments for [UseHocuspocusCollaborationReturn.connect](UseHocuspocusCollaborationReturn.connect).

interface UseHocuspocusCollaborationConnectOptions
MemberTypeSummary
bootstrapUseHocuspocusCollaborationBootstrap
identityCollaborationIdentity
offlineEditing?booleanAdmit local edits while the transport is `disconnected`. Buffered updates merge on reconnect. See [CreateDocumentCollaborationOptions.offlineEditing](CreateDocumentCollaborationOptions.offlineEditing).
roomIdstring
syncedTimeoutMs?numberBound 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.
urlstringHocuspocus server WebSocket URL, for example `wss://collab.example.test`.

UseHocuspocusCollaborationOptionsinterfaceSource ↗

Input for [useHocuspocusCollaboration](useHocuspocusCollaboration).

interface UseHocuspocusCollaborationOptions
MemberTypeSummary
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 | nullConnect this room when the composable starts. Omit it and call [UseHocuspocusCollaborationReturn.connect](UseHocuspocusCollaborationReturn.connect) after the user chooses a room.

UseHocuspocusCollaborationReturninterfaceSource ↗

Values [useHocuspocusCollaboration](useHocuspocusCollaboration) returns.

interface UseHocuspocusCollaborationReturn
MemberTypeSummary
connect(options: UseHocuspocusCollaborationConnectOptions) => Promise<CollaborationFailure | null>Connect a room. RESOLVES with the failure, or null on success — it does not reject.
documentReadonly<Ref<Uint8Array | null>>
errorReadonly<Ref<CollaborationFailure | null>>
leave(nextDocument: Uint8Array) => voidDestroy the room and carry on editing locally.
modulesReadonly<Ref<readonly EditorModule[]>>
pendingReadonly<Ref<boolean>>
providerReadonly<Ref<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.
sessionReadonly<Ref<CollaborationSession | null>>
ydocReadonly<Ref<Y.Doc | null>>The room's shared Yjs document, owned by the composable. Null while no room is connected.

Type aliases (1)

UseHocuspocusCollaborationBootstraptypeSource ↗

Bootstrap for one Hocuspocus room.

type UseHocuspocusCollaborationBootstrap = CollaborationBootstrap;

On this page