From 48721c85ebcfa973ee81719d2467ca80e4253dc9 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Fri, 01 May 2026 17:30:03 +0000
Subject: [PATCH] =Edmonton Ink hard test begins! Real testing of the managers and reset routes will commence. So far, just ensuring our classes are all loaded correctly: Site() and its sub-classes Membership, Login, etc. Care should be taken to load conditionally on 'init', as we finish defining most settings by 'plugins_loaded' at priority 5

---
 assets/js/concise/Queue.js |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/assets/js/concise/Queue.js b/assets/js/concise/Queue.js
index a4ed3b1..13d8f83 100644
--- a/assets/js/concise/Queue.js
+++ b/assets/js/concise/Queue.js
@@ -161,11 +161,15 @@
 		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');
@@ -176,6 +180,14 @@
 		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;
@@ -1125,3 +1137,4 @@
 		}
 	});
 });
+

--
Gitblit v1.10.0