FCollaboration

GitHubEdit on GitHub
packages@univerjs-pro/collaboration-client

The Facade API object for the Collaboration module. It provides methods to interact with the Univer Collaboration backend server, such as loading Univer Sheets and subscribing to collaborators.

APIs

getCollaborationStatus

Get the synchronization status of a unit.

Signature

getCollaborationStatus(unitId?: string): CollaborationStatus

Parameters

  • unitId (string) — - Optional unit ID. If not provided, uses the focused unit.

Returns

  • (CollaborationStatus) — The current synchronization status. Returns CollaborationStatus.NOT_COLLAB if no unit is found or collaboration is not enabled. Possible status values: - NOT_COLLAB: Not in collaboration mode - SYNCED: All changes are synchronized - PENDING: Local changes waiting to be sent - AWAITING: Changes sent, waiting for server acknowledgement - AWAITING_WITH_PENDING: Awaiting acknowledgement with new local changes - FETCH_MISS: Fetching missing changesets from server - CONFLICT: Conflict detected and being resolved - OFFLINE: Network is offline

Examples

const collaboration = univerAPI.getCollaboration()

// Node environment - specify unitId
const workbook = await collaboration.loadSheetAsync('unit-id')
await new Promise(resolve => setTimeout(resolve, 1000)) // Wait for collaboration to initialize
const status = collaboration.getCollaborationStatus('unit-id')

// Browser environment - use focused unit (backward compatible)
const status = collaboration.getCollaborationStatus()

// Check if synchronized
if (status === univerAPI.Enum.CollaborationStatus.SYNCED) {
  console.log('All changes are synced!')
}

loadActiveSheet

Deprecated Use loadActiveSheetAsync instead.

Signature

loadActiveSheet(): Promise<FWorkbook | null>

Returns

  • (Promise<FWorkbook | null>) — The FWorkbook or null if the active Univer Sheet cannot be loaded.

loadActiveSheetAsync

Load the active Univer Sheet. It should be associated with the Uniscript Node.js Runtime.

Signature

loadActiveSheetAsync(): Promise<FWorkbook | null>

Returns

  • (Promise<FWorkbook | null>) — The FWorkbook or null if the active Univer Sheet cannot be loaded.

Tags

  • @throws — If the method is not overridden.

Examples

const collaboration = univerAPI.getCollaboration()
const workbook = await collaboration.loadActiveSheetAsync()

loadSheet

Deprecated Use loadSheetAsync instead.

Signature

loadSheet(unitId: string): Promise<FWorkbook | null>

Parameters

  • unitId (string) — The Id of the Univer Sheet that you would like to load.

Returns

  • (Promise<FWorkbook | null>) — The FWorkbook or null if the Univer Sheet cannot be loaded.

loadSheetAsync

Load a Univer Sheet from the server with a unit ID.

Signature

loadSheetAsync(unitId: string, context?: ILogContext): Promise<FWorkbook | null>

Parameters

  • unitId (string) — ID of the Univer Sheet that you would like to load.
  • context (ILogContext) — Optional context.

Returns

  • (Promise<FWorkbook | null>) — The FWorkbook or null if ID cannot be associated with a Univer Sheet.

Examples

const collaboration = univerAPI.getCollaboration()
const workbook = await collaboration.loadSheetAsync('your-unit-id')

subscribeCollaborators

Subscribe collaborators of a Univer file.

Signature

subscribeCollaborators(unitId: string, callback: (members: IMember[]) => void): IDisposable

Parameters

  • unitId (string) — ID of the Univer file.
  • callback ((members: IMember[]) => void) — A callback function that will be called when the collaborators change.

Returns

  • (IDisposable) — A handler to dispose the subscription.

Examples

const collaboration = univerAPI.getCollaboration()
collaboration.subscribeCollaborators('your-unit-id', (members) => {
  console.log(members)
})