UNPKG

vue-hooks-plus

Version:
32 lines (31 loc) 1.15 kB
"use strict"; const isBrowser = require("./utils"); const isDocumentVisible = require("./isDocumentVisible"); const isOnline = require("./isOnline"); const _interopDefaultLegacy = (e) => e && typeof e === "object" && "default" in e ? e : { default: e }; const isBrowser__default = /* @__PURE__ */ _interopDefaultLegacy(isBrowser); const isDocumentVisible__default = /* @__PURE__ */ _interopDefaultLegacy(isDocumentVisible); const isOnline__default = /* @__PURE__ */ _interopDefaultLegacy(isOnline); const listeners = []; function subscribe(listener) { listeners.push(listener); return function unsubscribe() { const index = listeners.indexOf(listener); if (index > -1) { listeners.splice(index, 1); } }; } if (isBrowser__default.default) { const revalidate = () => { if (!isDocumentVisible__default.default() || !isOnline__default.default()) return; for (let i = 0; i < listeners.length; i++) { const listener = listeners[i]; listener(); } }; window.addEventListener("visibilitychange", revalidate, false); window.addEventListener("focus", revalidate, false); } module.exports = subscribe;