From c2ed6f19131565faf2479ce01de1ba3ac585c1f4 Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Mon, 10 May 2021 18:29:41 -0300 Subject: [PATCH] fix: if multiples notes selected, always select note when clicking on it --- .../components/NotesOptionsPanel.tsx | 2 +- .../ui_models/app_state/notes_state.ts | 59 ++++++++----------- 2 files changed, 25 insertions(+), 36 deletions(-) diff --git a/app/assets/javascripts/components/NotesOptionsPanel.tsx b/app/assets/javascripts/components/NotesOptionsPanel.tsx index 08f9e9504..9cd660805 100644 --- a/app/assets/javascripts/components/NotesOptionsPanel.tsx +++ b/app/assets/javascripts/components/NotesOptionsPanel.tsx @@ -51,7 +51,7 @@ export const NotesOptionsPanel = observer(({ appState }: Props) => { onBlur={closeOnBlur} ref={buttonRef} className={ - 'bg-transparent border-solid border-1 border-neutral ' + + 'sn-button outlined ' + 'cursor-pointer w-32px h-32px rounded-full p-0 ' + 'flex justify-center items-center' } diff --git a/app/assets/javascripts/ui_models/app_state/notes_state.ts b/app/assets/javascripts/ui_models/app_state/notes_state.ts index 2ffbee3c6..feedd6e76 100644 --- a/app/assets/javascripts/ui_models/app_state/notes_state.ts +++ b/app/assets/javascripts/ui_models/app_state/notes_state.ts @@ -100,9 +100,8 @@ export class NotesState { note.protected && this.application.hasProtectionSources(); if (requestAccess) { if (!protectedNotesAccessRequest) { - protectedNotesAccessRequest = this.application.authorizeNoteAccess( - note - ); + protectedNotesAccessRequest = + this.application.authorizeNoteAccess(note); } } if (!requestAccess || (await protectedNotesAccessRequest)) { @@ -129,8 +128,10 @@ export class NotesState { } else if (this.io.activeModifiers.has(KeyboardModifier.Shift)) { await this.selectNotesRange(note); } else { + const shouldSelectNote = + this.selectedNotesCount > 1 || !this.selectedNotes[note.uuid]; if ( - !this.selectedNotes[note.uuid] && + shouldSelectNote && (await this.application.authorizeNoteAccess(note)) ) { this.selectedNotes = { @@ -183,25 +184,21 @@ export class NotesState { await this.application.changeItems( Object.keys(this.selectedNotes), mutate, - false, + false ); this.application.sync(); } setHideSelectedNotePreviews(hide: boolean): void { - this.changeSelectedNotes( - (mutator) => { - mutator.hidePreview = hide; - }, - ); + this.changeSelectedNotes((mutator) => { + mutator.hidePreview = hide; + }); } setLockSelectedNotes(lock: boolean): void { - this.changeSelectedNotes( - (mutator) => { - mutator.locked = lock; - }, - ); + this.changeSelectedNotes((mutator) => { + mutator.locked = lock; + }); } async setTrashSelectedNotes(trashed: boolean): Promise { @@ -214,11 +211,9 @@ export class NotesState { }); } } else { - this.changeSelectedNotes( - (mutator) => { - mutator.trashed = trashed; - }, - ); + this.changeSelectedNotes((mutator) => { + mutator.trashed = trashed; + }); this.unselectNotes(); this.contextMenuOpen = false; } @@ -263,11 +258,9 @@ export class NotesState { await this.application.deleteItem(note); } } else { - this.changeSelectedNotes( - (mutator) => { - mutator.trashed = true; - }, - ); + this.changeSelectedNotes((mutator) => { + mutator.trashed = true; + }); } return true; } @@ -276,11 +269,9 @@ export class NotesState { } setPinSelectedNotes(pinned: boolean): void { - this.changeSelectedNotes( - (mutator) => { - mutator.pinned = pinned; - }, - ); + this.changeSelectedNotes((mutator) => { + mutator.pinned = pinned; + }); } async setArchiveSelectedNotes(archived: boolean): Promise { @@ -291,11 +282,9 @@ export class NotesState { return; } - this.changeSelectedNotes( - (mutator) => { - mutator.archived = archived; - }, - ); + this.changeSelectedNotes((mutator) => { + mutator.archived = archived; + }); runInAction(() => { this.selectedNotes = {};