From 7e608e48ecd9e439ecab79c69f5d395628a6e13f Mon Sep 17 00:00:00 2001 From: alt0 Date: Wed, 11 Jan 2023 15:23:03 +0800 Subject: [PATCH 1/2] fix: workspace unit setBlocksuiteWorkspace support null --- packages/data-center/src/workspace-unit.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/data-center/src/workspace-unit.ts b/packages/data-center/src/workspace-unit.ts index 2fc4935d51..b7244c0b5e 100644 --- a/packages/data-center/src/workspace-unit.ts +++ b/packages/data-center/src/workspace-unit.ts @@ -42,7 +42,7 @@ export class WorkspaceUnit { } setBlocksuiteWorkspace(blocksuiteWorkspace: BlocksuiteWorkspace | null) { - if (blocksuiteWorkspace?.room !== this.id) { + if (blocksuiteWorkspace && blocksuiteWorkspace?.room !== this.id) { throw new Error('Workspace id inconsistent.'); } this._blocksuiteWorkspace = blocksuiteWorkspace; From a11f411f6cef56beefd674f0b5fb25603996631d Mon Sep 17 00:00:00 2001 From: alt0 Date: Wed, 11 Jan 2023 15:27:31 +0800 Subject: [PATCH 2/2] fix: enable and update workspace use workspaceUnit as params --- packages/data-center/src/datacenter.ts | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/data-center/src/datacenter.ts b/packages/data-center/src/datacenter.ts index 4b58662382..616345be27 100644 --- a/packages/data-center/src/datacenter.ts +++ b/packages/data-center/src/datacenter.ts @@ -13,6 +13,7 @@ import assert from 'assert'; import { getLogger } from './logger'; import { createBlocksuiteWorkspace } from './utils/index.js'; import { MessageCenter } from './message'; +import type { WorkspaceUnit } from './workspace-unit'; /** * @class DataCenter @@ -209,9 +210,11 @@ export class DataCenter { */ public async updateWorkspaceMeta( { name, avatar }: UpdateWorkspaceMetaParams, - workspace: BlocksuiteWorkspace + workspaceUnit: WorkspaceUnit ) { - assert(workspace?.room, 'No workspace to set meta'); + assert(workspaceUnit?.id, 'No workspace to set meta'); + const workspace = workspaceUnit.blocksuiteWorkspace; + assert(workspace); const update: Partial = {}; if (name) { workspace.meta.setName(name); @@ -222,10 +225,10 @@ export class DataCenter { update.avatar = avatar; } // may run for change workspace meta - const workspaceInfo = this._workspaceUnitCollection.find(workspace.room); + const workspaceInfo = this._workspaceUnitCollection.find(workspaceUnit.id); assert(workspaceInfo, 'Workspace not found'); const provider = this.providerMap.get(workspaceInfo.provider); - provider?.updateWorkspaceMeta(workspace.room, update); + provider?.updateWorkspaceMeta(workspaceUnit.id, update); } /** @@ -334,9 +337,13 @@ export class DataCenter { * Enable workspace cloud * @param {string} id ID of workspace. */ - public async enableWorkspaceCloud(workspace: BlocksuiteWorkspace) { - assert(workspace?.room, 'No workspace to enable cloud'); - return await this._transWorkspaceProvider(workspace, 'affine'); + public async enableWorkspaceCloud(workspace: WorkspaceUnit) { + assert(workspace?.id, 'No workspace to enable cloud'); + assert(workspace.blocksuiteWorkspace); + return await this._transWorkspaceProvider( + workspace.blocksuiteWorkspace, + 'affine' + ); } /**