fix: merge two empty doc, no udpate event trigger

This commit is contained in:
alt0
2023-01-12 12:08:37 +08:00
parent 48d355ee72
commit 034e460701
4 changed files with 36 additions and 33 deletions
@@ -1,9 +1,9 @@
import assert from 'assert';
import * as idb from 'lib0/indexeddb.js';
import { Workspace as BlocksuiteWorkspace } from '@blocksuite/store';
import { applyUpdate } from '../../../utils/index.js';
const { applyUpdate, encodeStateAsUpdate, mergeUpdates } =
BlocksuiteWorkspace.Y;
const { encodeStateAsUpdate, mergeUpdates } = BlocksuiteWorkspace.Y;
export const writeUpdatesToLocal = async (
blocksuiteWorkspace: BlocksuiteWorkspace
@@ -34,12 +34,8 @@ export const applyLocalUpdates = async (
const [updatesStore] = idb.transact(db, ['updates']); // , 'readonly')
if (updatesStore) {
const updates = await idb.getAll(updatesStore);
const doc = blocksuiteWorkspace.doc;
await new Promise(resolve => {
const mergedUpdates = mergeUpdates(updates);
doc.once('update', resolve);
applyUpdate(doc, mergedUpdates);
});
const mergedUpdates = mergeUpdates(updates);
await applyUpdate(blocksuiteWorkspace, mergedUpdates);
}
return blocksuiteWorkspace;
};