Skip to content

Commit 3680eee

Browse files
committed
Add ids parameter to the open-menu-doctree event
1 parent 6564f0e commit 3680eee

File tree

1 file changed

+24
-26
lines changed

1 file changed

+24
-26
lines changed

app/src/menus/navigation.ts

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -31,22 +31,20 @@ import {emitOpenMenu} from "../plugin/EventBus";
3131
import {openByMobile} from "../protyle/util/compatibility";
3232
import {addFilesToDatabase} from "../protyle/render/av/addToDatabase";
3333

34-
const initMultiMenu = (selectItemElements: NodeListOf<Element>, app: App) => {
35-
const fileItemElement = Array.from(selectItemElements).find(item => {
36-
if (item.getAttribute("data-type") === "navigation-file") {
37-
return true;
38-
}
39-
});
40-
if (!fileItemElement) {
41-
return window.siyuan.menus.menu;
42-
}
34+
const initMultiMenu = (selectItemElements: Element[], app: App) => {
4335
const blockIDs: string[] = [];
44-
selectItemElements.forEach(item => {
36+
const fileItemElements = selectItemElements.filter(item => {
37+
if (item.getAttribute("data-type") === "navigation-file") {
4538
const id = item.getAttribute("data-node-id");
46-
if (id) {
47-
blockIDs.push(id);
48-
}
39+
id && blockIDs.push(id);
40+
return true;
41+
}
42+
return false;
4943
});
44+
45+
if (fileItemElements.length === 0) {
46+
return window.siyuan.menus.menu;
47+
}
5048

5149
if (blockIDs.length > 0) {
5250
window.siyuan.menus.menu.append(new MenuItem({
@@ -69,19 +67,15 @@ const initMultiMenu = (selectItemElements: NodeListOf<Element>, app: App) => {
6967
}])
7068
}).element);
7169
}
72-
73-
window.siyuan.menus.menu.append(movePathToMenu(getTopPaths(
74-
Array.from(selectItemElements)
75-
)));
76-
70+
window.siyuan.menus.menu.append(movePathToMenu(getTopPaths(fileItemElements)));
7771
if (blockIDs.length > 0) {
7872
window.siyuan.menus.menu.append(new MenuItem({
7973
id: "addToDatabase",
8074
label: window.siyuan.languages.addToDatabase,
8175
accelerator: window.siyuan.config.keymap.general.addToDatabase.custom,
8276
icon: "iconDatabase",
8377
click: () => {
84-
addFilesToDatabase(Array.from(selectItemElements));
78+
addFilesToDatabase(fileItemElements);
8579
}
8680
}).element);
8781
}
@@ -91,13 +85,14 @@ const initMultiMenu = (selectItemElements: NodeListOf<Element>, app: App) => {
9185
label: window.siyuan.languages.delete,
9286
accelerator: "⌦",
9387
click: () => {
94-
deleteFiles(Array.from(selectItemElements));
88+
deleteFiles(fileItemElements);
9589
}
9690
}).element);
9791

9892
if (blockIDs.length === 0) {
9993
return window.siyuan.menus.menu;
10094
}
95+
10196
window.siyuan.menus.menu.append(new MenuItem({id: "separator_1", type: "separator"}).element);
10297
if (!window.siyuan.config.readonly) {
10398
const riffCardMenu = [{
@@ -176,8 +171,9 @@ const initMultiMenu = (selectItemElements: NodeListOf<Element>, app: App) => {
176171
plugins: app.plugins,
177172
type: "open-menu-doctree",
178173
detail: {
179-
elements: selectItemElements,
180-
type: "docs"
174+
elements: fileItemElements,
175+
type: "docs",
176+
ids: blockIDs
181177
},
182178
separatorPosition: "top",
183179
});
@@ -199,7 +195,7 @@ export const initNavigationMenu = (app: App, liElement: HTMLElement) => {
199195
});
200196
liElement.classList.add("b3-list-item--focus");
201197
}
202-
const selectItemElements = fileElement.querySelectorAll(".b3-list-item--focus");
198+
const selectItemElements = Array.from(fileElement.querySelectorAll(".b3-list-item--focus"));
203199
if (selectItemElements.length > 1) {
204200
return initMultiMenu(selectItemElements, app);
205201
}
@@ -407,7 +403,8 @@ export const initNavigationMenu = (app: App, liElement: HTMLElement) => {
407403
type: "open-menu-doctree",
408404
detail: {
409405
elements: selectItemElements,
410-
type: "notebook"
406+
type: "notebook",
407+
ids: [notebookId]
411408
},
412409
separatorPosition: "top",
413410
});
@@ -429,7 +426,7 @@ export const initFileMenu = (app: App, notebookId: string, pathString: string, l
429426
});
430427
liElement.classList.add("b3-list-item--focus");
431428
}
432-
const selectItemElements = fileElement.querySelectorAll(".b3-list-item--focus");
429+
const selectItemElements = Array.from(fileElement.querySelectorAll(".b3-list-item--focus"));
433430
if (selectItemElements.length > 1) {
434431
return initMultiMenu(selectItemElements, app);
435432
}
@@ -701,7 +698,8 @@ export const initFileMenu = (app: App, notebookId: string, pathString: string, l
701698
type: "open-menu-doctree",
702699
detail: {
703700
elements: selectItemElements,
704-
type: "doc"
701+
type: "doc",
702+
ids: [id]
705703
},
706704
separatorPosition: "top",
707705
});

0 commit comments

Comments
 (0)