[fix] server-side rendering

e1fc253 added deferred image loading but didn't guard the
'requestIdleFallback' shim for use in Node.js

Fix #376
This commit is contained in:
Nicolas Gallagher
2017-02-27 14:50:29 -08:00
parent 89eea2b366
commit 2cfd09ecdb

View File

@@ -1,3 +1,6 @@
/* global window */
import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';
const _requestIdleCallback = function (cb) {
return setTimeout(() => {
const start = Date.now();
@@ -14,8 +17,10 @@ const _cancelIdleCallback = function (id) {
clearTimeout(id);
};
const requestIdleCallback = window.requestIdleCallback || _requestIdleCallback;
const cancelIdleCallback = window.cancelIdleCallback || _cancelIdleCallback;
const isSupported = canUseDOM && typeof window.requestIdleCallback !== 'undefined';
const requestIdleCallback = isSupported ? window.requestIdleCallback : _requestIdleCallback;
const cancelIdleCallback = isSupported ? window.cancelIdleCallback : _cancelIdleCallback;
export default requestIdleCallback;
export { cancelIdleCallback };