From 5f1f636f39cb512c564fef84451b97e5b9aa70fa Mon Sep 17 00:00:00 2001 From: Vanessa Date: Tue, 25 Oct 2022 10:53:33 +0800 Subject: [PATCH] :bug: fix https://github.com/siyuan-note/siyuan/issues/6335 --- app/src/config/search.ts | 3 ++- app/src/protyle/wysiwyg/getBlock.ts | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/src/config/search.ts b/app/src/config/search.ts index e75aee888..b312d3106 100644 --- a/app/src/config/search.ts +++ b/app/src/config/search.ts @@ -72,7 +72,8 @@ export const initConfigSearch = (element: HTMLElement) => { "dataRepoKeyTip1", "dataRepoKeyTip2", "slogan", "currentVer", "checkUpdate", "updatePath", "systemLog", "importKey", "genKey", "genKeyByPW", "copyKey", "resetRepo", "systemLogTip", "export", "visitAnnouncements", "safeQuit", "directConnection", "siyuanNote", "key", "password", "copied", "resetRepoTip", - "autoDownloadUpdatePkg", "autoDownloadUpdatePkgTip", "networkProxy", "keyPlaceholder", "initRepoKeyTip"]), + "autoDownloadUpdatePkg", "autoDownloadUpdatePkgTip", "networkProxy", "keyPlaceholder", "initRepoKeyTip", + "useFixedPort", "useFixedPortTip"]), ]; const inputElement = element.querySelector(".b3-form__icon input") as HTMLInputElement; if (window.siyuan.config.system.container !== "ios") { diff --git a/app/src/protyle/wysiwyg/getBlock.ts b/app/src/protyle/wysiwyg/getBlock.ts index 3a9039db1..4a4b23a17 100644 --- a/app/src/protyle/wysiwyg/getBlock.ts +++ b/app/src/protyle/wysiwyg/getBlock.ts @@ -1,4 +1,5 @@ import {hasClosestBlock, hasClosestByAttribute} from "../util/hasClosest"; +import {Constants} from "../../constants"; export const getPreviousHeading = (element: Element) => { let previous = getPreviousBlock(element); @@ -68,7 +69,7 @@ export const getNextBlock = (element: Element) => { export const getNoContainerElement = (element: Element) => { let childElement = element; while (childElement) { - if (childElement.classList.contains("list") || childElement.classList.contains("li")|| childElement.classList.contains("bq")|| childElement.classList.contains("sb")) { + if (childElement.classList.contains("list") || childElement.classList.contains("li") || childElement.classList.contains("bq") || childElement.classList.contains("sb")) { childElement = childElement.querySelector("[data-node-id]"); } else { return childElement; @@ -94,11 +95,18 @@ export const getTopEmptyElement = (element: Element) => { while (topElement.parentElement && !topElement.parentElement.classList.contains("protyle-wysiwyg")) { if (!topElement.parentElement.getAttribute("data-node-id")) { topElement = topElement.parentElement; - } else if (getContenteditableElement(topElement.parentElement).textContent !== "" || - topElement.previousElementSibling?.getAttribute("data-node-id")) { - break; } else { - topElement = topElement.parentElement; + const hasText = Array.from(topElement.parentElement.querySelectorAll('[contenteditable="true"]')).find(item => { + if (item.textContent.replace(Constants.ZWSP, "").replace("\n", "") !== "") { + return true; + } + }); + if (!hasText || topElement.previousElementSibling?.getAttribute("data-node-id") || + topElement.nextElementSibling?.getAttribute("data-node-id")) { + break; + } else { + topElement = topElement.parentElement; + } } } return topElement;