From e23f9d822b211614b530530995d80f76fb1001da Mon Sep 17 00:00:00 2001
From: Matiss Janis Aboltins <matiss@mja.lv>
Date: Tue, 4 Apr 2023 21:17:47 +0100
Subject: [PATCH] :bug:  normalize value when switching between single/multi
 select (#855)

Closes #779

Normalize the input value when switching between single/multi select
fields. Most visible when using the "notes" field filter.
---
 .../src/components/accounts/Filters.js          | 17 ++++++++++++++++-
 upcoming-release-notes/855.md                   |  6 ++++++
 2 files changed, 22 insertions(+), 1 deletion(-)
 create mode 100644 upcoming-release-notes/855.md

diff --git a/packages/desktop-client/src/components/accounts/Filters.js b/packages/desktop-client/src/components/accounts/Filters.js
index b0a552258..036642186 100644
--- a/packages/desktop-client/src/components/accounts/Filters.js
+++ b/packages/desktop-client/src/components/accounts/Filters.js
@@ -244,7 +244,7 @@ function ConfigureField({
               field={field}
               subfield={subfield}
               type={type === 'id' && op === 'contains' ? 'string' : type}
-              value={value}
+              value={normalizeValue(value, op === 'oneOf')}
               multi={op === 'oneOf'}
               style={{ marginTop: 10 }}
               onChange={v => dispatch({ type: 'set-value', value: v })}
@@ -530,3 +530,18 @@ export function AppliedFilters({ filters, editingFilter, onUpdate, onDelete }) {
     </View>
   );
 }
+
+function normalizeValue(value, isMulti) {
+  if (isMulti) {
+    if (Array.isArray(value)) {
+      return value;
+    }
+    return value.split(', ');
+  }
+
+  if (Array.isArray(value)) {
+    return value.join(', ');
+  }
+
+  return value;
+}
diff --git a/upcoming-release-notes/855.md b/upcoming-release-notes/855.md
new file mode 100644
index 000000000..3207fe87c
--- /dev/null
+++ b/upcoming-release-notes/855.md
@@ -0,0 +1,6 @@
+---
+category: Bugfix
+authors: [MatissJanis]
+---
+
+Normalize value when single/multi select is changed
-- 
GitLab