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