From 9444c31918cdd1d97b8603d70ccf2528f8250458 Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX Date: Tue, 21 Nov 2017 18:07:10 +0100 Subject: [PATCH] FIX: makes typing indicator visible when possible --- .../select-kit/components/multi-select.js.es6 | 3 +++ .../select-kit/mixins/dom-helpers.js.es6 | 14 +++++++------- .../javascripts/select-kit/mixins/events.js.es6 | 6 ++++++ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/select-kit/components/multi-select.js.es6 b/app/assets/javascripts/select-kit/components/multi-select.js.es6 index a083609fe64..c99933bb2d0 100644 --- a/app/assets/javascripts/select-kit/components/multi-select.js.es6 +++ b/app/assets/javascripts/select-kit/components/multi-select.js.es6 @@ -63,6 +63,9 @@ export default SelectKitComponent.extend({ return this._super() && !computedValues.includes(filter); }, + @computed + shouldDisplayFilter() { return true; }, + _beforeWillComputeValues(values) { return values.map(v => this._castInteger(v === "" ? null : v)); }, diff --git a/app/assets/javascripts/select-kit/mixins/dom-helpers.js.es6 b/app/assets/javascripts/select-kit/mixins/dom-helpers.js.es6 index 2a5afbd3e33..c846679d335 100644 --- a/app/assets/javascripts/select-kit/mixins/dom-helpers.js.es6 +++ b/app/assets/javascripts/select-kit/mixins/dom-helpers.js.es6 @@ -55,12 +55,6 @@ export default Ember.Mixin.create({ $(`.select-kit-fixed-placeholder-${this.elementId}`).remove(); }, - // make sure we don’t propagate a click outside component - // to avoid closing a modal containing the component for example - click(event) { - this._destroyEvent(event); - }, - // use to collapse and remove focus close(event) { this.collapse(event); @@ -69,7 +63,13 @@ export default Ember.Mixin.create({ // force the component in a known default state focus() { - Ember.run.schedule("afterRender", () => this.$header().focus() ); + Ember.run.schedule("afterRender", () => { + if (this.$filterInput().is(":visible")) { + this.$filterInput().focus(); + } else { + this.$header().focus(); + } + }); }, expand(event) { diff --git a/app/assets/javascripts/select-kit/mixins/events.js.es6 b/app/assets/javascripts/select-kit/mixins/events.js.es6 index 442df590eb6..fa2bce870f1 100644 --- a/app/assets/javascripts/select-kit/mixins/events.js.es6 +++ b/app/assets/javascripts/select-kit/mixins/events.js.es6 @@ -193,6 +193,12 @@ export default Ember.Mixin.create({ return; }, + // make sure we don’t propagate a click outside component + // to avoid closing a modal containing the component for example + click(event) { + this._destroyEvent(event); + }, + tabFromHeader(event) { this.didPressTab(event); }, tabFromFilter(event) { this.didPressTab(event); },