From ee7114d25dbbd20fec7e3440fc37029099836e07 Mon Sep 17 00:00:00 2001 From: jerick Date: Sun, 25 Jan 2026 18:17:06 -0500 Subject: [PATCH] Fixed Group assignment sync --- static/dashboard.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/static/dashboard.js b/static/dashboard.js index 03ef7c3..09ca1e4 100644 --- a/static/dashboard.js +++ b/static/dashboard.js @@ -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); }