From 16f1957620208f11bb93486ec28f77b1ec4f48d4 Mon Sep 17 00:00:00 2001 From: nathan-wilson-bh Date: Wed, 28 Jun 2017 15:11:25 -0500 Subject: [PATCH] fix(quicknote): Hide results dropdown when deleting the search symbol --- src/elements/quick-note/QuickNote.spec.ts | 25 +++++++++++++++++++++++ src/elements/quick-note/QuickNote.ts | 4 ++++ 2 files changed, 29 insertions(+) diff --git a/src/elements/quick-note/QuickNote.spec.ts b/src/elements/quick-note/QuickNote.spec.ts index 7545d2936..21f40caa4 100644 --- a/src/elements/quick-note/QuickNote.spec.ts +++ b/src/elements/quick-note/QuickNote.spec.ts @@ -116,6 +116,10 @@ describe('Elements: QuickNoteElement', () => { height: 200 }, keyEnteredByUser: (key: string, keyCode: number): void => { + if (key === 'Backspace') { + this.editorValue = this.editorValue.slice(0, -1); + this.currentWord = this.currentWord.slice(0, -1); + } // Add the character to the editorValue if it's a character if (key.length === 1) { this.editorValue += key; @@ -441,6 +445,27 @@ describe('Elements: QuickNoteElement', () => { expect(mockResults.visible).toBe(false); })); + it('should hide resultsComponent when @ is backspaced over.', fakeAsync(() => { + ckEditorInstance.valueSetByUser('Note about: '); + ckEditorInstance.keyEnteredByUser('@'); + ckEditorInstance.keyEnteredByUser('j'); + ckEditorInstance.userPausedAfterEntry(); + + expect(mockResults.visible).toBe(true); + + ckEditorInstance.keyEnteredByUser('Backspace', KeyCodes.BACKSPACE); + ckEditorInstance.keyEnteredByUser('Backspace', KeyCodes.BACKSPACE); + ckEditorInstance.userPausedAfterEntry(); + + expect(mockResults.visible).toBe(false); + + ckEditorInstance.keyEnteredByUser('@'); + ckEditorInstance.keyEnteredByUser('j'); + ckEditorInstance.userPausedAfterEntry(); + + expect(mockResults.visible).toBe(true); + })); + it('should handle searching with spaces.', fakeAsync(() => { ckEditorInstance.valueSetByUser('Note about: '); ckEditorInstance.keyEnteredByUser('@'); diff --git a/src/elements/quick-note/QuickNote.ts b/src/elements/quick-note/QuickNote.ts index ff1a7e93a..b7a7e57ff 100644 --- a/src/elements/quick-note/QuickNote.ts +++ b/src/elements/quick-note/QuickNote.ts @@ -392,6 +392,10 @@ export class QuickNoteElement extends OutsideClick implements OnInit, OnDestroy, let word = this.getWordAtCursor().trim(); if (this.isTagging) { let symbol = this.config.triggers[this.taggingMode]; + if (!word.includes(symbol)) { + this.hideResults(); + return ''; + } word = word.slice(word.indexOf(symbol) + symbol.length); } return word;