Vanessa 2024-05-24 08:39:12 +08:00
parent 1cba50d880
commit 66b6bf4dd5
2 changed files with 11 additions and 1 deletions

View file

@ -449,6 +449,15 @@ const editKeydown = (app: App, event: KeyboardEvent) => {
event.preventDefault();
return true;
}
if (matchHotKey(window.siyuan.config.keymap.editor.general.duplicateCompletely.custom, event)) {
const nodeElement = hasClosestBlock(range.startContainer);
if (!nodeElement || !nodeElement.classList.contains("av")) {
return false;
}
duplicateCompletely(protyle, nodeElement);
event.preventDefault();
return true;
}
if (matchHotKey(window.siyuan.config.keymap.editor.general.refresh.custom, event)) {
reloadProtyle(protyle, true);
event.preventDefault();

View file

@ -494,14 +494,15 @@ export const removeAttrViewColAnimation = (blockElement: Element, id: string) =>
export const duplicateCompletely = (protyle:IProtyle, nodeElement:HTMLElement) => {
fetchPost("/api/av/duplicateAttributeViewBlock", {avID: nodeElement.getAttribute("data-av-id")}, (response) => {
nodeElement.classList.remove("protyle-wysiwyg--select")
const tempElement = document.createElement("template");
tempElement.innerHTML = protyle.lute.SpinBlockDOM(`<div data-node-id="${response.data.blockID}" data-av-id="${response.data.avID}" data-type="NodeAttributeView" data-av-type="table"></div>`)
const cloneElement = tempElement.content.firstElementChild;
nodeElement.after(cloneElement);
avRender(cloneElement, protyle, () => {
focusBlock(cloneElement);
scrollCenter(protyle);
});
scrollCenter(protyle);
transaction(protyle, [{
action: "insert",
data: cloneElement.outerHTML,