mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-08-12 11:52:28 +08:00

Fix the bug that when right click on unactive note and do move and clone command, it still gonna move and clone the active note
72 lines
2.2 KiB
TypeScript
72 lines
2.2 KiB
TypeScript
import appContext, { type EventData } from "./app_context.js";
|
|
import noteCreateService from "../services/note_create.js";
|
|
import treeService from "../services/tree.js";
|
|
import hoistedNoteService from "../services/hoisted_note.js";
|
|
import Component from "./component.js";
|
|
|
|
/**
|
|
* This class contains command executors which logically belong to the NoteTree widget, but for better user experience,
|
|
* the keyboard shortcuts must be active on the whole screen and not just on the widget itself, so the executors
|
|
* must be at the root of the component tree.
|
|
*/
|
|
export default class MainTreeExecutors extends Component {
|
|
get tree() {
|
|
return appContext.noteTreeWidget;
|
|
}
|
|
|
|
async cloneNotesToCommand({ selectedOrActiveNoteIds }: EventData<"cloneNotesTo">) {
|
|
if (!this.tree) {
|
|
return;
|
|
}
|
|
|
|
this.triggerCommand("cloneNoteIdsTo", { noteIds: selectedOrActiveNoteIds });
|
|
}
|
|
|
|
async moveNotesToCommand({ selectedOrActiveBranchIds }: EventData<"moveNotesTo">) {
|
|
if (!this.tree) {
|
|
return;
|
|
}
|
|
|
|
this.triggerCommand("moveBranchIdsTo", { branchIds: selectedOrActiveBranchIds });
|
|
}
|
|
|
|
async createNoteIntoCommand() {
|
|
const activeNoteContext = appContext.tabManager.getActiveContext();
|
|
|
|
if (!activeNoteContext || !activeNoteContext.notePath || !activeNoteContext.note) {
|
|
return;
|
|
}
|
|
|
|
await noteCreateService.createNote(activeNoteContext.notePath, {
|
|
isProtected: activeNoteContext.note.isProtected,
|
|
saveSelection: false
|
|
});
|
|
}
|
|
|
|
async createNoteAfterCommand() {
|
|
if (!this.tree) {
|
|
return;
|
|
}
|
|
|
|
const node = this.tree.getActiveNode();
|
|
|
|
if (!node) {
|
|
return;
|
|
}
|
|
|
|
const parentNotePath = treeService.getNotePath(node.getParent());
|
|
const isProtected = treeService.getParentProtectedStatus(node);
|
|
|
|
if (node.data.noteId === "root" || node.data.noteId === hoistedNoteService.getHoistedNoteId()) {
|
|
return;
|
|
}
|
|
|
|
await noteCreateService.createNote(parentNotePath, {
|
|
target: "after",
|
|
targetBranchId: node.data.branchId,
|
|
isProtected: isProtected,
|
|
saveSelection: false
|
|
});
|
|
}
|
|
}
|