Fixed Group assignment sync

This commit is contained in:
2026-01-25 18:17:06 -05:00
parent 1f0b974f6c
commit ee7114d25d

View File

@@ -307,9 +307,29 @@ async function pollAssignments() {
const assignments = await fetchAssignments(); const assignments = await fetchAssignments();
if (!assignments) return; if (!assignments) return;
// Check if we need to load members that are referenced in assignments
let needLoadFriendly = false;
let needLoadEnemy = false;
Object.values(assignments).forEach(group => {
(group.friendly || []).forEach(id => {
if (!friendlyMembers.has(id)) needLoadFriendly = true;
});
(group.enemy || []).forEach(id => {
if (!enemyMembers.has(id)) needLoadEnemy = true;
});
});
// Load members if needed
if (needLoadFriendly) await loadMembers("friendly");
if (needLoadEnemy) await loadMembers("enemy");
// quick shallow compare to avoid full DOM updates if nothing changed // quick shallow compare to avoid full DOM updates if nothing changed
const snapshot = JSON.stringify(assignments); const snapshot = JSON.stringify(assignments);
if (snapshot !== lastAssignmentsSnapshot) { const assignmentsChanged = snapshot !== lastAssignmentsSnapshot;
const membersLoaded = needLoadFriendly || needLoadEnemy;
if (assignmentsChanged || membersLoaded) {
lastAssignmentsSnapshot = snapshot; lastAssignmentsSnapshot = snapshot;
applyAssignmentsToDOM(assignments); applyAssignmentsToDOM(assignments);
} }