vue-admin-core
Version:
A Component Library for Vue 3
29 lines (26 loc) • 761 B
JavaScript
import { isServer } from '../../../utils/isServer.mjs';
import { isDocumentVisible } from './subscribeReVisible.mjs';
const listeners = [];
function subscribe(listener) {
listeners.push(listener);
return function unsubscribe() {
const index = listeners.indexOf(listener);
if (index > -1) {
listeners.splice(index, 1);
}
};
}
const revalidate = () => {
if (!isDocumentVisible() || !navigator.onLine)
return;
for (let i = 0; i < listeners.length; i++) {
const listener = listeners[i];
listener();
}
};
if (!isServer) {
window.addEventListener("visibilitychange", revalidate, false);
window.addEventListener("focus", revalidate, false);
}
export { subscribe as default };
//# sourceMappingURL=subscribeFocus.mjs.map