Vanessa 2025-03-16 11:56:12 +08:00
parent 875b5099ce
commit 4b56408095
4 changed files with 29 additions and 5 deletions

View file

@ -25,6 +25,7 @@ import {App} from "../index";
import {saveScroll} from "../protyle/scroll/saveScroll";
import {isInAndroid, isInHarmony, isInIOS, setStorageVal} from "../protyle/util/compatibility";
import {Plugin} from "../plugin";
import {blockRender} from "../protyle/render/blockRender";
const updateTitle = (rootID: string, tab: Tab, protyle?: IProtyle) => {
fetchPost("/api/block/getDocInfo", {
@ -156,14 +157,28 @@ export const setRefDynamicText = (data: {
"refText": string,
"rootID": string
}) => {
getAllEditor().forEach(item => {
getAllEditor().forEach(editor => {
// 不能对比 rootId否则嵌入块中的锚文本无法更新
item.protyle.wysiwyg.element.querySelectorAll(`[data-node-id="${data.blockID}"] span[data-type~="block-ref"][data-subtype="d"][data-id="${data.defBlockID}"]`).forEach(item => {
editor.protyle.wysiwyg.element.querySelectorAll(`[data-node-id="${data.blockID}"] span[data-type~="block-ref"][data-subtype="d"][data-id="${data.defBlockID}"]`).forEach(item => {
item.innerHTML = data.refText;
});
});
};
export const reloadEmbedBlock = (data: {
"embedBlockID": string,
"rootID": string
}) => {
getAllEditor().forEach(editor => {
if (editor.protyle.block.rootID === data.rootID) {
editor.protyle.wysiwyg.element.querySelectorAll(`[data-node-id="${data.embedBlockID}"]`).forEach(item => {
item.removeAttribute("data-render");
blockRender(editor.protyle, item);
});
}
});
};
export const setDefRefCount = (data: {
"blockID": string,
"refCount": number,

View file

@ -16,7 +16,7 @@ import {
processSync,
progressBackgroundTask,
progressLoading,
progressStatus,
progressStatus, reloadEmbedBlock,
reloadSync,
setDefRefCount,
setRefDynamicText,
@ -67,6 +67,9 @@ export class App {
case "setRefDynamicText":
setRefDynamicText(data.data);
break;
case "reloadEmbedBlock":
reloadEmbedBlock(data.data);
break;
case "reloadPlugin":
reloadPlugin(this, data.data);
break;

View file

@ -2,7 +2,7 @@ import {openMobileFileById} from "../editor";
import {
processSync,
progressLoading,
progressStatus,
progressStatus, reloadEmbedBlock,
reloadSync, setDefRefCount, setRefDynamicText,
transactionError
} from "../../dialog/processSystem";
@ -19,6 +19,9 @@ export const onMessage = (app: App, data: IWebSocketData) => {
case "setRefDynamicText":
setRefDynamicText(data.data);
break;
case "reloadEmbedBlock":
reloadEmbedBlock(data.data);
break;
case "reloadPlugin":
reloadPlugin(app, data.data);
break;

View file

@ -12,7 +12,7 @@ import {
processSync,
progressBackgroundTask,
progressLoading,
progressStatus,
progressStatus, reloadEmbedBlock,
reloadSync,
setDefRefCount,
setRefDynamicText,
@ -60,6 +60,9 @@ class App {
case "setRefDynamicText":
setRefDynamicText(data.data);
break;
case "reloadEmbedBlock":
reloadEmbedBlock(data.data);
break
case "reloadPlugin":
reloadPlugin(this, data.data);
break;