From b8303ed457cdd728de84bd404ea91b63c869cd5f Mon Sep 17 00:00:00 2001 From: Wanxin Hu Date: Tue, 19 Jul 2022 08:23:49 -0400 Subject: [PATCH] fix the readonly issue with empty blocks --- example/tools/embed | 2 +- src/components/modules/api/blocks.ts | 7 ++++++- src/components/modules/renderer.ts | 9 +++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/example/tools/embed b/example/tools/embed index 35742f01a..27e578907 160000 --- a/example/tools/embed +++ b/example/tools/embed @@ -1 +1 @@ -Subproject commit 35742f01ae5875d442b145121d3c9b71b23aea56 +Subproject commit 27e5789079577c7dcaf9de8074d0979fc2e15203 diff --git a/src/components/modules/api/blocks.ts b/src/components/modules/api/blocks.ts index 8d742c850..35294ab11 100644 --- a/src/components/modules/api/blocks.ts +++ b/src/components/modules/api/blocks.ts @@ -179,7 +179,12 @@ export default class BlocksAPI extends Module { * @param {OutputData} data — Saved Editor data */ public render(data: OutputData): Promise { - this.Editor.BlockManager.clear(); + const needToAddDefaultBlock = !data.blocks.length; + this.Editor.BlockManager.clear(needToAddDefaultBlock); + + if (needToAddDefaultBlock){ + return Promise.resolve(); + } return this.Editor.Renderer.render(data.blocks); } diff --git a/src/components/modules/renderer.ts b/src/components/modules/renderer.ts index 6f800069b..8befb2e0a 100644 --- a/src/components/modules/renderer.ts +++ b/src/components/modules/renderer.ts @@ -46,6 +46,15 @@ export default class Renderer extends Module { * @param {OutputBlockData[]} blocks - blocks to render */ public async render(blocks: OutputBlockData[]): Promise { + + if (blocks.length === 0) { + blocks = [{ + "data": {"text": ""}, + "id": "WhateverXX", + "type": "paragraph", + }] + } + const chainData = blocks.map((block) => ({ function: (): Promise => this.insertBlock(block) })); /**