fix_member_load

This commit is contained in:
Pascal 2025-01-27 11:40:46 +01:00
parent d3e3e790d1
commit e8f66ff586

View File

@ -111,7 +111,7 @@ class ChatElement extends HTMLElement {
`; `;
window.loadMemberChat = async (memberId: string | number) => { window.loadMemberChat = async (memberId: string | number) => {
if (typeof memberId === 'string') { if (typeof memberId === 'string') {
return await this.loadMemberChat([memberId]); return await this.loadMemberChat(memberId);
} else { } else {
console.error('Invalid memberId type. Expected string, got number.'); console.error('Invalid memberId type. Expected string, got number.');
} }
@ -474,7 +474,7 @@ class ChatElement extends HTMLElement {
if (!chatHeader || !messagesContainer) return; if (!chatHeader || !messagesContainer) return;
emojis = await addressToEmoji(pairingProcess); const emojis = await addressToEmoji(pairingProcess);
chatHeader.textContent = `Chat with ${emojis}`; chatHeader.textContent = `Chat with ${emojis}`;
messagesContainer.innerHTML = ''; messagesContainer.innerHTML = '';
@ -568,7 +568,7 @@ class ChatElement extends HTMLElement {
messageContent.className = `message ${isCurrentUser ? 'user' : ''}`; messageContent.className = `message ${isCurrentUser ? 'user' : ''}`;
console.log("SENDER: ", message.metadata.sender); console.log("SENDER: ", message.metadata.sender);
const pairingProcess = this.addressMap[] const pairingProcess = this.addressMap[message.metadata.sender];
const senderEmoji = await addressToEmoji(pairingProcess); const senderEmoji = await addressToEmoji(pairingProcess);
if (message.type === 'file') { if (message.type === 'file') {
@ -663,15 +663,18 @@ class ChatElement extends HTMLElement {
return this.addressMap; return this.addressMap;
} }
async findProcessIdFromAddresses(addresses: string[]): string | null { async findProcessIdFromAddresses(addresses: string[]): Promise<string | null> {
const sortedAddresses = [...addresses].sort(); console.log('Addresses to find:', addresses);
const service = await Services.getInstance(); const service = await Services.getInstance();
const allMembers = service.getAllMembers(); const allMembers = await service.getAllMembers();
console.log('Available members:', allMembers);
const sortedAddresses = [...addresses].sort();
for (const [key, value] of Object.entries(allMembers)) { for (const [key, value] of Object.entries(allMembers)) {
if (value.length === sortedTarget.length) { if (value.sp_addresses?.length === sortedAddresses.length) {
const sortedValue = [...value].sort(); const sortedValue = [...value.sp_addresses].sort();
if (sortedValue.every((val, index) => val === sortedTarget[index])) { if (sortedValue.every((val, index) => val === sortedAddresses[index])) {
return key; // Found a match return key; // Found a match
} }
} }
@ -681,20 +684,25 @@ class ChatElement extends HTMLElement {
} }
private async toggleMembers(roleData: any, roleElement: HTMLElement) { private async toggleMembers(roleData: any, roleElement: HTMLElement) {
console.log('Toggle members called with roleData:', roleData);
let memberList = roleElement.querySelector('.member-list'); let memberList = roleElement.querySelector('.member-list');
const roleName = roleElement.querySelector('.role-name')?.textContent || ''; const roleName = roleElement.querySelector('.role-name')?.textContent || '';
if (memberList) { if (memberList) {
console.log('Existing memberList found, toggling display');
(memberList as HTMLElement).style.display = (memberList as HTMLElement).style.display =
(memberList as HTMLElement).style.display === 'none' ? 'block' : 'none'; (memberList as HTMLElement).style.display === 'none' ? 'block' : 'none';
return; return;
} }
console.log('Creating new memberList');
memberList = document.createElement('ul'); memberList = document.createElement('ul');
memberList.className = 'member-list'; memberList.className = 'member-list';
if (roleData.members) { if (roleData.members) {
console.log('Members found:', roleData.members);
for (const member of roleData.members) { for (const member of roleData.members) {
console.log('Processing member:', member);
const memberItem = document.createElement('li'); const memberItem = document.createElement('li');
memberItem.className = 'member-item'; memberItem.className = 'member-item';
@ -705,14 +713,16 @@ class ChatElement extends HTMLElement {
emojiSpan.className = 'member-emoji'; emojiSpan.className = 'member-emoji';
const pairingProcess = await this.findProcessIdFromAddresses(member.sp_addresses); const pairingProcess = await this.findProcessIdFromAddresses(member.sp_addresses);
console.log('PairingProcess:', pairingProcess);
if (pairingProcess) { if (pairingProcess) {
console.log("PAIRING PROCESS:", pairingProcess); //TO DO : faire apparaitre les membres avec lesquelels je suis pairé ?
let emojis = await addressToEmoji(pairingProcess); const emojis = await addressToEmoji(pairingProcess);
} else { console.log('Adresse pairée:', emojis);
console.error('Failed to find the pairing id');
continue;
}
emojiSpan.textContent = emojis; emojiSpan.textContent = emojis;
} else {
const emojis = await addressToEmoji(member.sp_addresses[0]);
emojiSpan.textContent = emojis;
}
memberContainer.appendChild(emojiSpan); memberContainer.appendChild(emojiSpan);
memberItem.appendChild(memberContainer); memberItem.appendChild(memberContainer);
@ -720,7 +730,9 @@ class ChatElement extends HTMLElement {
memberItem.onclick = async (event) => { memberItem.onclick = async (event) => {
event.stopPropagation(); event.stopPropagation();
try { try {
if (pairingProcess) {
await this.loadMemberChat(pairingProcess); await this.loadMemberChat(pairingProcess);
}
} catch (error) { } catch (error) {
console.error('❌ Error handling member click:', error); console.error('❌ Error handling member click:', error);
} }
@ -728,6 +740,8 @@ class ChatElement extends HTMLElement {
memberList.appendChild(memberItem); memberList.appendChild(memberItem);
} }
} else {
console.log('No members found in roleData');
} }
roleElement.appendChild(memberList); roleElement.appendChild(memberList);
@ -942,6 +956,7 @@ class ChatElement extends HTMLElement {
}; };
roleContainer.addEventListener('click', async (event) => { roleContainer.addEventListener('click', async (event) => {
console.log("CLICKED ON ROLE:", roleName);
event.stopPropagation(); event.stopPropagation();
await this.toggleMembers(filteredRoleData, roleItem); await this.toggleMembers(filteredRoleData, roleItem);
}); });
@ -1005,7 +1020,7 @@ class ChatElement extends HTMLElement {
return this.userProcessSet; return this.userProcessSet;
} }
const pairingProcess = await getMyProcessId(); const pairingProcess = await this.getMyProcessId();
const memberEmoji = await addressToEmoji(pairingProcess); const memberEmoji = await addressToEmoji(pairingProcess);
console.log("Mon adresse:", currentMember[0], memberEmoji); console.log("Mon adresse:", currentMember[0], memberEmoji);