diff --git a/app/src/protyle/render/av/openMenuPanel.ts b/app/src/protyle/render/av/openMenuPanel.ts index 99b61ccaa..02681c2fd 100644 --- a/app/src/protyle/render/av/openMenuPanel.ts +++ b/app/src/protyle/render/av/openMenuPanel.ts @@ -70,7 +70,7 @@ export const openMenuPanel = (options: { const data = response.data as IAV; let html; if (options.type === "config") { - html = getViewHTML(data.view); + html = getViewHTML(data); } else if (options.type === "properties") { html = getPropertiesHTML(data.view); } else if (options.type === "sorts") { @@ -518,7 +518,7 @@ export const openMenuPanel = (options: { event.stopPropagation(); break; } else if (type === "go-config") { - menuElement.innerHTML = getViewHTML(data.view); + menuElement.innerHTML = getViewHTML(data); setPosition(menuElement, tabRect.right - menuElement.clientWidth, tabRect.bottom, tabRect.height); bindViewEvent({protyle: options.protyle, data, menuElement, blockElement: options.blockElement}); window.siyuan.menus.menu.remove(); @@ -758,16 +758,12 @@ export const openMenuPanel = (options: { event.stopPropagation(); break; } else if (type === "delete-view") { - if (data.views.length === 1) { - removeBlock(options.protyle, options.blockElement, getEditorRange(options.blockElement), "remove"); - } else { - transaction(options.protyle, [{ - action: "removeAttrViewView", - avID, - id: data.viewID, - blockID - }]); - } + transaction(options.protyle, [{ + action: "removeAttrViewView", + avID, + id: data.viewID, + blockID + }]); avPanelElement.remove(); event.preventDefault(); event.stopPropagation(); diff --git a/app/src/protyle/render/av/view.ts b/app/src/protyle/render/av/view.ts index 3dbeccc97..aa85a5740 100644 --- a/app/src/protyle/render/av/view.ts +++ b/app/src/protyle/render/av/view.ts @@ -63,14 +63,12 @@ export const openViewMenu = (options: { protyle: IProtyle, blockElement: HTMLEle options.blockElement.setAttribute(Constants.CUSTOM_SY_AV_VIEW, id); } }); - menu.addItem({ - icon: "iconTrashcan", - label: window.siyuan.languages.delete, - click() { - document.querySelector(".av__panel")?.remove(); - if (options.blockElement.querySelectorAll(".layout-tab-bar .item").length === 1) { - removeBlock(options.protyle, options.blockElement, getEditorRange(options.blockElement), "remove"); - } else { + if (options.blockElement.querySelectorAll(".layout-tab-bar .item").length > 1) { + menu.addItem({ + icon: "iconTrashcan", + label: window.siyuan.languages.delete, + click() { + document.querySelector(".av__panel")?.remove(); transaction(options.protyle, [{ action: "removeAttrViewView", avID: options.blockElement.dataset.avId, @@ -78,8 +76,8 @@ export const openViewMenu = (options: { protyle: IProtyle, blockElement: HTMLEle blockID: options.blockElement.dataset.nodeId }]); } - } - }); + }); + } const rect = options.element.getBoundingClientRect(); menu.open({ x: rect.left, @@ -156,46 +154,47 @@ export const bindViewEvent = (options: { }); }; -export const getViewHTML = (data: IAVTable) => { +export const getViewHTML = (data: IAV) => { + const view = data.view; return `