@fleetbase/ember-ui
Version:
Fleetbase UI provides all the interface components, helpers, services and utilities for building a Fleetbase extension into the Console.
39 lines (31 loc) • 899 B
JavaScript
import Ember from 'ember';
import { cancel, later } from '@ember/runloop';
import { Promise, reject } from 'rsvp';
let _skipTransition;
export function skipTransition(bool) {
_skipTransition = bool;
}
function _isSkipped() {
return (_skipTransition === true) | (_skipTransition !== false) && Ember.testing;
}
export default function waitForTransitionEnd(node, duration = 0) {
if (!node) {
return reject();
}
let backup;
if (_isSkipped()) {
duration = 0;
}
return new Promise(function (resolve) {
let done = function () {
if (backup) {
cancel(backup);
backup = null;
}
node.removeEventListener('transitionend', done);
resolve();
};
node.addEventListener('transitionend', done, false);
backup = later(this, done, duration);
});
}