From 0e96b4f59abd87c4b74b4e97bdf419bbf00e9516 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Sun, 3 Dec 2017 11:59:28 +0100 Subject: [PATCH 1/2] search: Debounce the search query task --- app/controllers/search.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/controllers/search.js b/app/controllers/search.js index 76cab7279d1..5bb63fc074c 100644 --- a/app/controllers/search.js +++ b/app/controllers/search.js @@ -3,10 +3,12 @@ import { computed } from '@ember/object'; import { alias, bool, readOnly } from '@ember/object/computed'; import { inject as service } from '@ember/service'; -import { task } from 'ember-concurrency'; +import { task, timeout } from 'ember-concurrency'; import PaginationMixin from '../mixins/pagination'; +const DEBOUNCE_MS = 250; + export default Controller.extend(PaginationMixin, { search: service(), queryParams: ['q', 'page', 'per_page', 'sort'], @@ -40,10 +42,13 @@ export default Controller.extend(PaginationMixin, { hasItems: bool('totalItems'), dataTask: task(function* (params) { + // debounce the search query + yield timeout(DEBOUNCE_MS); + if (params.q !== null) { params.q = params.q.trim(); } return yield this.store.query('crate', params); - }).drop(), + }).restartable(), }); From f921e40ec1712e85aac8959b73539d9091e44c4c Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Sun, 3 Dec 2017 12:00:00 +0100 Subject: [PATCH 2/2] application: Start search while typing search string --- app/controllers/application.js | 6 +++++- app/templates/application.hbs | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/controllers/application.js b/app/controllers/application.js index e8c9e107abf..20cb675da58 100644 --- a/app/controllers/application.js +++ b/app/controllers/application.js @@ -21,7 +21,11 @@ export default Controller.extend(EKMixin, { }), actions: { - search() { + search(q) { + if (q !== undefined) { + this.set('searchQuery', q); + } + this.transitionToRoute('search', { queryParams: { q: this.get('searchQuery'), diff --git a/app/templates/application.hbs b/app/templates/application.hbs index 1a841437865..89f6fcbdb34 100644 --- a/app/templates/application.hbs +++ b/app/templates/application.hbs @@ -21,7 +21,7 @@