FCollaboration
| 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): CollaborationStatusParameters
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): IDisposableParameters
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)
})