UNPKG

react-live-chat-loader

Version:

Implement live chat in your react app without taking a performance hit.

31 lines (30 loc) 3.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var requestIdleCallback = typeof window !== 'undefined' ? window.requestIdleCallback : null; var waitForLoad = function waitForLoad(check, callback) { var elapsedTime = 0; // If the provider fails to load we don't want to keep checking continuously // therefore we set a max duration we're willing to wait before executing the callback var maxWaitDuration = 10000; // If the browser does not support requestIdleCallback we'll wait the fallback duration // before executing the callback var fallbackDuration = 1000; var _scheduleLoad = function scheduleLoad(deadline) { if (check() || elapsedTime >= maxWaitDuration) { callback(); return; } elapsedTime += deadline.timeRemaining(); requestIdleCallback === null || requestIdleCallback === void 0 || requestIdleCallback(_scheduleLoad); }; if (requestIdleCallback) { requestIdleCallback(_scheduleLoad); } else { setTimeout(callback, fallbackDuration); } }; var _default = exports.default = waitForLoad; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwid2luZG93Iiwid2FpdEZvckxvYWQiLCJjaGVjayIsImNhbGxiYWNrIiwiZWxhcHNlZFRpbWUiLCJtYXhXYWl0RHVyYXRpb24iLCJmYWxsYmFja0R1cmF0aW9uIiwic2NoZWR1bGVMb2FkIiwiZGVhZGxpbmUiLCJ0aW1lUmVtYWluaW5nIiwic2V0VGltZW91dCIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvd2FpdEZvckxvYWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcmVxdWVzdElkbGVDYWxsYmFjayA9XG4gIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2sgOiBudWxsXG5cbmNvbnN0IHdhaXRGb3JMb2FkID0gKGNoZWNrOiAoKSA9PiBib29sZWFuLCBjYWxsYmFjazogKCkgPT4gdm9pZCk6IHZvaWQgPT4ge1xuICBsZXQgZWxhcHNlZFRpbWUgPSAwXG4gIC8vIElmIHRoZSBwcm92aWRlciBmYWlscyB0byBsb2FkIHdlIGRvbid0IHdhbnQgdG8ga2VlcCBjaGVja2luZyBjb250aW51b3VzbHlcbiAgLy8gdGhlcmVmb3JlIHdlIHNldCBhIG1heCBkdXJhdGlvbiB3ZSdyZSB3aWxsaW5nIHRvIHdhaXQgYmVmb3JlIGV4ZWN1dGluZyB0aGUgY2FsbGJhY2tcbiAgY29uc3QgbWF4V2FpdER1cmF0aW9uID0gMTAwMDBcbiAgLy8gSWYgdGhlIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCByZXF1ZXN0SWRsZUNhbGxiYWNrIHdlJ2xsIHdhaXQgdGhlIGZhbGxiYWNrIGR1cmF0aW9uXG4gIC8vIGJlZm9yZSBleGVjdXRpbmcgdGhlIGNhbGxiYWNrXG4gIGNvbnN0IGZhbGxiYWNrRHVyYXRpb24gPSAxMDAwXG5cbiAgY29uc3Qgc2NoZWR1bGVMb2FkID0gKGRlYWRsaW5lOiBJZGxlRGVhZGxpbmUpID0+IHtcbiAgICBpZiAoY2hlY2soKSB8fCBlbGFwc2VkVGltZSA+PSBtYXhXYWl0RHVyYXRpb24pIHtcbiAgICAgIGNhbGxiYWNrKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGVsYXBzZWRUaW1lICs9IGRlYWRsaW5lLnRpbWVSZW1haW5pbmcoKVxuICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2s/LihzY2hlZHVsZUxvYWQpXG4gIH1cblxuICBpZiAocmVxdWVzdElkbGVDYWxsYmFjaykge1xuICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2soc2NoZWR1bGVMb2FkKVxuICB9IGVsc2Uge1xuICAgIHNldFRpbWVvdXQoY2FsbGJhY2ssIGZhbGxiYWNrRHVyYXRpb24pXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2FpdEZvckxvYWRcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBTUEsbUJBQW1CLEdBQ3ZCLE9BQU9DLE1BQU0sS0FBSyxXQUFXLEdBQUdBLE1BQU0sQ0FBQ0QsbUJBQW1CLEdBQUcsSUFBSTtBQUVuRSxJQUFNRSxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSUMsS0FBb0IsRUFBRUMsUUFBb0IsRUFBVztFQUN4RSxJQUFJQyxXQUFXLEdBQUcsQ0FBQztFQUNuQjtFQUNBO0VBQ0EsSUFBTUMsZUFBZSxHQUFHLEtBQUs7RUFDN0I7RUFDQTtFQUNBLElBQU1DLGdCQUFnQixHQUFHLElBQUk7RUFFN0IsSUFBTUMsYUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUlDLFFBQXNCLEVBQUs7SUFDL0MsSUFBSU4sS0FBSyxDQUFDLENBQUMsSUFBSUUsV0FBVyxJQUFJQyxlQUFlLEVBQUU7TUFDN0NGLFFBQVEsQ0FBQyxDQUFDO01BQ1Y7SUFDRjtJQUVBQyxXQUFXLElBQUlJLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDLENBQUM7SUFDdkNWLG1CQUFtQixhQUFuQkEsbUJBQW1CLGVBQW5CQSxtQkFBbUIsQ0FBR1EsYUFBWSxDQUFDO0VBQ3JDLENBQUM7RUFFRCxJQUFJUixtQkFBbUIsRUFBRTtJQUN2QkEsbUJBQW1CLENBQUNRLGFBQVksQ0FBQztFQUNuQyxDQUFDLE1BQU07SUFDTEcsVUFBVSxDQUFDUCxRQUFRLEVBQUVHLGdCQUFnQixDQUFDO0VBQ3hDO0FBQ0YsQ0FBQztBQUFBLElBQUFLLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBRWNaLFdBQVciLCJpZ25vcmVMaXN0IjpbXX0=