From fd0aa4a2eecc7c808d1b77e2a0702bbfd8f4c5c2 Mon Sep 17 00:00:00 2001 From: regischen Date: Wed, 28 Jun 2023 14:24:14 +0800 Subject: [PATCH] fix: migration `props:elements` (#2889) --- packages/env/src/__tests__/subdoc-migration.spec.ts | 4 ++++ packages/env/src/blocksuite/subdoc-migration.ts | 12 ++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/env/src/__tests__/subdoc-migration.spec.ts b/packages/env/src/__tests__/subdoc-migration.spec.ts index a320af430e..72dccc6ed4 100644 --- a/packages/env/src/__tests__/subdoc-migration.spec.ts +++ b/packages/env/src/__tests__/subdoc-migration.spec.ts @@ -38,6 +38,10 @@ describe('subdoc', () => { if (id === 'xyWNqindHH') { return; } + if (blocks[id]['sys:flavour'] === 'affine:surface' && !blocks[id]['prop:elements']) { + blocks[id]['prop:elements'] = data[id]['prop:elements']; + + } expect(data[id]).toEqual(blocks[id]); }); }); diff --git a/packages/env/src/blocksuite/subdoc-migration.ts b/packages/env/src/blocksuite/subdoc-migration.ts index b1b3511a06..d48ab2b17a 100644 --- a/packages/env/src/blocksuite/subdoc-migration.ts +++ b/packages/env/src/blocksuite/subdoc-migration.ts @@ -90,10 +90,14 @@ function runBlockMigration( data.set('sys:flavour', 'affine:note'); return; } - if (flavour === 'affine:surface' && version <= 3 && data.has('elements')) { - const elements = data.get('elements') as Y.Map; - data.set('prop:elements', elements.clone()); - data.delete('elements'); + if (flavour === 'affine:surface' && version <= 3) { + if(data.has('elements')){ + const elements = data.get('elements') as Y.Map; + data.set('prop:elements', elements.clone()); + data.delete('elements'); + } else { + data.set('prop:elements', new Y.Map()) + } } if (flavour === 'affine:embed') { data.set('sys:flavour', 'affine:image');