diff --git a/packages/common/infra/src/blocksuite/index.ts b/packages/common/infra/src/blocksuite/index.ts index 335d13733..ec281bad7 100644 --- a/packages/common/infra/src/blocksuite/index.ts +++ b/packages/common/infra/src/blocksuite/index.ts @@ -598,12 +598,13 @@ export async function forceUpgradePages( options: Omit ): Promise { const rootDoc = await options.getCurrentRootDoc(); + guidCompatibilityFix(rootDoc); + const spaces = rootDoc.getMap('spaces') as YMap; const meta = rootDoc.getMap('meta') as YMap; const versions = meta.get('blockVersions') as YMap; const schema = options.getSchema(); - const oldVersions = versions.toJSON(); - guidCompatibilityFix(rootDoc); + const oldVersions = versions?.toJSON() ?? {}; spaces.forEach((space: Doc) => { try { schema.upgradePage(0, oldVersions, space); diff --git a/packages/frontend/workspace/src/atom.ts b/packages/frontend/workspace/src/atom.ts index d26bc58ff..2b9fed2c7 100644 --- a/packages/frontend/workspace/src/atom.ts +++ b/packages/frontend/workspace/src/atom.ts @@ -140,12 +140,10 @@ const fetchMetadata: FetchMetadata = async (get, { signal }) => { performanceJotaiLogger.info('%s adapter', Adapter.flavour); const { CRUD, flavour: currentFlavour } = Adapter; - if ( - Adapter.Events['app:access'] && - !(await Adapter.Events['app:access']()) - ) { - performanceJotaiLogger.info('%s app:access', Adapter.flavour); - + const appAccessFn = Adapter.Events['app:access']; + const canAccess = appAccessFn && !(await appAccessFn()); + performanceJotaiLogger.info('%s app:access', Adapter.flavour); + if (canAccess) { // skip the adapter if the user doesn't have access to it const removed = metadata.filter( meta => meta.flavour === currentFlavour