From 9a315ed994cda09263c6888b57ebaf55baf9c83f Mon Sep 17 00:00:00 2001 From: tzhangchi Date: Fri, 3 Feb 2023 23:57:24 +0800 Subject: [PATCH] fix: make remove workspace logic correct --- packages/data-center/src/provider/affine/affine.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/data-center/src/provider/affine/affine.ts b/packages/data-center/src/provider/affine/affine.ts index ad53c496c3..b4627de081 100644 --- a/packages/data-center/src/provider/affine/affine.ts +++ b/packages/data-center/src/provider/affine/affine.ts @@ -109,17 +109,17 @@ export class AffineProvider extends BaseProvider { this._logger('receive server message'); const newlyCreatedWorkspaces: WorkspaceUnit[] = []; const currentWorkspaceIds = this._workspaces.list().map(w => w.id); - const newlyRemoveWorkspaceIds = []; - + const newlyRemovedWorkspacecIds = currentWorkspaceIds; for (const [id, detail] of Object.entries(ws_details)) { const { name, avatar } = metadata[id]; /** * collect the workspaces that need to be removed in the context */ - const ifWorkspaceNotExists = currentWorkspaceIds.indexOf(id) < 0; - if (ifWorkspaceNotExists) { - newlyRemoveWorkspaceIds.push(id); + const workspaceIndex = currentWorkspaceIds.indexOf(id); + const ifWorkspaceExist = workspaceIndex !== -1; + if (ifWorkspaceExist) { + newlyRemovedWorkspacecIds.splice(workspaceIndex, 1); } /** @@ -159,7 +159,7 @@ export class AffineProvider extends BaseProvider { this._workspaces.add(newlyCreatedWorkspaces); // sync newlyRemoveWorkspaces to context - this._workspaces.remove(newlyRemoveWorkspaceIds); + this._workspaces.remove(newlyRemovedWorkspacecIds); } private _getWebsocketProvider(workspace: BlocksuiteWorkspace) {