|
@@ -1,4 +1,4 @@
|
|
-import {focusBlock, focusByWbr} from "../util/selection";
|
|
|
|
|
|
+import {focusBlock, focusByRange, focusByWbr, setLastNodeRange} from "../util/selection";
|
|
import {
|
|
import {
|
|
getContenteditableElement,
|
|
getContenteditableElement,
|
|
getLastBlock,
|
|
getLastBlock,
|
|
@@ -119,18 +119,21 @@ const removeLi = (protyle: IProtyle, blockElement: Element, range: Range) => {
|
|
}];
|
|
}];
|
|
const previousLastElement = listItemElement.previousElementSibling.lastElementChild;
|
|
const previousLastElement = listItemElement.previousElementSibling.lastElementChild;
|
|
if (listItemElement.previousElementSibling.getAttribute("fold") === "1") {
|
|
if (listItemElement.previousElementSibling.getAttribute("fold") === "1") {
|
|
- if (getContenteditableElement(blockElement).textContent.trim() === "") {
|
|
|
|
|
|
+ if (getContenteditableElement(blockElement).textContent.trim() === "" &&
|
|
|
|
+ blockElement.nextElementSibling.classList.contains("protyle-attr")) {
|
|
doOperations.push({
|
|
doOperations.push({
|
|
action: "delete",
|
|
action: "delete",
|
|
id: listItemId
|
|
id: listItemId
|
|
});
|
|
});
|
|
undoOperations[0].data = listItemElement.outerHTML;
|
|
undoOperations[0].data = listItemElement.outerHTML;
|
|
- range.selectNodeContents(getContenteditableElement(listItemElement.previousElementSibling));
|
|
|
|
- range.collapse(false);
|
|
|
|
|
|
+ setLastNodeRange(getContenteditableElement(listItemElement.previousElementSibling), range);
|
|
|
|
+ range.collapse(true);
|
|
listItemElement.remove();
|
|
listItemElement.remove();
|
|
} else {
|
|
} else {
|
|
- range.selectNodeContents(getContenteditableElement(listItemElement.previousElementSibling));
|
|
|
|
- range.collapse(false);
|
|
|
|
|
|
+ setLastNodeRange(getContenteditableElement(listItemElement.previousElementSibling), range);
|
|
|
|
+ range.collapse(true);
|
|
|
|
+ focusByRange(range);
|
|
|
|
+ blockElement.querySelector("wbr")?.remove();
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|