From 88863c5ece1818afffe9b363e4bdfd23ee3d9a59 Mon Sep 17 00:00:00 2001 From: Bruno Alves de Faria Date: Fri, 27 Oct 2017 23:10:36 -0200 Subject: [PATCH] Keeping select2 focused after reactive change on its list --- .../ohif-core/client/components/base/mixins/select2.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Packages/ohif-core/client/components/base/mixins/select2.js b/Packages/ohif-core/client/components/base/mixins/select2.js index 37d02ace4..7d863d033 100644 --- a/Packages/ohif-core/client/components/base/mixins/select2.js +++ b/Packages/ohif-core/client/components/base/mixins/select2.js @@ -104,11 +104,13 @@ OHIF.mixins.select2 = new OHIF.Mixin({ // Attach focus and blur handlers to focusable elements $(elements).on('focus', event => { + instance.isFocused = true; if (event.target === event.currentTarget) { // Show the state message on elements focus component.toggleMessage(true); } }).on('blur', event => { + instance.isFocused = false; if (event.target === event.currentTarget) { // Hide the state message on elements blur component.toggleMessage(false); @@ -142,9 +144,15 @@ OHIF.mixins.select2 = new OHIF.Mixin({ if (isReactive) { // Keep the current value of the component const currentValue = component.value(); + const wasFocused = instance.isFocused; + Tracker.afterFlush(() => { component.$element.val(currentValue); instance.rebuildSelect2(); + + if (wasFocused) { + component.$element.focus(); + } }); } else { instance.rebuildSelect2();