From ed541dac3b83b020dd8e638016d2c70d8669541e Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Sat, 26 Jan 2019 15:15:16 +0000 Subject: [PATCH] Desktop: Delete note using keyboard --- ElectronClient/app/gui/NoteList.jsx | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/ElectronClient/app/gui/NoteList.jsx b/ElectronClient/app/gui/NoteList.jsx index 1ef37fa6ed..c7b8ebe66a 100644 --- a/ElectronClient/app/gui/NoteList.jsx +++ b/ElectronClient/app/gui/NoteList.jsx @@ -176,14 +176,19 @@ class NoteListComponent extends React.Component { } menu.append(new MenuItem({label: _('Delete'), click: async () => { - const ok = bridge().showConfirmMessageBox(noteIds.length > 1 ? _('Delete notes?') : _('Delete note?')); - if (!ok) return; - await Note.batchDelete(noteIds); + await this.confirmDeleteNotes(noteIds); }})); menu.popup(bridge().window()); } + async confirmDeleteNotes(noteIds) { + if (!noteIds.length) return; + const ok = bridge().showConfirmMessageBox(noteIds.length > 1 ? _('Delete notes?') : _('Delete note?')); + if (!ok) return; + await Note.batchDelete(noteIds); + } + itemRenderer(item) { const theme = themeStyle(this.props.theme); const width = this.props.style.width; @@ -337,10 +342,10 @@ class NoteListComponent extends React.Component { return null; } - onKeyDown(event) { + async onKeyDown(event) { const keyCode = event.keyCode; const noteIds = this.props.selectedNoteIds; - + if (noteIds.length === 1 && (keyCode === 40 || keyCode === 38)) { // DOWN / UP const noteId = noteIds[0]; let noteIndex = BaseModel.modelIndexById(this.props.notes, noteId); @@ -379,6 +384,11 @@ class NoteListComponent extends React.Component { event.preventDefault(); } + + if (noteIds.length && keyCode === 46) { // DELETE + event.preventDefault(); + await this.confirmDeleteNotes(noteIds); + } } componentWillUnmount() {