UNPKG

@tanstack/query-core

Version:

The framework agnostic core that powers TanStack Query

54 lines (53 loc) 1.47 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const require_subscribable = require("./subscribable.cjs"); //#region src/onlineManager.ts var OnlineManager = class extends require_subscribable.Subscribable { #online = true; #cleanup; #setup; constructor() { super(); this.#setup = (onOnline) => { if (typeof window !== "undefined" && window.addEventListener) { const onlineListener = () => onOnline(true); const offlineListener = () => onOnline(false); window.addEventListener("online", onlineListener, false); window.addEventListener("offline", offlineListener, false); return () => { window.removeEventListener("online", onlineListener); window.removeEventListener("offline", offlineListener); }; } }; } onSubscribe() { if (!this.#cleanup) this.setEventListener(this.#setup); } onUnsubscribe() { if (!this.hasListeners()) { this.#cleanup?.(); this.#cleanup = void 0; } } setEventListener(setup) { this.#setup = setup; this.#cleanup?.(); this.#cleanup = setup(this.setOnline.bind(this)); } setOnline(online) { if (this.#online !== online) { this.#online = online; this.listeners.forEach((listener) => { listener(online); }); } } isOnline() { return this.#online; } }; const onlineManager = new OnlineManager(); //#endregion exports.OnlineManager = OnlineManager; exports.onlineManager = onlineManager; //# sourceMappingURL=onlineManager.cjs.map