diff --git a/src/components/MembersList.vue b/src/components/MembersList.vue index 92a5c35a..e61e0399 100644 --- a/src/components/MembersList.vue +++ b/src/components/MembersList.vue @@ -517,7 +517,7 @@ export default class MembersList extends Vue { } getMembersForVisibility() { - return this.decryptedMembers + const membersForVisibility = this.decryptedMembers .filter((member) => { // Exclude the current user if (member.did === this.activeDid) { @@ -539,6 +539,14 @@ export default class MembersList extends Vue { memberId: member.member.memberId.toString(), }, })); + + // Deduplicate members by DID to prevent duplicate entries + const uniqueMembers = membersForVisibility.filter( + (member, index, self) => + index === self.findIndex((m) => m.did === member.did), + ); + + return uniqueMembers; } /** @@ -799,12 +807,12 @@ export default class MembersList extends Vue { // Pause auto-refresh when dialog opens this.stopAutoRefresh(); - // Reset manual refresh flag when showing visibility dialog - this.isManualRefresh = false; - // Open the dialog directly this.visibilityDialogMembers = membersForVisibility; this.showSetVisibilityDialog = true; + + // Reset manual refresh flag after dialog is shown + this.isManualRefresh = false; } startAutoRefresh() {