diff --git a/src/pages/chat/chat.ts b/src/pages/chat/chat.ts index 599d122..7b3a240 100755 --- a/src/pages/chat/chat.ts +++ b/src/pages/chat/chat.ts @@ -572,10 +572,9 @@ class ChatElement extends HTMLElement { const roles = await service.getRoles(process); const members = roles.dm.members; for (const member of members) {; - if (JSON.stringify(member.sp_addresses) !== JSON.stringify(myAddresses)) { - + if (!service.compareMembers(member.sp_addresses, myAddresses)) { for (const [id, mem] of Object.entries(allMembers)) { - if (JSON.stringify(mem.sp_addresses) === JSON.stringify(member.sp_addresses)) { + if (service.compareMembers(mem.sp_addresses, member.sp_addresses)) { this.dmMembersSet.add(id); break; } @@ -586,7 +585,7 @@ class ChatElement extends HTMLElement { } catch (e) { console.error(e); } - console.log("SET DE MEMBRES AVEC QUI JE DM:", this.dmMembersSet); + console.log("dmMembersSet:", this.dmMembersSet); return null; } diff --git a/src/services/service.ts b/src/services/service.ts index 3c39a51..96db0df 100755 --- a/src/services/service.ts +++ b/src/services/service.ts @@ -1161,6 +1161,15 @@ export default class Services { return this.membersList[memberId]; } + public compareMembers(memberA: string[], memberB: string[]): boolean { + if (!memberA || !memberB) { return false } + if (memberA.length !== memberB.length) { return false } + + const res = memberA.every(item => memberB.includes(item)) && memberB.every(item => memberA.includes(item)); + + return res; + } + public async handleCommitError(response: string) { const content = JSON.parse(response); // Wait and retry