Notes/src/public/app/widgets/buttons/open_note_button_widget.js

33 lines
1.1 KiB
JavaScript
Raw Normal View History

2022-12-02 16:46:14 +01:00
import OnClickButtonWidget from "./onclick_button.js";
import linkContextMenuService from "../../menus/link_context_menu.js";
import utils from "../../services/utils.js";
2022-12-01 13:07:23 +01:00
import appContext from "../../components/app_context.js";
2022-08-05 16:44:26 +02:00
2022-12-02 16:46:14 +01:00
export default class OpenNoteButtonWidget extends OnClickButtonWidget {
constructor(noteToOpen) {
super();
2021-11-20 12:49:12 +01:00
this.noteToOpen = noteToOpen;
2021-11-20 12:49:12 +01:00
this.title(() => this.noteToOpen.title)
.icon(() => this.noteToOpen.getIcon())
.onClick((widget, evt) => this.launch(evt))
.onAuxClick((widget, evt) => this.launch(evt))
.onContextMenu(evt => linkContextMenuService.openContextMenu(this.noteToOpen.noteId, null, evt));
}
2021-10-05 22:08:02 +02:00
async launch(evt) {
const ctrlKey = utils.isCtrlKey(evt);
2021-09-16 23:09:48 +02:00
if ((evt.which === 1 && ctrlKey) || evt.which === 2) {
await appContext.tabManager.openInNewTab(this.noteToOpen.noteId);
} else {
await appContext.tabManager.openInSameTab(this.noteToOpen.noteId);
}
2021-09-16 23:09:48 +02:00
}
2021-10-05 22:08:02 +02:00
initialRenderCompleteEvent() {
// we trigger refresh above
}
2021-09-16 23:09:48 +02:00
}