Files
decoda/app/src/services/analytics/NetworkDetector.js
2026-06-05 00:11:45 -03:00

31 lines
635 B
JavaScript

export class NetworkDetector {
constructor() {
this.isOnline = navigator.onLine;
this.listeners = [];
}
subscribe(listener) {
this.listeners.push(listener);
window.addEventListener('online', () => {
this.isOnline = true;
this.listeners.forEach(l => l(true));
});
window.addEventListener('offline', () => {
this.isOnline = false;
this.listeners.forEach(l => l(false));
});
return () => {
this.listeners = this.listeners.filter(l => l !== listener);
};
}
getStatus() {
return this.isOnline;
}
}
export const networkDetector = new NetworkDetector();