From ee0156d35d359f9b46e6c5ceb2219667ff6895ea Mon Sep 17 00:00:00 2001
From: Eirik Reksten <eireksten@gmail.com>
Date: Wed, 14 Aug 2024 11:13:07 +0200
Subject: [PATCH] 3211: Fix broken transaction import on new accounts (#3251)

* 3211: Added check for string before matching any object.

* Release notes for 3251.

* Fix release notes authors.
---
 .../src/components/modals/ImportTransactions.jsx       | 10 ++++++++--
 upcoming-release-notes/3251.md                         |  6 ++++++
 2 files changed, 14 insertions(+), 2 deletions(-)
 create mode 100644 upcoming-release-notes/3251.md

diff --git a/packages/desktop-client/src/components/modals/ImportTransactions.jsx b/packages/desktop-client/src/components/modals/ImportTransactions.jsx
index 8f93405e6..430779264 100644
--- a/packages/desktop-client/src/components/modals/ImportTransactions.jsx
+++ b/packages/desktop-client/src/components/modals/ImportTransactions.jsx
@@ -186,14 +186,20 @@ function getInitialMappings(transactions) {
     return entry ? entry[0] : null;
   }
 
+  function isString(value) {
+    return typeof value === 'string' || value instanceof String;
+  }
+
   const dateField = key(
     fields.find(([name]) => name.toLowerCase().includes('date')) ||
-      fields.find(([, value]) => value.match(/^\d+[-/]\d+[-/]\d+$/)),
+      fields.find(
+        ([, value]) => isString(value) && value.match(/^\d+[-/]\d+[-/]\d+$/),
+      ),
   );
 
   const amountField = key(
     fields.find(([name]) => name.toLowerCase().includes('amount')) ||
-      fields.find(([, value]) => value.match(/^-?[.,\d]+$/)),
+      fields.find(([, value]) => isString(value) && value.match(/^-?[.,\d]+$/)),
   );
 
   const categoryField = key(
diff --git a/upcoming-release-notes/3251.md b/upcoming-release-notes/3251.md
new file mode 100644
index 000000000..379971632
--- /dev/null
+++ b/upcoming-release-notes/3251.md
@@ -0,0 +1,6 @@
+---
+category: Bugfix
+authors: [eireksten]
+---
+
+Fix issue with importing transactions failing on new accounts (issue #3211).
-- 
GitLab