feat: share watch queue across tabs via localStorage + storage events

Queue was sessionStorage (per-tab only). Switch to localStorage so any
tab can add to our shared queue. Storage events fire in all other same-origin
tabs on mutation — renderQueue() wired to keep UI in sync automatically.
This commit is contained in:
russell@unturf.com 2026-03-31 20:10:19 -04:00
parent f12fa036a6
commit 5ceeaf8a69

View file

@ -205,12 +205,20 @@
});
}
// Restore queue from sessionStorage
// Restore queue from localStorage (shared across tabs)
try {
var savedQueue = sessionStorage.getItem('watchQueue');
var savedQueue = localStorage.getItem('watchQueue');
if (savedQueue) queue = JSON.parse(savedQueue);
} catch (e) {}
// Sync queue from other tabs via storage events
window.addEventListener('storage', function(e) {
if (e.key === 'watchQueue') {
try { queue = e.newValue ? JSON.parse(e.newValue) : []; } catch (ex) {}
renderQueue();
}
});
// Mod status (shop owner/editor)
var isMod = false;
@ -424,7 +432,7 @@
// --- Queue management ---
function saveQueue() {
try {
sessionStorage.setItem('watchQueue', JSON.stringify(queue));
localStorage.setItem('watchQueue', JSON.stringify(queue));
} catch (e) {}
}