From 82482f41829298bb279be2957bb423fd242fcec5 Mon Sep 17 00:00:00 2001
From: Matiss Janis Aboltins <matiss@mja.lv>
Date: Sun, 9 Apr 2023 22:00:43 +0100
Subject: [PATCH] :bug: (autocomplete) show 'create payee' only if no payee
 matched (#881)

---
 .../autocomplete/NewPayeeAutocomplete.js      | 24 +++++++++----------
 upcoming-release-notes/881.md                 |  6 +++++
 2 files changed, 18 insertions(+), 12 deletions(-)
 create mode 100644 upcoming-release-notes/881.md

diff --git a/packages/desktop-client/src/components/autocomplete/NewPayeeAutocomplete.js b/packages/desktop-client/src/components/autocomplete/NewPayeeAutocomplete.js
index f381d2a36..888217e6c 100644
--- a/packages/desktop-client/src/components/autocomplete/NewPayeeAutocomplete.js
+++ b/packages/desktop-client/src/components/autocomplete/NewPayeeAutocomplete.js
@@ -85,21 +85,21 @@ export default function PayeeAutocomplete({
           ? allOptions.filter(item => value.includes(item.value))
           : allOptions.find(item => item.value === value)
       }
-      isValidNewOption={input => input && !focusTransferPayees}
+      isValidNewOption={input => {
+        if (focusTransferPayees || !input) {
+          return false;
+        }
+
+        const lowercaseInput = input.toLowerCase();
+        const hasExistingOption = allOptions.some(
+          option => option.label.toLowerCase() === lowercaseInput,
+        );
+
+        return !hasExistingOption;
+      }}
       isMulti={multi}
       onSelect={onSelect}
       onCreateOption={async selectedValue => {
-        const existingOption = allOptions.find(option =>
-          option.label.toLowerCase().includes(selectedValue?.toLowerCase()),
-        );
-
-        // Prevent creating duplicates
-        if (existingOption) {
-          onSelect(existingOption.value);
-          return;
-        }
-
-        // This is actually a new option, so create it
         onSelect(await dispatch(createPayee(selectedValue)));
       }}
       createOptionPosition="first"
diff --git a/upcoming-release-notes/881.md b/upcoming-release-notes/881.md
new file mode 100644
index 000000000..6c3510c50
--- /dev/null
+++ b/upcoming-release-notes/881.md
@@ -0,0 +1,6 @@
+---
+category: Bugfix
+authors: [MatissJanis]
+---
+
+Autocomplete: do not show "create payee" option if the typed-in payee is an exact match of an existing payee
-- 
GitLab