diff --git a/app/src/protyle/render/av/openMenuPanel.ts b/app/src/protyle/render/av/openMenuPanel.ts index 07e2413c3..bba64b6f3 100644 --- a/app/src/protyle/render/av/openMenuPanel.ts +++ b/app/src/protyle/render/av/openMenuPanel.ts @@ -22,6 +22,8 @@ import {openAsset} from "../../../editor/util"; import {previewImage} from "../../preview/image"; import {assetMenu} from "../../../menus/protyle"; import {bindViewEvent, getViewHTML} from "./view"; +import {removeBlock} from "../../wysiwyg/remove"; +import {getEditorRange} from "../../util/selection"; export const openMenuPanel = (options: { protyle: IProtyle, @@ -552,15 +554,21 @@ export const openMenuPanel = (options: { avID, id }]); + avPanelElement.remove(); event.preventDefault(); event.stopPropagation(); break; } else if (type === "delete-view") { - transaction(options.protyle, [{ - action: "removeAttrViewView", - avID, - id: data.viewID - }]); + if (data.views.length === 1) { + removeBlock(options.protyle, options.blockElement, getEditorRange(options.blockElement)) + } else { + transaction(options.protyle, [{ + action: "removeAttrViewView", + avID, + id: data.viewID + }]); + } + avPanelElement.remove(); event.preventDefault(); event.stopPropagation(); break; diff --git a/app/src/protyle/render/av/render.ts b/app/src/protyle/render/av/render.ts index 7c36db4b3..ceade5329 100644 --- a/app/src/protyle/render/av/render.ts +++ b/app/src/protyle/render/av/render.ts @@ -202,7 +202,7 @@ ${cell.color ? `color:${cell.color};` : ""}">${text}`; let tabHTML = ""; response.data.views.forEach((item: IAVView) => { tabHTML += `
- ${response.data.view.icon ? unicode2Emoji(response.data.view.icon, "item__graphic") : ''} + ${item.icon ? unicode2Emoji(item.icon, "item__graphic", true) : ''} ${item.name}
`; }); diff --git a/app/src/protyle/render/av/view.ts b/app/src/protyle/render/av/view.ts index 7f3900580..58ce03d43 100644 --- a/app/src/protyle/render/av/view.ts +++ b/app/src/protyle/render/av/view.ts @@ -3,9 +3,7 @@ import {unicode2Emoji} from "../../../emoji"; import {transaction} from "../../wysiwyg/transaction"; export const openViewMenu = (element: HTMLElement) => { - const menu = new Menu("av-view", () => { - - }); + const menu = new Menu("av-view"); if (menu.isOpen) { return; } diff --git a/app/src/types/index.d.ts b/app/src/types/index.d.ts index ddca8b6ab..b2896b0e1 100644 --- a/app/src/types/index.d.ts +++ b/app/src/types/index.d.ts @@ -1015,6 +1015,7 @@ interface IAVView { name: string id: string type: string + icon: string } interface IAVTable {