From 7e0eb4d4509d0a78b3a8de17abd2f7aae9f85c8c Mon Sep 17 00:00:00 2001 From: Pascal Date: Wed, 8 Jan 2025 12:29:18 +0100 Subject: [PATCH] no_duplicate_member_role --- src/pages/chat/chat.ts | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/pages/chat/chat.ts b/src/pages/chat/chat.ts index 217127d..724c8ce 100755 --- a/src/pages/chat/chat.ts +++ b/src/pages/chat/chat.ts @@ -473,7 +473,8 @@ class ChatElement extends HTMLElement { const roleList = document.createElement('ul'); roleList.className = 'role-list'; - Object.keys(roles).forEach(roleName => { + // Traiter chaque rôle + Object.entries(roles).forEach(([roleName, roleData]: [string, any]) => { const roleItem = document.createElement('li'); roleItem.className = 'role-item'; @@ -484,9 +485,24 @@ class ChatElement extends HTMLElement { roleNameSpan.className = 'role-name'; roleNameSpan.textContent = roleName; + // Filtrer les membres dupliqués ici, avant de les passer à toggleMembers + const uniqueMembers = new Map(); + roleData.members?.forEach((member: any) => { + const spAddress = member.sp_addresses?.[0]; + if (spAddress && !uniqueMembers.has(spAddress)) { + uniqueMembers.set(spAddress, member); + } + }); + + // Créer un nouveau roleData avec les membres uniques + const filteredRoleData = { + ...roleData, + members: Array.from(uniqueMembers.values()) + }; + roleContainer.addEventListener('click', (event) => { event.stopPropagation(); - this.toggleMembers(roles[roleName], roleItem); + this.toggleMembers(filteredRoleData, roleItem); }); roleContainer.appendChild(roleNameSpan);