فهرست منبع

:art: fix https://github.com/siyuan-note/siyuan/issues/6531

Vanessa 2 سال پیش
والد
کامیت
012146b973
1فایلهای تغییر یافته به همراه35 افزوده شده و 4 حذف شده
  1. 35 4
      app/src/menus/navigation.ts

+ 35 - 4
app/src/menus/navigation.ts

@@ -24,10 +24,34 @@ import {newFile} from "../util/newFile";
 import {hasClosestByTag} from "../protyle/util/hasClosest";
 import {deleteFiles} from "../editor/deleteFile";
 
+const initMultiMenu = (selectItemElements: NodeListOf<Element>) => {
+    const fileItemElement = Array.from(selectItemElements).find(item => {
+        if (item.getAttribute("data-type") === "navigation-file") {
+            return true
+        }
+    })
+    if (!fileItemElement) {
+        return window.siyuan.menus.menu;
+    }
+    window.siyuan.menus.menu.append(movePathToMenu(getTopPaths(
+        Array.from(selectItemElements)
+    )));
+    window.siyuan.menus.menu.append(new MenuItem({
+        icon: "iconTrashcan",
+        label: window.siyuan.languages.delete,
+        accelerator: "⌦",
+        click: () => {
+            deleteFiles(Array.from(selectItemElements));
+        }
+    }).element);
+    return window.siyuan.menus.menu;
+}
+
 export const initNavigationMenu = (liElement: HTMLElement) => {
+    window.siyuan.menus.menu.remove();
     const fileElement = hasClosestByTag(liElement, "DIV");
     if (!fileElement) {
-        return;
+        return window.siyuan.menus.menu;
     }
     if (!liElement.classList.contains("b3-list-item--focus")) {
         fileElement.querySelectorAll(".b3-list-item--focus").forEach(item => {
@@ -37,9 +61,12 @@ export const initNavigationMenu = (liElement: HTMLElement) => {
         });
         liElement.classList.add("b3-list-item--focus");
     }
+    const selectItemElements = fileElement.querySelectorAll(".b3-list-item--focus")
+    if (selectItemElements.length > 1) {
+        return initMultiMenu(selectItemElements);
+    }
     const notebookId = liElement.parentElement.getAttribute("data-url");
     const name = getNotebookName(notebookId);
-    window.siyuan.menus.menu.remove();
     if (!window.siyuan.config.readonly) {
         window.siyuan.menus.menu.append(renameMenu({
             path: "/",
@@ -142,9 +169,10 @@ export const initNavigationMenu = (liElement: HTMLElement) => {
 };
 
 export const initFileMenu = (notebookId: string, pathString: string, liElement: Element) => {
+    window.siyuan.menus.menu.remove();
     const fileElement = hasClosestByTag(liElement, "DIV");
     if (!fileElement) {
-        return;
+        return  window.siyuan.menus.menu;
     }
     if (!liElement.classList.contains("b3-list-item--focus")) {
         fileElement.querySelectorAll(".b3-list-item--focus").forEach(item => {
@@ -154,9 +182,12 @@ export const initFileMenu = (notebookId: string, pathString: string, liElement:
         });
         liElement.classList.add("b3-list-item--focus");
     }
+    const selectItemElements = fileElement.querySelectorAll(".b3-list-item--focus")
+    if (selectItemElements.length > 1) {
+        return initMultiMenu(selectItemElements);
+    }
     const id = liElement.getAttribute("data-node-id");
     let name = liElement.getAttribute("data-name");
-    window.siyuan.menus.menu.remove();
     name = getDisplayName(name, false, true);
     if (!window.siyuan.config.readonly) {
         if (window.siyuan.config.fileTree.sort === 6) {