Collaboration
| 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.
This class should not be instantiated directly. Use factory methods on
univerAPIinstead.
Overview
@univerjs-pro/collaboration-client
| Method | Description |
|---|---|
getCollaborationStatus | Get the synchronization status of a unit |
loadActiveSheet | - |
loadActiveSheetAsync | Load the active Univer Sheet |
loadSheet | - |
loadSheetAsync | Load a Univer Sheet from the server with a unit ID |
subscribeCollaborators | Subscribe collaborators of a Univer file |
APIs
Loading
loadActiveSheet
Deprecated — Use
loadActiveSheetAsync instead.Signature
async loadActiveSheet(): Promise<FWorkbook | null>Returns
Promise<any>— TheFWorkbookor null if the active Univer Sheet cannot be loaded.
@univerjs-pro/collaboration-client
loadActiveSheetAsync
Load the active Univer Sheet. It should be associated with the Uniscript Node.js Runtime.
Signature
async loadActiveSheetAsync(): Promise<FWorkbook | null>Returns
Promise<any>— TheFWorkbookor 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();@univerjs-pro/collaboration-client
loadSheet
Deprecated — Use
loadSheetAsync instead.Signature
async loadSheet(unitId: string): Promise<FWorkbook | null>Parameters
unitIdstring— No description
Returns
Promise<any>— TheFWorkbookor null if the Univer Sheet cannot be loaded.
@univerjs-pro/collaboration-client
loadSheetAsync
Load a Univer Sheet from the server with a unit ID.
Signature
async loadSheetAsync(unitId: string, context?: ILogContext): Promise<FWorkbook | null>Parameters
unitIdstring— No descriptioncontextILogContext(optional) — No description
Returns
Promise<any>— TheFWorkbookor null if ID cannot be associated with a Univer Sheet.
Examples
const collaboration = univerAPI.getCollaboration();
const workbook = await collaboration.loadSheetAsync('your-unit-id');@univerjs-pro/collaboration-client
Members & Status
getCollaborationStatus
Get the synchronization status of a unit.
Signature
getCollaborationStatus(unitId?: string): CollaborationStatusParameters
unitIdstring(optional) — No description
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 modeSYNCED: All changes are synchronizedPENDING: Local changes waiting to be sentAWAITING: Changes sent, waiting for server acknowledgementAWAITING_WITH_PENDING: Awaiting acknowledgement with new local changesFETCH_MISS: Fetching missing changesets from serverCONFLICT: Conflict detected and being resolvedOFFLINE: 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!');
}@univerjs-pro/collaboration-client
subscribeCollaborators
Subscribe collaborators of a Univer file.
Signature
subscribeCollaborators(unitId: string, callback: (members: IMember[]) => void): IDisposableParameters
unitIdstring— No descriptioncallback(members: IMember[]) => void— No description
Returns
IDisposable— A handler to dispose the subscription.
Examples
const collaboration = univerAPI.getCollaboration();
collaboration.subscribeCollaborators('your-unit-id', (members) => {
console.log(members);
});@univerjs-pro/collaboration-client