Ghost/ghost/admin/app/transitions/wormhole.js
Kevin Ansfield bc2e216cb0 Fixed autofocus not working on modal inputs
refs https://github.com/TryGhost/Ghost/issues/7132
- apply generic `autofocus` support to anything rendered through `liquid-wormhole`
    - overrides `liquid-wormhole`'s default `wormhole` transition, adding a check for a `<input autofocus>` element and calling focus on it once the default transition and liquid-wormhole element swap has completed
- autofocus search input in Unsplash modal
2018-06-04 17:48:57 +01:00

22 lines
693 B
JavaScript

import wormhole from 'liquid-wormhole/transitions/wormhole';
// override liquid-wormhole's default `wormhole` transition to focus the first
// autofocus element after the transition and element swap happens
export default function () {
let newWormholeElement;
if (this.newElement) {
newWormholeElement = this.newElement.find('.liquid-wormhole-element:last-child');
}
return wormhole.apply(this, arguments).finally(() => {
if (this.newElement && newWormholeElement) {
let autofocusElem = newWormholeElement[0].querySelector('[autofocus]');
if (autofocusElem) {
autofocusElem.focus();
}
}
});
}