From 466aa2233c1f8fa05315c9f355fb5c55495527ae Mon Sep 17 00:00:00 2001 From: Vanessa Date: Thu, 16 Jun 2022 21:22:57 +0800 Subject: [PATCH] :bug: fix https://github.com/siyuan-note/siyuan/issues/5208 --- app/src/protyle/wysiwyg/list.ts | 42 +++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/app/src/protyle/wysiwyg/list.ts b/app/src/protyle/wysiwyg/list.ts index 0e6af49c4..5df64baa1 100644 --- a/app/src/protyle/wysiwyg/list.ts +++ b/app/src/protyle/wysiwyg/list.ts @@ -241,18 +241,36 @@ export const breakList = (protyle: IProtyle, blockElement: Element, range: Range listItemElement.parentElement.after(item); } }); - undoOperations.splice(0, 0, { - id: listItemId, - action: "insert", - data: listItemElement.outerHTML, - previousID: listItemElement.previousElementSibling?.getAttribute("data-node-id"), - parentID: listItemElement.parentElement.getAttribute("data-node-id") - }); - listItemElement.remove(); - doOperations.push({ - id: listItemId, - action: "delete", - }); + + const parentId = listItemElement.parentElement.getAttribute("data-node-id") + if (listItemElement.parentElement.childElementCount === 2) { + undoOperations.splice(0, 0, { + id: parentId, + action: "insert", + data: listItemElement.parentElement.outerHTML, + previousID: listItemElement.parentElement.previousElementSibling?.getAttribute("data-node-id"), + parentID: listItemElement.parentElement.parentElement.getAttribute("data-node-id") + }); + listItemElement.parentElement.remove(); + doOperations.push({ + id: parentId, + action: "delete", + }); + } else { + undoOperations.splice(0, 0, { + id: listItemId, + action: "insert", + data: listItemElement.outerHTML, + previousID: listItemElement.previousElementSibling?.getAttribute("data-node-id"), + parentID: parentId + }); + listItemElement.remove(); + doOperations.push({ + id: listItemId, + action: "delete", + }); + } + transaction(protyle, doOperations, undoOperations); focusByWbr(protyle.wysiwyg.element, range); };