From ca9ca5fca7d51543e5750b41cdd7d963b8f97bcf Mon Sep 17 00:00:00 2001 From: Matthew Raymer Date: Thu, 24 Apr 2025 08:42:44 +0000 Subject: [PATCH] fix: prevent duplicate contacts during QR code scanning - Add explicit duplicate contact check before database insertion - Show warning notification when duplicate contact is detected - Return early to prevent duplicate database entries - Improve user feedback for duplicate contact scenarios This change ensures users get clear feedback when scanning an already-added contact and prevents duplicate entries in the contacts database. --- src/views/ContactQRScanShowView.vue | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/views/ContactQRScanShowView.vue b/src/views/ContactQRScanShowView.vue index ffe2d767..d9b5be8c 100644 --- a/src/views/ContactQRScanShowView.vue +++ b/src/views/ContactQRScanShowView.vue @@ -574,6 +574,26 @@ export default class ContactQRScanShow extends Vue { try { logger.info("Opening database connection for new contact"); await db.open(); + + // Check if contact already exists + const existingContacts = await db.contacts.toArray(); + const existingContact = existingContacts.find(c => c.did === contact.did); + + if (existingContact) { + logger.info("Contact already exists", { did: contact.did }); + this.$notify( + { + group: "alert", + type: "warning", + title: "Contact Exists", + text: "This contact has already been added to your list.", + }, + 3000, + ); + return; + } + + // Add new contact await db.contacts.add(contact); if (this.activeDid) {