29 lines
744 B
JavaScript
29 lines
744 B
JavaScript
import Ember from 'ember';
|
|
|
|
export default Ember.Mixin.create({
|
|
// selector passed to `this.$()` to find the element to focus
|
|
// defaults to `'input'`
|
|
focusOnInsertSelector: null,
|
|
shouldFocus: true,
|
|
|
|
// uses Ember.on so that we don't have to worry about calling _super if
|
|
// didInsertElement is overridden
|
|
focusOnInsert: Ember.on('didInsertElement', function() {
|
|
Ember.run.schedule('afterRender', this, 'focusOnInsertFocus');
|
|
}),
|
|
|
|
focusOnInsertFocus() {
|
|
if (this.get('shouldFocus') === false) {
|
|
return;
|
|
}
|
|
this.forceFocus();
|
|
},
|
|
|
|
forceFocus() {
|
|
var $selector = this.$(this.get('focusOnInsertSelector') || 'input').first();
|
|
if (!$selector.is(':focus')) {
|
|
$selector.focus();
|
|
}
|
|
},
|
|
});
|