forgeplus-react/node_modules/@ahooksjs/use-request/lib/utils/windowFocus.js

37 lines
870 B
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
}); // from swr
var utils_1 = require("./utils");
var listeners = [];
function subscribe(listener) {
listeners.push(listener);
return function unsubscribe() {
var index = listeners.indexOf(listener);
listeners.splice(index, 1);
};
}
var eventsBinded = false;
if (typeof window !== 'undefined' && window.addEventListener && !eventsBinded) {
var revalidate = function revalidate() {
if (!utils_1.isDocumentVisible() || !utils_1.isOnline()) return;
for (var i = 0; i < listeners.length; i++) {
var listener = listeners[i];
listener();
}
};
window.addEventListener('visibilitychange', revalidate, false);
window.addEventListener('focus', revalidate, false); // only bind the events once
eventsBinded = true;
}
exports["default"] = subscribe;