members_load_ok

This commit is contained in:
Pascal 2025-01-07 19:01:58 +01:00
parent 59ad5d4259
commit 0c02c30c1e

View File

@ -324,28 +324,52 @@ class ChatElement extends HTMLElement {
this.scrollToBottom(messagesContainer); this.scrollToBottom(messagesContainer);
} }
private toggleMembers(role: { members: { id: string | number; name: string; }[] }, roleElement: HTMLElement) { private async toggleMembers(roleData: any, roleElement: HTMLElement) {
let memberList = roleElement.querySelector('.member-list'); let memberList = roleElement.querySelector('.member-list');
if (memberList) { if (memberList) {
(memberList as HTMLElement).style.display = (memberList as HTMLElement).style.display === 'none' ? 'block' : 'none'; (memberList as HTMLElement).style.display =
(memberList as HTMLElement).style.display === 'none' ? 'block' : 'none';
return; return;
} }
memberList = document.createElement('ul'); memberList = document.createElement('ul');
memberList.className = 'member-list'; memberList.className = 'member-list';
role.members.forEach(member => { // Récupérer les membres avec leurs sp_addresses
const memberItem = document.createElement('li'); if (roleData.members) {
memberItem.textContent = member.name; for (const member of roleData.members) {
const memberItem = document.createElement('li');
memberItem.onclick = (event) => { memberItem.className = 'member-item';
event.stopPropagation();
this.loadMemberChat(member.id.toString()); const memberContainer = document.createElement('div');
}; memberContainer.className = 'member-container';
memberList.appendChild(memberItem); // Afficher l'adresse SP
}); const addressSpan = document.createElement('span');
addressSpan.className = 'member-address';
addressSpan.textContent = member.sp_addresses?.[0] || 'No address';
// Ajouter les emojis pour l'adresse
const emojiSpan = document.createElement('span');
emojiSpan.className = 'member-emoji';
if (member.sp_addresses?.[0]) {
const emojis = await addressToEmoji(member.sp_addresses[0]);
emojiSpan.textContent = emojis;
}
memberContainer.appendChild(addressSpan);
memberContainer.appendChild(emojiSpan);
memberItem.appendChild(memberContainer);
memberItem.onclick = (event) => {
event.stopPropagation();
this.loadMemberChat(member.sp_addresses[0]);
};
memberList.appendChild(memberItem);
}
}
roleElement.appendChild(memberList); roleElement.appendChild(memberList);
} }
@ -479,7 +503,22 @@ class ChatElement extends HTMLElement {
Object.keys(roles).forEach(roleName => { Object.keys(roles).forEach(roleName => {
const roleItem = document.createElement('li'); const roleItem = document.createElement('li');
roleItem.className = 'role-item'; roleItem.className = 'role-item';
roleItem.textContent = roleName;
const roleContainer = document.createElement('div');
roleContainer.className = 'role-item-container';
const roleNameSpan = document.createElement('span');
roleNameSpan.className = 'role-name';
roleNameSpan.textContent = roleName;
// Ajouter l'événement de clic
roleContainer.addEventListener('click', (event) => {
event.stopPropagation();
this.toggleMembers(roles[roleName], roleItem);
});
roleContainer.appendChild(roleNameSpan);
roleItem.appendChild(roleContainer);
roleList.appendChild(roleItem); roleList.appendChild(roleItem);
}); });