From ad9079319ba2950e2dc42412b6502baf8fa3e595 Mon Sep 17 00:00:00 2001 From: MingLiang Wang Date: Mon, 26 Dec 2022 17:33:01 +0800 Subject: [PATCH] feat: improve code --- .../app-state-provider/dynamic-blocksuite.tsx | 29 ++++++++----------- .../providers/app-state-provider/provider.tsx | 6 ++-- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/packages/app/src/providers/app-state-provider/dynamic-blocksuite.tsx b/packages/app/src/providers/app-state-provider/dynamic-blocksuite.tsx index 192cbee45b..f83c524b06 100644 --- a/packages/app/src/providers/app-state-provider/dynamic-blocksuite.tsx +++ b/packages/app/src/providers/app-state-provider/dynamic-blocksuite.tsx @@ -27,7 +27,8 @@ const DynamicBlocksuite = ({ useEffect(() => { const openWorkspace: LoadWorkspaceHandler = ( workspaceId: string, - websocket = false + websocket = false, + user ) => // eslint-disable-next-line no-async-promise-executor new Promise(async resolve => { @@ -63,22 +64,16 @@ const DynamicBlocksuite = ({ const indexDBProvider = workspace.providers.find( p => p instanceof IndexedDBDocProvider ); - await new Promise(resolve => { - downloadWorkspace({ workspaceId }) - .then(async updates => { - updates && - StoreWorkspace.Y.applyUpdate( - workspace.doc, - new Uint8Array(updates) - ); - // if after update, the space:meta is empty, then we need to get map with doc - workspace.doc.getMap('space:meta'); - resolve(undefined); - }) - .catch(() => { - resolve(undefined); - }); - }); + if (user) { + const updates = await downloadWorkspace({ workspaceId }); + updates && + StoreWorkspace.Y.applyUpdate( + workspace.doc, + new Uint8Array(updates) + ); + // if after update, the space:meta is empty, then we need to get map with doc + workspace.doc.getMap('space:meta'); + } if (indexDBProvider) { (indexDBProvider as IndexedDBDocProvider).whenSynced.then(() => { resolve(workspace); diff --git a/packages/app/src/providers/app-state-provider/provider.tsx b/packages/app/src/providers/app-state-provider/provider.tsx index 95b758de46..56acbcd393 100644 --- a/packages/app/src/providers/app-state-provider/provider.tsx +++ b/packages/app/src/providers/app-state-provider/provider.tsx @@ -45,7 +45,8 @@ export const AppStateProvider = ({ children }: { children?: ReactNode }) => { (async () => { const workspacesList = await Promise.all( state.workspacesMeta.map(async ({ id }) => { - const workspace = (await loadWorkspaceHandler?.(id, false)) || null; + const workspace = + (await loadWorkspaceHandler?.(id, false, state.user)) || null; return { id, workspace }; }) ); @@ -87,7 +88,8 @@ export const AppStateProvider = ({ children }: { children?: ReactNode }) => { if (state.currentWorkspaceId === workspaceId) { return state.currentWorkspace; } - const workspace = (await loadWorkspaceHandler?.(workspaceId, true)) || null; + const workspace = + (await loadWorkspaceHandler?.(workspaceId, true, state.user)) || null; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-expect-error