no_duplicate_member_role

This commit is contained in:
Pascal 2025-01-08 12:29:18 +01:00
parent ed080cd712
commit 7e0eb4d450

View File

@ -473,7 +473,8 @@ class ChatElement extends HTMLElement {
const roleList = document.createElement('ul'); const roleList = document.createElement('ul');
roleList.className = 'role-list'; 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'); const roleItem = document.createElement('li');
roleItem.className = 'role-item'; roleItem.className = 'role-item';
@ -484,9 +485,24 @@ class ChatElement extends HTMLElement {
roleNameSpan.className = 'role-name'; roleNameSpan.className = 'role-name';
roleNameSpan.textContent = roleName; roleNameSpan.textContent = roleName;
// Filtrer les membres dupliqués ici, avant de les passer à toggleMembers
const uniqueMembers = new Map<string, any>();
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) => { roleContainer.addEventListener('click', (event) => {
event.stopPropagation(); event.stopPropagation();
this.toggleMembers(roles[roleName], roleItem); this.toggleMembers(filteredRoleData, roleItem);
}); });
roleContainer.appendChild(roleNameSpan); roleContainer.appendChild(roleNameSpan);