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