bc2e216cb0
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
22 lines
693 B
JavaScript
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();
|
|
}
|
|
}
|
|
});
|
|
}
|