Vanessa 2024-11-16 12:03:08 +08:00
parent e3d2894a23
commit 2735e16d69
4 changed files with 27 additions and 13 deletions

View file

@ -465,9 +465,6 @@ export class Backlink extends Model {
if (!this.blockId) {
return;
}
this.editors.forEach(item => {
item.destroy();
});
const element = this.element.querySelector('.block__icon[data-type="refresh"] svg');
element.classList.add("fn__rotate");
fetchPost("/api/ref/refreshBacklink", {

View file

@ -41,6 +41,7 @@ import {focusBlock, getEditorRange} from "./util/selection";
import {hasClosestBlock} from "./util/hasClosest";
import {setStorageVal} from "./util/compatibility";
import {merge} from "./util/merge";
import {getAllModels} from "../layout/getAll";
export class Protyle {
@ -125,15 +126,24 @@ export class Protyle {
}
break;
case "transactions":
data.data[0].doOperations.forEach((item: IOperation) => {
if (!this.protyle.preview.element.classList.contains("fn__none") &&
item.action !== "updateAttrs" // 预览模式下点击只读
) {
this.protyle.preview.render(this.protyle);
} else {
onTransaction(this.protyle, item, false);
}
});
if (options.backlinkData) {
getAllModels().backlink.find(item => {
if (item.element.contains(this.protyle.element)) {
item.refresh();
return true;
}
});
} else {
data.data[0].doOperations.forEach((item: IOperation) => {
if (!this.protyle.preview.element.classList.contains("fn__none") &&
item.action !== "updateAttrs" // 预览模式下点击只读
) {
this.protyle.preview.render(this.protyle);
} else {
onTransaction(this.protyle, item, false);
}
});
}
break;
case "readonly":
window.siyuan.config.editor.readOnly = data.data;

View file

@ -61,6 +61,13 @@ const moveToNew = (protyle: IProtyle, sourceElements: Element[], targetElement:
topSourceElement = getTopAloneElement(item);
if (topSourceElement.isSameNode(item)) {
topSourceElement = undefined;
// 单个缩放或反链面板中的列表项拖拽到包含该列表的编辑器中会导致残留的 list
Array.from(protyle.wysiwyg.element.querySelectorAll(`[data-node-id="${item.getAttribute("data-node-id")}"]`)).find((targetItem: HTMLElement) => {
if (!isInEmbedBlock(targetItem) && targetItem.parentElement.querySelectorAll(".li").length === 1) {
topSourceElement = targetItem.parentElement;
return true;
}
});
}
}
const copyId = Lute.NewNodeID();

View file

@ -74,7 +74,7 @@ export const getContenteditableElement = (element: Element) => {
if (editableElement && !hasClosestByAttribute(editableElement, "data-type", "NodeBlockQueryEmbed")) {
return editableElement;
}
return false;
return undefined;
};
export const isNotEditBlock = (element: Element) => {