| | |
| | | this.onlineHandler = this.handleOnline.bind(this); |
| | | this.offlineHandler = this.handleOffline.bind(this); |
| | | this.unloadHandler = this.handleBeforeUnload.bind(this); |
| | | this.visibilityHandler = this.handleVisibilityChange.bind(this); |
| | | |
| | | document.addEventListener('click', this.clickHandler); |
| | | window.addEventListener('online', this.onlineHandler); |
| | | window.addEventListener('offline', this.offlineHandler); |
| | | |
| | | window.addEventListener('beforeunload', this.unloadHandler); |
| | | |
| | | document.addEventListener('visibilitychange', this.visibilityHandler); |
| | | } |
| | | handleOnline() { |
| | | this.updatePanel('synced'); |
| | |
| | | handleOffline() { |
| | | this.updatePanel('offline'); |
| | | } |
| | | |
| | | handleVisibilityChange(e) { |
| | | if (this.isPolling && document.hidden) { |
| | | this.stopPolling(); |
| | | } else { |
| | | this.maybeStartPolling(); |
| | | } |
| | | } |
| | | handleBeforeUnload(e) { |
| | | if (!this.ui.panel) return; |
| | | const total = this.getQueueByStatus(this.pendingStatuses).length; |
| | |
| | | } |
| | | }); |
| | | }); |
| | | |