fix: init workspace before loaded (#3104)

(cherry picked from commit 3c5ccd7231)
This commit is contained in:
Alex Yang
2023-07-11 12:57:44 +08:00
parent 348c56ba30
commit 4a982b3bcf
+9
View File
@@ -1,5 +1,6 @@
import type { WorkspaceAdapter } from '@affine/env/workspace'; import type { WorkspaceAdapter } from '@affine/env/workspace';
import { WorkspaceFlavour, WorkspaceVersion } from '@affine/env/workspace'; import { WorkspaceFlavour, WorkspaceVersion } from '@affine/env/workspace';
import { createEmptyBlockSuiteWorkspace } from '@affine/workspace/utils';
import type { BlockHub } from '@blocksuite/blocks'; import type { BlockHub } from '@blocksuite/blocks';
import { assertExists } from '@blocksuite/global/utils'; import { assertExists } from '@blocksuite/global/utils';
import { atom } from 'jotai'; import { atom } from 'jotai';
@@ -171,6 +172,14 @@ const rootWorkspacesMetadataPromiseAtom = atom<
} }
} }
const metadataMap = new Map(metadata.map(x => [x.id, x])); const metadataMap = new Map(metadata.map(x => [x.id, x]));
// init workspace data
metadataMap.forEach((meta, id) => {
if (meta.flavour === WorkspaceFlavour.AFFINE_CLOUD) {
createEmptyBlockSuiteWorkspace(id, meta.flavour, {});
} else if (meta.flavour === WorkspaceFlavour.LOCAL) {
createEmptyBlockSuiteWorkspace(id, meta.flavour);
}
});
return Array.from(metadataMap.values()); return Array.from(metadataMap.values());
} }
}); });