Properly compare members addresses instead of stringifying them

This commit is contained in:
NicolasCantu 2025-03-03 10:53:13 +01:00
parent 837ae35be9
commit 1bdb66b583
2 changed files with 12 additions and 4 deletions

View File

@ -572,10 +572,9 @@ class ChatElement extends HTMLElement {
const roles = await service.getRoles(process); const roles = await service.getRoles(process);
const members = roles.dm.members; const members = roles.dm.members;
for (const member of 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)) { 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); this.dmMembersSet.add(id);
break; break;
} }
@ -586,7 +585,7 @@ class ChatElement extends HTMLElement {
} catch (e) { } catch (e) {
console.error(e); console.error(e);
} }
console.log("SET DE MEMBRES AVEC QUI JE DM:", this.dmMembersSet); console.log("dmMembersSet:", this.dmMembersSet);
return null; return null;
} }

View File

@ -1161,6 +1161,15 @@ export default class Services {
return this.membersList[memberId]; 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) { public async handleCommitError(response: string) {
const content = JSON.parse(response); const content = JSON.parse(response);
// Wait and retry // Wait and retry