From 2f1eeb6700668d3cf29f1f3385c4e149222d2fc7 Mon Sep 17 00:00:00 2001 From: Jose Olarte III Date: Fri, 24 Oct 2025 17:31:46 +0800 Subject: [PATCH] fix: resolve duplicate names in Visibility dialog after Admit dialog - Add deduplication logic to getMembersForVisibility() method to prevent duplicate entries - Fix timing issue with isManualRefresh flag reset in showSetBulkVisibilityDialog() - Ensure Visibility dialog shows each member only once when following Admit dialog - Remove debugging console logs after issue resolution The issue was caused by multiple calls to getMembersForVisibility() returning duplicate member entries, which were then displayed in the Visibility dialog. The fix deduplicates members by DID to ensure each member appears only once. --- src/components/MembersList.vue | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) 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() {