vue-hooks-plus
Version:
Vue hooks library
26 lines (25 loc) • 830 B
JavaScript
const isDocumentVisible = require("./isDocumentVisible");
const utils = require("./utils");
const _interopDefaultLegacy = (e) => e && typeof e === "object" && "default" in e ? e : { default: e };
const isDocumentVisible__default = /* @__PURE__ */ _interopDefaultLegacy(isDocumentVisible);
const listeners = [];
function subscribe(listener) {
listeners.push(listener);
return function unsubscribe() {
const index = listeners.indexOf(listener);
listeners.splice(index, 1);
};
}
if (utils.canUseDom()) {
const revalidate = () => {
if (!isDocumentVisible__default.default())
return;
for (let i = 0; i < listeners.length; i++) {
const listener = listeners[i];
listener();
}
};
window.addEventListener("visibilitychange", revalidate, false);
}
module.exports = subscribe;
;