Fixed Group assignment sync
This commit is contained in:
@@ -307,9 +307,29 @@ async function pollAssignments() {
|
||||
const assignments = await fetchAssignments();
|
||||
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
|
||||
const snapshot = JSON.stringify(assignments);
|
||||
if (snapshot !== lastAssignmentsSnapshot) {
|
||||
const assignmentsChanged = snapshot !== lastAssignmentsSnapshot;
|
||||
const membersLoaded = needLoadFriendly || needLoadEnemy;
|
||||
|
||||
if (assignmentsChanged || membersLoaded) {
|
||||
lastAssignmentsSnapshot = snapshot;
|
||||
applyAssignmentsToDOM(assignments);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user