Add shortcut to delete newly created note quickly (#2177)

* Add shortcut to delete newly created note quickly

* Add space
This commit is contained in:
Abitofevrything 2021-09-23 23:34:51 +02:00 committed by GitHub
parent 8769fd71cb
commit 3d9260c974
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 3 deletions

View File

@ -80,7 +80,7 @@ export default class Entrypoints extends Component {
await appContext.tabManager.openContextWithNote(note.noteId, true, null, hoistedNoteId);
appContext.triggerEvent('focusAndSelectTitle');
appContext.triggerEvent('focusAndSelectTitle', {isNewNote: true});
}
async toggleNoteHoistingCommand() {

View File

@ -52,7 +52,7 @@ async function createNote(parentNotePath, options = {}) {
await activeNoteContext.setNote(`${parentNotePath}/${note.noteId}`);
if (options.focus === 'title') {
appContext.triggerEvent('focusAndSelectTitle');
appContext.triggerEvent('focusAndSelectTitle', {isNewNote: true});
}
else if (options.focus === 'content') {
appContext.triggerEvent('focusOnDetail', {ntxId: activeNoteContext.ntxId});

View File

@ -4,6 +4,7 @@ import protectedSessionHolder from "../services/protected_session_holder.js";
import server from "../services/server.js";
import SpacedUpdate from "../services/spaced_update.js";
import appContext from "../services/app_context.js";
import branchService from "../services/branches.js";
const TPL = `
<div class="note-title-widget">
@ -40,6 +41,8 @@ export default class NoteTitleWidget extends NoteContextAwareWidget {
await server.put(`notes/${this.noteId}/change-title`, {title}, this.componentId);
});
this.deleteNoteOnEscape = false;
appContext.addBeforeUnloadListener(this);
}
@ -49,6 +52,14 @@ export default class NoteTitleWidget extends NoteContextAwareWidget {
this.$noteTitle.on('input', () => this.spacedUpdate.scheduleUpdate());
this.$noteTitle.on('blur', () => { this.deleteNoteOnEscape = false });
utils.bindElShortcut(this.$noteTitle, 'esc', () => {
if (this.deleteNoteOnEscape && this.noteContext.isActive()) {
branchService.deleteNotes(Object.values(this.noteContext.note.parentToBranch));
}
});
utils.bindElShortcut(this.$noteTitle, 'return', () => {
this.triggerCommand('focusOnAttributes', {ntxId: this.noteContext.ntxId});
});
@ -84,11 +95,13 @@ export default class NoteTitleWidget extends NoteContextAwareWidget {
}
}
focusAndSelectTitleEvent() {
focusAndSelectTitleEvent({isNewNote} = {isNewNote: false}) {
if (this.noteContext && this.noteContext.isActive()) {
this.$noteTitle
.trigger('focus')
.trigger('select');
this.deleteNoteOnEscape = isNewNote;
}
}