diff --git a/app/src/assets/scss/component/_menu.scss b/app/src/assets/scss/component/_menu.scss index 3c30f2d5d..b3ca40d51 100644 --- a/app/src/assets/scss/component/_menu.scss +++ b/app/src/assets/scss/component/_menu.scss @@ -224,6 +224,14 @@ color: var(--b3-theme-primary); } + &--remove:hover { + color: var(--b3-card-error-color); + + & > .b3-menu__icon { + color: var(--b3-card-error-color); + } + } + &--current:not(.b3-menu__item--readonly) { background-color: var(--b3-list-hover); diff --git a/app/src/card/makeCard.ts b/app/src/card/makeCard.ts index 9892b88d8..0937861b6 100644 --- a/app/src/card/makeCard.ts +++ b/app/src/card/makeCard.ts @@ -118,7 +118,7 @@ export const makeCard = (app: App, ids: string[]) => { }, () => { target.parentElement.remove(); }); - }); + }, undefined, true); event.stopPropagation(); event.preventDefault(); break; diff --git a/app/src/config/image.ts b/app/src/config/image.ts index 33b94b7f1..47ff8a685 100644 --- a/app/src/config/image.ts +++ b/app/src/config/image.ts @@ -68,7 +68,7 @@ export const image = { assetsListElement.innerHTML = `
  • ${window.siyuan.languages.emptyContent}
  • `; image.element.querySelector(".config-assets__preview").innerHTML = ""; }); - }); + }, undefined, true); } else if (target.classList.contains("item") && !target.classList.contains("item--focus")) { image.element.querySelector(".layout-tab-bar .item--focus").classList.remove("item--focus"); target.classList.add("item--focus"); @@ -113,7 +113,7 @@ export const image = { } image.element.querySelector(".config-assets__preview").innerHTML = ""; }); - }); + }, undefined, true); event.preventDefault(); event.stopPropagation(); break; diff --git a/app/src/dialog/confirmDialog.ts b/app/src/dialog/confirmDialog.ts index 98cc3eb2b..56649aec6 100644 --- a/app/src/dialog/confirmDialog.ts +++ b/app/src/dialog/confirmDialog.ts @@ -1,7 +1,10 @@ import {isMobile} from "../util/functions"; import {Dialog} from "./index"; -export const confirmDialog = (title: string, text: string, confirm?: (dialog?: Dialog) => void, cancel?: (dialog: Dialog) => void) => { +export const confirmDialog = (title: string, text: string, + confirm?: (dialog?: Dialog) => void, + cancel?: (dialog: Dialog) => void, + isDelete = false) => { if (!text && !title) { confirm(); return; @@ -13,7 +16,7 @@ export const confirmDialog = (title: string, text: string, confirm?: (dialog?: D
    - +
    `, width: isMobile() ? "92vw" : "520px", }); diff --git a/app/src/editor/deleteFile.ts b/app/src/editor/deleteFile.ts index a00ee4ca5..0e368c765 100644 --- a/app/src/editor/deleteFile.ts +++ b/app/src/editor/deleteFile.ts @@ -31,7 +31,7 @@ export const deleteFile = (notebookId: string, pathString: string) => { notebook: notebookId, path: pathString }); - }); + }, undefined, true); }); }; @@ -51,7 +51,7 @@ export const deleteFiles = (liElements: Element[]) => { notebook: itemNotebookId, callback: Constants.CB_MOUNT_REMOVE }); - }); + }, undefined, true); } } } else { @@ -73,6 +73,6 @@ export const deleteFiles = (liElements: Element[]) => { fetchPost("/api/filetree/removeDocs", { paths }); - }); + }, undefined, true); } }; diff --git a/app/src/history/history.ts b/app/src/history/history.ts index 3fdbb4c16..6d9742a4e 100644 --- a/app/src/history/history.ts +++ b/app/src/history/history.ts @@ -759,7 +759,7 @@ const bindEvent = (app: App, element: Element, dialog?: Dialog) => { fetchPost("/api/repo/" + type, {tag}, () => { renderRepo(repoElement, 1); }); - }); + }, undefined, true); event.stopPropagation(); event.preventDefault(); break; diff --git a/app/src/layout/dock/Files.ts b/app/src/layout/dock/Files.ts index 1402d450d..e6600dd1e 100644 --- a/app/src/layout/dock/Files.ts +++ b/app/src/layout/dock/Files.ts @@ -165,7 +165,7 @@ export class Files extends Model { notebook: target.getAttribute("data-url"), callback: Constants.CB_MOUNT_REMOVE }); - }); + }, undefined, true); window.siyuan.menus.menu.remove(); event.stopPropagation(); event.preventDefault(); diff --git a/app/src/layout/dock/Inbox.ts b/app/src/layout/dock/Inbox.ts index 2405584a5..4c7a1214d 100644 --- a/app/src/layout/dock/Inbox.ts +++ b/app/src/layout/dock/Inbox.ts @@ -290,7 +290,7 @@ ${data.shorthandContent} } else { this.remove(detailsElement.getAttribute("data-id")); } - }); + }, undefined, true); } }).element); } diff --git a/app/src/menus/Menu.ts b/app/src/menus/Menu.ts index 4a6645583..29e2235c8 100644 --- a/app/src/menus/Menu.ts +++ b/app/src/menus/Menu.ts @@ -213,6 +213,9 @@ export class MenuItem { if (options.type === "readonly") { this.element.classList.add("b3-menu__item--readonly"); } + if (options.icon === "iconTrashcan") { + this.element.classList.add("b3-menu__item--remove"); + } if (options.element) { this.element.append(options.element); diff --git a/app/src/menus/bookmark.ts b/app/src/menus/bookmark.ts index e16ad7798..9178ad7ca 100644 --- a/app/src/menus/bookmark.ts +++ b/app/src/menus/bookmark.ts @@ -85,7 +85,7 @@ export const openBookmarkMenu = (element: HTMLElement, event: MouseEvent, bookma } else { fetchPost("/api/bookmark/removeBookmark", {bookmark: bookmarkText}); } - }); + }, undefined, true); } }).element); } diff --git a/app/src/menus/tag.ts b/app/src/menus/tag.ts index b5bb1b397..0105ec09b 100644 --- a/app/src/menus/tag.ts +++ b/app/src/menus/tag.ts @@ -24,7 +24,7 @@ export const openTagMenu = (element: HTMLElement, event: MouseEvent, labelName: click: () => { confirmDialog(window.siyuan.languages.deleteOpConfirm, `${window.siyuan.languages.confirmDelete} ${escapeHtml(labelName)}?`, () => { fetchPost("/api/tag/removeTag", {label: labelName}); - }); + }, undefined, true); } }).element); window.siyuan.menus.menu.element.setAttribute("data-name", "tagMenu"); diff --git a/app/src/menus/workspace.ts b/app/src/menus/workspace.ts index 82e426791..ef74cfef0 100644 --- a/app/src/menus/workspace.ts +++ b/app/src/menus/workspace.ts @@ -301,7 +301,7 @@ export const workspaceMenu = (app: App, rect: DOMRect) => { fetchPost("/api/system/removeWorkspaceDir", {path: item.path}, () => { confirmDialog(window.siyuan.languages.deleteOpConfirm, window.siyuan.languages.removeWorkspacePhysically.replace("${x}", item.path), () => { fetchPost("/api/system/removeWorkspaceDirPhysically", {path: item.path}); - }); + }, undefined, true); }); return; } diff --git a/app/src/mobile/dock/MobileFiles.ts b/app/src/mobile/dock/MobileFiles.ts index ad0e032a9..ebde8f453 100644 --- a/app/src/mobile/dock/MobileFiles.ts +++ b/app/src/mobile/dock/MobileFiles.ts @@ -177,7 +177,7 @@ export class MobileFiles extends Model { notebook: target.getAttribute("data-url"), callback: Constants.CB_MOUNT_REMOVE }); - }); + }, undefined, true); event.stopPropagation(); event.preventDefault(); break; diff --git a/app/src/mobile/settings/about.ts b/app/src/mobile/settings/about.ts index 2fa76ef92..6a97b02a2 100644 --- a/app/src/mobile/settings/about.ts +++ b/app/src/mobile/settings/about.ts @@ -356,7 +356,7 @@ export const initAbout = () => { genWorkspace(workspaceDirElement); confirmDialog(window.siyuan.languages.deleteOpConfirm, window.siyuan.languages.removeWorkspacePhysically.replace("${x}", removePath), () => { fetchPost("/api/system/removeWorkspaceDirPhysically", {path: removePath}); - }); + }, undefined, true); }); event.preventDefault(); event.stopPropagation(); diff --git a/app/src/protyle/render/av/select.ts b/app/src/protyle/render/av/select.ts index e0252a8db..ff9381f50 100644 --- a/app/src/protyle/render/av/select.ts +++ b/app/src/protyle/render/av/select.ts @@ -289,7 +289,7 @@ export const setColOption = (protyle: IProtyle, data: IAV, target: HTMLElement, if (selectedElement) { menuElement.querySelector(".b3-menu__items").scrollTop = oldScroll + (menuElement.querySelector(".b3-chips").clientHeight - oldChipsHeight); } - }); + }, undefined, true); } }); menu.addSeparator(); diff --git a/app/src/sync/syncGuide.ts b/app/src/sync/syncGuide.ts index 43fc167b1..c64f8de9f 100644 --- a/app/src/sync/syncGuide.ts +++ b/app/src/sync/syncGuide.ts @@ -61,7 +61,7 @@ export const bindSyncCloudListEvent = (cloudPanelElement: Element, cb?: () => vo window.siyuan.config.sync.cloudName = response.data; getSyncCloudList(cloudPanelElement, true, cb); }); - }); + }, undefined, true); break; case "selectCloud": cloudPanelElement.innerHTML = '';