From da2821eaac90c18a40e15b73884d04a4d8caae15 Mon Sep 17 00:00:00 2001 From: 3720 Date: Wed, 8 Nov 2023 20:38:43 +0800 Subject: [PATCH] fix(core): collections data migration without blocking data reads (#4866) --- .../frontend/core/src/atoms/collections.ts | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/frontend/core/src/atoms/collections.ts b/packages/frontend/core/src/atoms/collections.ts index af63fb76c..6bf960229 100644 --- a/packages/frontend/core/src/atoms/collections.ts +++ b/packages/frontend/core/src/atoms/collections.ts @@ -101,7 +101,6 @@ export const pageCollectionBaseAtom = const migrateCollectionsFromIdbData = async ( workspace: Workspace ): Promise => { - workspace.awarenessStore.awareness.emit('change log'); const localCRUD = get(localCollectionCRUDAtom); const collections = await getCollections(localCRUD); const result = collections.filter(v => v.workspaceId === workspace.id); @@ -149,18 +148,17 @@ export const pageCollectionBaseAtom = return new Observable(subscriber => { const group = new DisposableGroup(); currentWorkspacePromise.then(async currentWorkspace => { - const collectionsFromLocal = - await migrateCollectionsFromIdbData(currentWorkspace); - const collectionFromUserSetting = - await migrateCollectionsFromUserData(currentWorkspace); const workspaceSetting = getWorkspaceSetting(currentWorkspace); - if (collectionsFromLocal.length || collectionFromUserSetting.length) { - // migrate collections - workspaceSetting.addCollection( - ...collectionFromUserSetting, - ...collectionsFromLocal - ); - } + migrateCollectionsFromIdbData(currentWorkspace).then(collections => { + if (collections.length) { + workspaceSetting.addCollection(...collections); + } + }); + migrateCollectionsFromUserData(currentWorkspace).then(collections => { + if (collections.length) { + workspaceSetting.addCollection(...collections); + } + }); subscriber.next({ loading: false, collections: workspaceSetting.collections,