From 1bdb66b58341688b986005df445cd12c6aadd2e9 Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Mon, 3 Mar 2025 10:53:13 +0100 Subject: [PATCH] Properly compare members addresses instead of stringifying them --- src/pages/chat/chat.ts | 7 +++---- src/services/service.ts | 9 +++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) 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