react-elegant-ui
Version:
Elegant UI components, made by BEM best practices for react
33 lines (32 loc) • 981 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.runByReadyState = exports.readyStatesList = exports.readyStatesDict = void 0;
var _canUseDOM = require("./canUseDOM");
var readyStatesList = exports.readyStatesList = ['loading', 'interactive', 'complete'];
var readyStatesDict = exports.readyStatesDict = {
loading: 0,
interactive: 1,
complete: 2
};
/**
* Run callback after specified ready state
*
* It useful when you need run code if page loaded or wait loading and run after
*/
var runByReadyState = function (callback, state) {
if (state === void 0) {
state = 'complete';
}
if (!(0, _canUseDOM.canUseDOM)()) return;
if (readyStatesDict[document.readyState] >= readyStatesDict[state]) {
callback();
return;
}
var eventName = state === 'interactive' ? 'DOMContentLoaded' : 'load';
window.addEventListener(eventName, function () {
return callback();
});
};
exports.runByReadyState = runByReadyState;